文章出處
文章列表
在vsphere產品中內建一個監控所有虛機包括主機資源的插件,叫做vcenter servcie status,這個插件的主要功能是記錄當前虛擬機資源的cpu、硬盤、內存和網絡等相關信息。通過它可以查看24小時、周年月性能情況。而微軟則需要另外安裝scom產品。
那么,它究竟是如何工作的,如何記錄數據的,24小時的數據你可以看到sql server客戶端daily后綴的視圖,我們可以看到它是每5分鐘一個點,它的記錄24小時以內的數據,那么每5分鐘插入一段數據,再刪除一段過期數據,每周的數據在weekly后綴的視圖可以看到,它記錄的是每隔半小時的點,以此類推月年的數據間隔越長。vsphere所采用的是utc時間,比中國所在東八區格林威治時間晚8個小時。不過在api中時間為格林威治時間,不用作轉換。
當然我們可以直接通過sql語句去拿vsphere的數據獲取性能數據,這樣繞過api更直接快捷靈活,不過這里可能要手動配置vshpere數據庫連接,通過api沒有發現有接口可以拿到odbc的連接,那么通過第二種方法,就是通過api,貌似有點復雜,效率上肯定要低于直接sql,不過這樣不用考慮數據庫相關問題。
1 private void GetPerformance() 2 { 3 DateTime edt = DateTime.Now; 4 DateTime sdt = DateTime.Now.AddHours(-24); 5 ManagedObjectReference pmMor = util.getConnection().ServiceContent.perfManager; 6 ManagedObjectReference vmMor = util.getServiceUtil().getEntityByName("VirtualMachine", "linux13"); 7 8 //---拉取系統監控項目--- 9 List<PerfCounterInfo> perfCounterList = new List<PerfCounterInfo>(); 10 PerfCounterInfo[] perfCounterInfos = (PerfCounterInfo[])util.getServiceUtil().GetDynamicProperty(pmMor, "perfCounter"); 11 perfCounterInfos.ToList().ForEach(x => 12 { 13 if (x.groupInfo.key.Equals("cpu") && x.nameInfo.key.Equals("usage") && x.rollupType == PerfSummaryType.average) 14 { 15 perfCounterList.Add(x); 16 return; 17 } 18 }); 19 //---當前虛擬機條件內所有監控類型--- 20 List<PerfMetricId> perfMetricIdList = new List<PerfMetricId>(); 21 PerfMetricId[] perfMetricIds = util.getConnection().Service.QueryAvailablePerfMetric(pmMor, vmMor, sdt, true, edt, true, 300, true); 22 perfMetricIds.ToList().ForEach(x => 23 { 24 if (perfCounterList.Where(item => item.key.Equals(x.counterId)).Count() > 0) 25 { 26 perfMetricIdList.Add(x); 27 } 28 }); 29 PerfQuerySpec spec = new PerfQuerySpec() 30 { 31 metricId = perfMetricIdList.ToArray(), 32 entity = vmMor, 33 startTime = sdt, 34 endTime = edt, 35 startTimeSpecified = true, 36 endTimeSpecified = true, 37 //---時間間隔5分鐘--- 38 intervalId = 300, 39 intervalIdSpecified = true, 40 }; 41 PerfEntityMetricBase[] metrics = util.getConnection().Service.QueryPerf(pmMor, new PerfQuerySpec[] { spec }); 42 }
文章列表
全站熱搜