Hyperic Java API

时间:2011-06-28 15:51:32

标签: java hyperic

我编写了一些Java代码,通过它我可以从Hyperic Server获取指标以进行某些操作。我无法获取这些指标的价值。

对于eq我有度量CPU空闲但当我使用List<Data Point> dp= m1.getDataPoint()m1是度量CPU空闲的度量数据对象。在输出中,列表dp的大小为0

除了“可用性”之外,我遇到了所有指标的问题。我该怎么办?

我还检查了图形界面中的时间间隔;它显示相应的值。

代码是

 //  m_rrc is resource ( Process Server) on agent
for (int z = 0; z < m_rrrc.size(); z++) {
    System.out.println(m_rrrc.get(z).getName())
    MetricsResponse m_mr= m_a.getMetrics(m_rrrc.get(z));

    // m_m is metric like CPU idle CPU utilization, System CPU
    List<Metric> m_m = m_mr.getMetric();

    for (int a = 0; a < m_m.size(); a++) {
        MetricDataResponse m_mdr = m_mdapi.getData(m_m.get(a), 1309147200,1309147800);
        MetricData m_md = m_mdr.getMetricData();

        System.out.println(m_md.getMetricName());

        List<DataPoint> m_dp = m_md.getDataPoint();
        System.out.println(m_dp.size());

        for (int b = 0; b < m_dp.size(); b++) {
            System.out.println("abc");
            System.out.println(m_dp.get(b).getValue());
            System.out.println("i am Prannoy Mittal");
        }
    }
}

此处所有指标的输出中的数据点列表大小为零

1 个答案:

答案 0 :(得分:0)

以下是Hyperic(http://svn.hyperic.org/projects/hqapi/trunk/src/org/hyperic/hq/hqapi1/test/MetricData_test.java)的示例源代码,如果您可以在代码中添加'assertEquals',我相信您会看到问题所在。祝你好运

    public void testGetEnabledMetricData() throws Exception {

    MetricApi api = getApi().getMetricApi();
    Resource r = getLocalPlatformResource(false, false);
    MetricsResponse resp = api.getEnabledMetrics(r);
    hqAssertSuccess(resp);

    assertTrue("No enabled metrics found for " + r.getName(),
               resp.getMetric().size() > 0);
    Metric m = resp.getMetric().get(0);

    long end = System.currentTimeMillis();
    long start = end - (8 * 60 * 60 * 1000);

    MetricDataResponse dataResponse = api.getMetricData(m.getId(),
                                                           start, end);
    hqAssertSuccess(dataResponse);
    assertTrue("No metric data found for " + m.getName(),
               dataResponse.getMetricData().getDataPoint().size() > 0);
    for (DataPoint d : dataResponse.getMetricData().getDataPoint()) {

        assertTrue("Metric point timestamp greater than end time. ts=" +
                   d.getTimestamp() + " end=" + end,
                   d.getTimestamp() <= end);
        assertTrue("Metric point timestamp less than start time ts=" +
                   d.getTimestamp() + " start=" + start,
                   d.getTimestamp() >= start);
        assertTrue("Metric value less than zero",
                   d.getValue() >= 0);
    }
}