Hi Jon, Thanks very much. As you said, I create one session on the master,(the code I give in last email is also firstly creates one session on the master ), then I use that session for querying the RRD data on one slave.But it shows failure* ['HOST_OFFLINE'], *that means I attempted an operation which involves a host which cannot be contacted.
I want to confirm one thing: where is the RRD of slave stored? master host or slave host itself? I think it's slave. How do I use the session on the master to query the RRD data on each slave? Can you give me a sample? Thanks and Regards, Will 2014-11-24 23:17 GMT+08:00 Jon Ludlam <jonathan.lud...@citrix.com>: > Hi Will, > > It looks like what the code is doing is trying to create the session on > the slave before doing the RRD GET call. Sessions are handled by the pool > master, so that's why you get the HOST_IS_SLAVE error. > > What you should do is create one session on the master, then use that one > session for querying the RRD data on each slave. > > HTH, > > Jon > > > > > On 24/11/14 13:05, Will Sun wrote: > > 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