通过XMLRPC使用XAPI监控Xen(XCP 1.6).从Xen主机响应的双精度(或浮点)值总是0



我正在为Xen开发一个简单的性能监视器(我使用XCP 1.6)。我使用PHP来执行XMLRPC请求。Xen主机的大部分响应正常。然而,当我请求host_cpu。get_utilisation,响应中的双精度值始终为0。PIF_metrics的响应双精度值。get_io_read_kbsPIF_metrics。get_io_write_kbs也为0,无论网络中有多少流量。其他类型如int和string是正常的,XenCenter可以监控主机并得到正确的结果。我该怎么办?
下面是PHP代码:

// get CPU utilisation
$cpu_utilisation = 0.0;
for($i=0; $i<count($host_CPUs); $i++)
{
$rpcClient->query("host_cpu.get_utilisation", $session, $host_CPUs[$i]);
$u = $rpcClient->getResponse();
$cpu_utilisation += (float)($u["Value"]*100);
print_r($u);
}
$cpu_utilisation = $cpu_utilisation/count($host_CPUs);
echo "CPU %: ";
print_r($cpu_utilisation);

下面是响应xml:

<methodResponse>
<params>
<param>
<value>
<struct>
    <member><name>Status</name><value>Success</value></member>
    <member><name>Value</name><value><double>0</double></value></member>
</struct>
</value>
</param>
</params>
</methodResponse>

我解决了。主机。query_data_source工作正常!

最新更新