一種適用于云平臺資源自適應(yīng)監(jiān)控頻率的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云平臺監(jiān)控技術(shù)領(lǐng)域,特別是一種適用于云平臺資源自適應(yīng)監(jiān)控頻率的方法。
【背景技術(shù)】
[0002]—般的云計算平臺上有多個計算節(jié)點,而每個計算節(jié)點上都有多個虛擬機,有些性能較高的節(jié)點甚至有幾十個虛擬機。監(jiān)控代理監(jiān)控這些虛擬機以及計算節(jié)點本身就需要消耗一部分系統(tǒng)資源。而大部分的情況下,計算節(jié)點以及虛擬機都是處于正常狀態(tài)??蛻粝肟吹降臅r候,虛擬機或物理機監(jiān)控狀態(tài)處于長期正常的時候,不需要對其進行頻繁監(jiān)控,只有當(dāng)虛擬機或物理機狀態(tài)出現(xiàn)異常的情況下要較頻繁監(jiān)控,這樣會帶來以下問題:
[0003]—是虛擬機數(shù)量越多,計算節(jié)點上的監(jiān)控代理占用系統(tǒng)資源就越大,反而影響了虛擬機的正常運行。
[0004]二是常規(guī)的監(jiān)控代理監(jiān)控頻率不能自適應(yīng),一般按照程序給定的特定頻率長時間監(jiān)控。
[0005]三是無法滿足客戶的監(jiān)控頻率需求。
[0006]四是無法根據(jù)監(jiān)控項的監(jiān)控數(shù)據(jù)上升情況來動態(tài)調(diào)整監(jiān)控頻率。
[0007]為了解決上述問題,需要有一種適用于云平臺資源自適應(yīng)監(jiān)控頻率的方法。監(jiān)控系統(tǒng)自身根據(jù)監(jiān)控對象所處于的監(jiān)控狀態(tài)來自適應(yīng)監(jiān)控頻率。
【發(fā)明內(nèi)容】
[0008]本發(fā)明解決的技術(shù)問題在于提供一種適用于云平臺資源自適應(yīng)監(jiān)控頻率的方法;解決監(jiān)控代理監(jiān)控頻率不能自適應(yīng)、監(jiān)控對象處于正常狀態(tài)而監(jiān)控代理占用系統(tǒng)資源就越大、無法根據(jù)監(jiān)控項的監(jiān)控數(shù)據(jù)上升情況來動態(tài)調(diào)整監(jiān)控頻率等問題。
[0009 ]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0010]所述的方法包括如下步驟:
[0011]步驟1:設(shè)置監(jiān)控項;
[0012]步驟2:監(jiān)控管理端獲取監(jiān)控項設(shè)置信息;
[0013]步驟3:監(jiān)控代理根據(jù)監(jiān)控頻率定期上報數(shù)據(jù);
[0014]步驟4:監(jiān)控管理端分析數(shù)據(jù),若沒有達(dá)到閾值則執(zhí)行步驟5;若達(dá)到閾值則執(zhí)行步驟6;
[0015]步驟5:監(jiān)控管理端計算監(jiān)控項下次的監(jiān)控頻率;執(zhí)行步驟7;
[0016]步驟6:監(jiān)控項下次的監(jiān)控頻率=最小監(jiān)控頻率;
[0017]步驟7:返回最新監(jiān)控頻率給監(jiān)控代理;
[0018]步驟8:監(jiān)控代理設(shè)置監(jiān)控頻率為最新值;執(zhí)行步驟2。
[0019]所述的設(shè)置監(jiān)控項是設(shè)置監(jiān)控項的比較方式、閾值、最小監(jiān)控頻率、最大監(jiān)控頻率及時間間隔。
[0020]所述的監(jiān)控項的比較方式,常用比較方式有兩種:大于等于、小于等于;
[0021 ]所述的最小監(jiān)控頻率,最小監(jiān)控頻率是指自適應(yīng)監(jiān)控頻率的下限。
[0022]所述的最大監(jiān)控頻率,最大監(jiān)控頻率是指自適應(yīng)監(jiān)控頻率的上限。
[0023]所述的時間間隔,是指連續(xù)多長時間沒有達(dá)到閾值就進入最大監(jiān)控頻率,用戶可以設(shè)置多少年、多少月、多少日、多少周或者多少個小時,然后程序后臺自動轉(zhuǎn)化成最小單位,通常監(jiān)控頻率最小是1分鐘,那么就轉(zhuǎn)成分鐘單位,如1周時間=7X24X60分鐘=10080分鐘。
[0024]所述的監(jiān)控管理端分析數(shù)據(jù)是根據(jù)上報的最新監(jiān)控項數(shù)據(jù),比較是否達(dá)到閾值、比較最新監(jiān)控值與上一次監(jiān)控值。
[0025]所述的監(jiān)控管理端計算監(jiān)控項下次的監(jiān)控頻率,下次的監(jiān)控頻率=最小監(jiān)控頻率+((最大監(jiān)控頻率-最小監(jiān)控頻率)x log(正常狀態(tài)累加值-((上升累加值/監(jiān)控項最大值)x時間間隔))/log(時間間隔)),其中X表示乘以,log表示對數(shù)函數(shù);若下次的監(jiān)控頻率計算結(jié)果大于最大監(jiān)控頻率,則設(shè)置下次的監(jiān)控頻率=最大監(jiān)控頻率;若下次的監(jiān)控頻率計算結(jié)果小于最小監(jiān)控頻率,則設(shè)置下次的監(jiān)控頻率=最小監(jiān)控頻率;當(dāng)正常狀態(tài)累加值越大,那么就越接近或者達(dá)到最大監(jiān)控頻率;當(dāng)上升累加值越大,那么就越接近或者達(dá)到最小監(jiān)控頻率;
[0026]所述的正常狀態(tài)累加值=上次正常狀態(tài)累加值+1;
[0027]所述的上升累加值,若比較方式是大于等于,那么上升累加值=上次上升累加值+(最新監(jiān)控項的監(jiān)控數(shù)據(jù)-舊監(jiān)控項的監(jiān)控數(shù)據(jù));若比較方式是小于等于,那么上升累加值=上次上升累加值+(舊監(jiān)控項的監(jiān)控數(shù)據(jù)-最新監(jiān)控項的監(jiān)控數(shù)據(jù));
[0028]所述的監(jiān)控項最大值,一開始由程序默認(rèn)一個最大值,當(dāng)發(fā)現(xiàn)監(jiān)控項的監(jiān)控數(shù)據(jù)大于最大值,則設(shè)置最大值=監(jiān)控項的監(jiān)控數(shù)據(jù)。
[0029]所述的監(jiān)控項下次的“監(jiān)控頻率=最小監(jiān)控頻率”,設(shè)置下次的監(jiān)控頻率為最小監(jiān)控頻率;設(shè)置正常狀態(tài)累加值為零;設(shè)置上升累加值為零。
[0030]本發(fā)明通過一種適用于云平臺資源自適應(yīng)監(jiān)控頻率的方法,解決了監(jiān)控代理監(jiān)控頻率不能自適應(yīng)、監(jiān)控對象越多但都處于正常狀態(tài)而監(jiān)控代理占用系統(tǒng)資源就越大、無法根據(jù)監(jiān)控項的監(jiān)控數(shù)據(jù)上升情況來動態(tài)調(diào)整監(jiān)控頻率等問題。本發(fā)明由監(jiān)控代理主動上報監(jiān)控數(shù)據(jù),根據(jù)監(jiān)控管理端返回的頻率重新動態(tài)調(diào)整監(jiān)控頻率,區(qū)域一般的云平臺監(jiān)控代理。本發(fā)明提供一個自適應(yīng)頻率的計算公式,區(qū)域一般的云平臺監(jiān)控管理端。
【附圖說明】
[0031 ]下面結(jié)合附圖對本發(fā)明進一步說明:
[0032]圖1為本發(fā)明的流程圖;
[0033]圖2為本發(fā)明的邏輯結(jié)構(gòu)圖。
【具體實施方式】
[0034]本發(fā)明的實施方式有多種,這里以云平臺為例說明其中一種實現(xiàn)方法,如圖1、2所示,具體實施過程如下:
[0035]1、設(shè)置監(jiān)控項;
[0036]/* 女
[0037]*設(shè)置監(jiān)控項
[0038]* Oparam compare 比較方式
[0039]* Oparam threshold 閾值
[0040]* Oparam min 最小監(jiān)控頻率[0041 ] Oparam max 最大監(jiān)控頻率
[0042]* Oparam per1d 時間間隔
[0043]?return boolean告警評估和告警任務(wù)結(jié)果
[0044]* /
[0045]public boolean evalat1nAndAct1n(String compare?Long threshold,intmin,intmax,int per1d){
[0046]return Rule.setThreshoId(compare?threshold?min?max?per1d);
[0047]}
[0048]2、監(jiān)控管理端獲取監(jiān)控項設(shè)置信息;
[0049]/* *
[0050]女監(jiān)控管理端獲取監(jiān)控項設(shè)置信息
[0051]-k Oparam objectld 監(jiān)控項Id
[0052]* ?return Rule取監(jiān)控項設(shè)置信息
[0053]女 /
[0054]public Rule getRule(string obj ectld){
[0055]return Rules.getRule(obj ectld);
[0056]}
[0057]3、監(jiān)控代理根據(jù)監(jiān)控頻率定期上報數(shù)據(jù);
[0058]/**
[0059]女監(jiān)控代理根據(jù)監(jiān)控頻率定期上報數(shù)據(jù)[0060 ]* Ore turn vo i d無返回結(jié)果
[0061]*/
[0062]public voi