VMWare Datastore Performance Monitor

本文介绍如何利用VMware的API通过Java或.NET代码获取数据存储的性能数据,包括实时监控、日监控、周监控、月监控和年度监控。

       VMWare 提供了对主机,存储,网络等的监控功能,对于存储(Datastore)的性能,VMWare 从ReadIOPS,WriteIOPS,Write Latency, Read Latency 等等诸多角度去衡量存储性能,为创建主机,虚拟机等资源提供参考,同时提供灵活的查询方式,比如实时监控,日监控,周监控,月监控,年度监控等等。VMWare 提供了相应的接口供java或者.net进行调用,所以我们可以通过代码获取数据存储的性能数据。

       

下面的代码提供了一个提取监控数据的思路:

private void GetPerformance()
{
    DateTime edt = DateTime.Now;
    DateTime sdt = DateTime.Now.AddHours(-24);
    ManagedObjectReference pmMor = util.getConnection().ServiceContent.perfManager;
    ManagedObjectReference vmMor = util.getServiceUtil().getEntityByName("Datastore", "datastore1");

    //---Get all performance monitor items---
    List<PerfCounterInfo> perfCounterList = new List<PerfCounterInfo>();
    PerfCounterInfo[] perfCounterInfos = (PerfCounterInfo[])util.getServiceUtil()
					.GetDynamicProperty(pmMor, "perfCounter");
    perfCounterInfos.ToList().ForEach(x =>
    {
        if (x.groupInfo.key.Equals("datastore") 
		&& x.nameInfo.key.Equals("datastoreReadIops") 
		&& x.rollupType == PerfSummaryType.average)
        {
            perfCounterList.Add(x);
            return;
        }
    });
    //---get all monitor condition---
    List<PerfMetricId> perfMetricIdList = new List<PerfMetricId>();
    PerfMetricId[] perfMetricIds = util.getConnection().Service
				.QueryAvailablePerfMetric(pmMor, vmMor, sdt, true, edt, true, 300, true);
    perfMetricIds.ToList().ForEach(x =>
    {
        if (perfCounterList.Where(item => item.key.Equals(x.counterId)).Count() > 0)
        {
            perfMetricIdList.Add(x);
        }
    });
    PerfQuerySpec spec = new PerfQuerySpec()
    {
        metricId = perfMetricIdList.ToArray(),
        entity = vmMor,
        startTime = sdt,
        endTime = edt,
        startTimeSpecified = true,
        endTimeSpecified = true,
        //---time interval 20 seconds---
        intervalId = 20,
        intervalIdSpecified = true,
    };
     PerfEntityMetricBase[] metrics = util.getConnection().Service
			.QueryPerf(pmMor, new PerfQuerySpec[] { spec });
}
更多详细信息,请参考vSphere SDK。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值