1

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

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

除了“可用性”之外,我在所有指标上都遇到了这个问题。我应该怎么办?

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

代码是

 //  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");
        }
    }
}

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

4

1 回答 1

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);
    }
}
于 2013-01-31T01:12:01.220 回答