Hi Jon, Thanks very much. In fact ,I have used the RRD interface to get the master's metrics,and it worked fine. The codes as follows:
https://github.com/hswayne77/CitrixXenserver-monitoring But I cannot get the slave's metrics , unless I use the commands "pool.designate_new_master" to make slave become master. If I do so, I still cannot get the other two slaves metrics. In the *Citrix XenServer Management API ,* I can only manage the slave host by the master . In the session, the arguments "url" cannot be the slave's ip, or it will show the failure: [HOST_IS_SLAVE]. I do not want to get just one host metrics, instead I want to get all 3 hosts metrics in the same pool and to show them in one page at the same time. Thanks and Regards Will 2014-11-24 19:40 GMT+08:00 Jon Ludlam <jonathan.lud...@citrix.com>: > Hi Will, > > To get performance metrics, the preferred mechanism is to use the RRD > interface - it's much more lightweight than using the API > 'query_data_source'. Have a look here for some docs and sample code: > > > http://xenserver.org/partners/developing-products-for-xenserver/18-sdk-development/96-xs-dev-rrds.html > > Jon > > > On 24/11/14 02:46, Will Sun wrote: > > Hi all, > I build a pool includes 3 hosts : vGate7, vGate8 and vGate9. vGate9 is the > master, others are slaves. > I build a page to show the host and vm performing > metrics(e.g.cpu_utilization) on it. It works fine for the mater > (vGate9).But it cannot get the slave performing metrics. > > As follows in picture 1 : > > > > In python, I use the following codes to get the CPU Usage: > > import XenAPI > url = "https://host_ip" > username = "hostname" > password = "self_password" > > session = XenAPI.session(url) > session.xenapi.login_with_password(username,password) > > > cpu_usage = > session.xenapi.host.query_data_source("OpaqueRef:35ad218e-09e2-4117-e93d-0de371265448" > , 'cpu_avg') > # OpaqueRef:35ad218e-09e2-4117-e93d-0de371265448 is vGate7 > (slave), > # and it will show XenAPI.Failure:*['HOST_OFFLINE']* > > > I attempt to make an API call to a slave (even someting trivial like > pool.get_all()),I get the *['HOST_IS_SLAVE'] *exception,along with the > master's IP address. > > > The main problem is to get 3 hosts real-time performing metrics and to > show them on the same page. > Is there any workaround to solve this problem? > The attachment is picture1, incase you cannot see it in the message. > Thank you in advance! > > > Thanks and Regards, > Will > > > _______________________________________________ > Xen-api mailing > listxen-...@lists.xen.orghttp://lists.xen.org/cgi-bin/mailman/listinfo/xen-api > > > > _______________________________________________ > Xen-api mailing list > Xen-api@lists.xen.org > http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api > >
_______________________________________________ Xen-api mailing list Xen-api@lists.xen.org http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api