[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-API] get 3 hosts real-time performing metrics and show them on the same page.



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:


 Â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.ludlam@xxxxxxxxxx>:
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 = ""true" href="https://host_ip" target="_blank">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 list
Xen-api@xxxxxxxxxxxxx
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api


_______________________________________________
Xen-api mailing list
Xen-api@xxxxxxxxxxxxx
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api



_______________________________________________
Xen-api mailing list
Xen-api@xxxxxxxxxxxxx
http://lists.xen.org/cgi-bin/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.