XenAPI中查询虚拟机或主机的CPU、内存等一些信息

本文档介绍了如何在XenAPI中查询虚拟机和主机的CPU、内存等信息。由于XenAPI某些接口在当前版本无法直接获取这些数据,作者通过参考XenServer开发者资源和XAPI RRDs文档,详细阐述了获取过程,包括登录服务器、获取RRD数据以及数据解析。主要难点在于登录认证,需对session_id进行特殊处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为公司需要做这方面的接口所以自己在网上查了好久才发现方法做了出来,其中遇到了不少的坑写一下以便以后再次遇到。

1、首先在xenAPI给的一些接口中虽然有关于这方面的接口但是现在的版本不能直接得到,如果直接调用VM_guest_metrics中的方法返回的数据是空的。

2、首先附上参考链接 https://xenserver.org/partners/developing-products-for-xenserver/18-sdk-development/96-xs-dev-rrds.html

第二个链接https://wiki.xen.org/wiki/XAPI_RRDs

3、说一下获得的过程:

大致分三步 1、首先登陆要获取的服务器 2、得到RRD中的数据 3、解析数据

刚开始遇到最大的坑 就是登录认证不通过 原因在获取登录服务器 session_id是用session.handle处理一下就OK了基本上就没什么问题了。 

python的参考代码

#!/usr/bin/python
# Example code for reading RRDs
# Contact: Jon Ludlam (jonathan.ludlam@eu.citrix.com)
#
# Mostly this script is taken from perfmon, by Alex Zeffert
#
import XenAPI
import urllib
from xml.dom import minidom
from xml.parsers.expat import ExpatError
import time
# Per VM dictionary (used by RRDUpdates to look up column numbers by variable names)
class VMReport(dict):
    """Used internally by RRDUpdates"""
    def __init__(self, uuid):
        self.uuid = uuid
# Per Host dictionary (used by RRDUpdates to look up column numbers by variable names)
class HostReport(dict):
    """Used internally by RRDUpdates"""
    def __init__(self, uuid):
        self.uuid = uuid
class RRDUpdates:
    "&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值