我已经编写了一些Java代码,通过这些代码我可以从Hyperic Server获取一些操作的指标。我还无法获取这些指标的值。
对于eq,我有指标CPU Idle,但是当我使用List<Data Point> dp= m1.getDataPoint()时,其中m1是指标CPU Idle的指标数据对象。在输出中,列表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");
}
}
}此处,所有指标的输出中数据点列表的大小为零
发布于 2013-01-31 09:12:01
这里是来自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);
}
}https://stackoverflow.com/questions/6509309
复制相似问题