本發明涉及計算機技術領域,尤其涉及一種閾值自適應的方法、裝置、電子設備和可讀介質。
背景技術:
線上服務的數據實時監控報警有很多種策略,常見的有最大值、最小值、日環比增長率、周同比等指標超過某個預先設定的閾值,系統進行報警。其中,日環比增長率大于固定閾值的過程包括:取得當前時刻點數據a,取得前一天同時刻數據b;計算日環比增長率為(a-b)/b;判斷日環比增長率的絕對值是否大于固定閾值,如果大于,則報警。
雖然通過日環比增長率的絕對值與固定閾值進行比較,可進行數據一定程度的監控,但是存在一些缺點。例如,容器會受節假日等因素的影響,如周一跟周日做日環比,數據波動較大,則日環比增長率預期就會很大,進而容易發生誤報。而且,閾值是固定不變的,若將閾值設置過大,會容易導致漏報,設置過小則可能會發生誤報。以及,由于閾值是固定的,系統會頻繁重復報警,譬如每隔5分鐘檢測時,只要觸發閾值就會報警一次。
技術實現要素:
有鑒于此,本發明提供一種閾值自適應的方法、裝置、電子設備和可讀介質,能夠根據當前時刻之前的n個數據采集間隔時間的環比增長率獲取動態閾值,進而閾值會隨事件的變化而變化,可以自學習,減少人工頻繁調整的麻煩。
為實現上述目的,根據本發明的一個方面,提供了一種閾值自適應的方法。
本發明的一種閾值自適應的方法包括:計算在當前時刻之前的n個采集間隔時間的監控數據的環比增長率;根據下列公式,計算用于報警的動態閾值;
其中,fabs表示求絕對值;
ri為當前時刻之前的n個采集間隔時間的監控數據的環比增長率;
i的取值為1,2,…,n;
k為固定閾值的占比系數;
min為最低閾值。
可選地,本發明的方法還包括計算當前時刻的監控數據的環比增長率;
若所述當前時刻的監控數據的環比增長率大于所述動態閾值,則進行報警。
可選地,n的取值范圍為1至15。
可選地,本發明的方法還包括根據監控對象和監控效果,設置固定閾值的占比系數。
可選地,所述占比系數在大于等于0且小于1的范圍內取值。
為實現上述目的,根據本發明的另一方面,提供了一種閾值自適應的裝置。
本發明的一種閾值自適應的裝置包括先前環比增長率計算模塊和動態閾值計算模塊。當前環比增長率計算模塊用于計算當前時刻的監控數據的環比增長率;先前環比增長率計算模塊用于計算在所述當前時刻之前的n個采集間隔時間的監控數據的環比增長率;動態閾值計算模塊用于根據下列公式,計算用于報警的動態閾值;
其中,fabs表示求絕對值;
ri為當前時刻之前的n個采集間隔時間的監控數據的環比增長率;
i的取值為1,2,…,n;
k為固定閾值的占比系數;
min為最低閾值。
可選地,本發明的裝置還包括當前環比增長率計算模塊和報警模塊,當前環比增長率計算模塊用于計算當前時刻的監控數據的環比增長率;報警模塊用于在所述當前時刻的監控數據的環比增長率大于所述動態閾值時,進行報警。
可選地,n的取值范圍為1至15。
可選地,本發明的裝置還包括閾值設置模塊,用于根據監控對象和監控效果,設置固定閾值的占比系數。
可選地,所述占比系數在大于等于0且小于1的范圍內取值。
為實現上述目的,根據本發明的再一方面,提供了一種電子設備。
本發明的一種電子設備包括:一個或多個處理器;
存儲裝置,用于存儲一個或多個程序,
當所述一個或多個程序被所述一個或多個處理器執行,使得所述一個或多個處理器實現本發明所提供的閾值自適應的方法。
為實現上述目的,根據本發明的再一方面,提供了一種非暫態計算機可讀存儲介質。
本發明的一種計算機可讀介質,其上存儲有計算機程序,其特征在于,所述程序被處理器執行時實現本發明所提供的閾值自適應的方法。
根據本發明的技術方案,根據當前時刻之前的n個數據采集間隔時間的環比增長率,以及固定閾值和最低閾值,計算出用于報警的動態閾值。若當前時刻的環比增長率大于計算出的動態閾值,則進行報警。相較于現有技術中固定的閾值,本發明可實時獲取動態閾值,由于閾值會隨監控對象的變化而變化,可進行自適應調整,減少了人工頻繁調整的問題。并且,在監控對象發出波動時,n個采集間隔時間的監控數據的環比增長率絕對值的平均值會發生相對應的變化,進而本發明中的動態閾值也會變化,即可發現微小的環比變化,并且也可以在有較大變化時只報警一次,避免了固定閾值導致的頻繁報警的問題。
上述的非慣用的可選方式所具有的進一步效果將在下文中結合具體實施方式加以說明。
附圖說明
附圖用于更好地理解本發明,不構成對本發明的不當限定。其中:
圖1是現有技術中通過固定閾值進行監控的方法的示意圖;
圖2是根據本發明實施例的閾值自適應的方法主要步驟的示意圖;
圖3是根據本發明實施例的監控對象的變化趨勢示意圖;
圖4是根據本發明實施例的閾值自適應的裝置的主要模塊的示意圖;
圖5是根據本發明實施例的閾值自適應的電子設備的示意圖;
圖6是適于用來實現本發明實施例的終端設備或服務器的計算機系統的結構示意圖。
具體實施方式
以下結合附圖對本發明的示范性實施例做出說明,其中包括本發明實施例的各種細節以助于理解,應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識到,可以對這里描述的實施例做出各種改變和修改,而不會背離本發明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結構的描述。
圖1是現有技術中通過固定閾值進行監控的方法的示意圖。
如圖1所示,現有技術中通過固定閾值進行監控的方法通過當前時刻點數據a和之前同時刻點數據b計算出環比增長率,并且將環比增長率與固定閾值進行比較,如果大于,則進行報警。因而,報警狀況不能隨著監控對象的變動狀況進行自適應地報警。
圖2是根據本發明實施例的閾值自適應的方法主要步驟的示意圖。
如圖2所示,本發明實施例的閾值自適應的方法主要包括如下步驟:
計算在當前時刻之前的n個采集間隔時間的監控數據的環比增長率;以及根據下列公式,計算用于報警的動態閾值;
其中,ri為當前時刻之前的n個采集間隔時間的監控數據的環比增長率;i的取值為1,2,…,n;
fabs:表示求絕對值;
k為固定閾值的占比系數;
min為最低閾值。
本發明實施例閾值自適應的方法還包括:計算當前時刻的監控數據的環比增長率;若當前時刻的監控數據的環比增長率大于上述計算出的動態閾值,則進行報警。
本發明實施例中的環比增長率包括日環比增長率、周環比增長率和月環比增長率等。以日環比增長率為例,在計算當前時刻的日環比增長率時,獲取當前時刻的監控數據為a以及前一天同時刻數據為b,日環比增長率則為(a-b)/b。監控數據為監控對象的運行數據,在監控過程過程中,可對監控數據進行統計、計算和比較等。在計算動態閾值時,先根據監控對象和監控效果,設置固定閾值的占比系數k,一般占比系數k在大于等于0且小于1的范圍內取值,在監控數據會波動較大的情況下,k也可取1以上的值或者負值。并且,設置監控數據的采集間隔和n(n取任何自然數,一般取1至15)的值,以及固定閾值和最低閾值。其中,最低閾值一般是最低經驗值,主要是防止用戶誤把固定閾值設為0或相對比較低時,系統自動算出來的動態閾值太低,引發大量報警。n表示對所有時刻的環比增長率的絕對值求平均,沒有n,則是對原始數據的一個綜合同比值。選擇有n的原因是因為想適應監控數據毛刺波動的情況,當監控數據波動很大的情況下,動態計算出來的閾值就會高,避免一些無效報警。
將監控數據的采集間隔時間設置為5分鐘,固定閾值設置為10,固定閾值的占比系數設置為0.2,最低閾值min設置為2,n取3,并且假如最后一個數據的時間點是09-2023:30,則按照上述公式進行計算3個采集間隔時間的監控數據的環比增長率:
r1=(09-2023:25數據減去09-1923:25數據)除以(09-1923:25數據)
r2=(09-2023:20數據減去09-1923:20數據)除以(09-1923:20數據)
r3=(09-2023:15數據減去09-1923:15數據)除以(09-1923:15數據)
其中,例如09-2023:25數據指的是時間點為9月20日的23:25的監控對象的監控數據。
最終可計算動態閾值為:
(|r1|+|r2|+|r3|)/3+10×0.2+2
=(|r1|+|r2|+|r3|)/3+4。
并且,獲取當前時刻點09-2023:30的數據為a,取得前一天同時刻09-1923:30數據為b,計算當前時刻的日環比增長率rate=(a-b)/b,判斷該日環比增長率rate的絕對值是否大于上述計算出來的動態閾值,如果大于,則報警。
計算環比增長率的順序和計算動態閾值的順序是不分先后的,只要最終獲取到動態閾值和計算出環比增長率,然后判斷環比增長率是否大于動態閾值。如果大于,則進行報警即可。對于動態閾值的計算,是通過環比增長率絕對值的平均值和固定閾值以及最低閾值來得出的。在監控的數據發生較大波動時,例如周一跟周日做日環比,一般來數周一和周日的數據相差相對較大,則對數據監控時,周一和周日的數據和同一個固定閾值進行比較的話,則不合理,并且會發生頻繁報警的情況。若是使用動態閾值的話,則會對監控對象進行更加嚴密以及真實的監控。根據實施例中數據日環比增長率的變化,預估自適應的閾值可以很好地捕捉數據微小變化,如圖3所示,a線表示當天變化趨勢,b線表示昨天變化趨勢。假如突變時刻的日環比增長率是-7%,動態算出來的動態閾值是6%,會觸發報警。但是,當觸發報警一次后,后續時間點的報警檢測算出來的動態閾值就會提高,如提高到9%,那后面時間點的日環比增長率必須大于9%,才會再次報警,否則不會連續報警。而且,根據前幾段時刻的數據變化趨勢去預估當前時刻的閾值,固定閾值設置一次,無需再調整,每次報警檢測時的閾值都是動態算出來的。進而省去人工頻繁調整閾值的麻煩,提升了線上問題的召回率,降低了線上問題的誤報率。并且,對于不同的監控對象,或是達到某種監控效果,可通過設置固定閾值的系數或是最低閾值實現。
圖4是根據本發明實施例的閾值自適應的裝置的主要模塊的示意圖。如圖4所示,本發明實施例的閾值自適應的裝置包括當前環比增長率計算模塊、先前環比增長率計算模塊和動態閾值計算模塊。其中,當前環比增長率計算模塊用于計算當前時刻的監控數據的環比增長率;先前環比增長率計算模塊用于計算在當前時刻之前的n個監控數據采集間隔時間的監控數據的環比增長率;動態閾值計算模塊用于根據下列公式,計算用于報警的動態閾值;
其中,fabs表示求絕對值;
ri為當前時刻之前的n個采集間隔時間的監控數據的環比增長率,n的取值范圍為1至15;
i的取值為1,2,…,n;
k為固定閾值的占比系數,在大于等于0且小于1的范圍內取值;
min為最低閾值。
本發明實施例的閾值自適應的裝置還包括當前環比增長率計算模塊和報警閾值,其中,當前環比增長率計算模塊用于計算當前時刻的監控數據的環比增長率;報警模塊用于在當前時刻的監控數據的環比增長率大于上述計算出的動態閾值時,進行報警。
本發明實施例的閾值自適應的裝置的當前環比增長率計算模塊計算出當前時刻的環比增長率,以及先前環比增長率計算模塊計算出動態閾值。對于動態閾值的計算,可根據監控對象和監控效果,設置固定閾值的占比系數。并且,防止用戶誤把固定閾值設為0或者相對較低的數值,使得自動算出來的動態閾值太低,引發大量報警,可根據最低經驗值設置最低閾值,還可根據實際需求和監控效果等對最低閾值進行調整。
通過當前時刻之前的n個數據采集間隔時間的監控數據的環比增長率的絕對值的平均值,可構成動態閾值的自適應。根據監控對象和實際需求,設置數據采集間隔時間和采集數據的個數n,根據數據采集間隔時間采集n個先前環比增長率所需的數據,則進一步計算出n個數據采集間隔時間的監控數據的環比增長率的絕對值的平均值。動態閾值可根據監控對象的變化自適應的進行調整,避免了人工頻繁調整的麻煩,以及解決了固定閾值導致的連續頻繁報警的問題。
圖5是根據本發明實施例的閾值自適應的電子設備的示意圖。如圖5所示,本發明實施例的閾值自適應的電子設備5包括存儲器51和至少一個處理器52,其中,存儲器51與至少一個處理器52通過總線連接,存儲器51存儲有可被一個處理器執行的指令,當本實施例的裝置5運行時,指令被至少一個處理器執行,以使至少一個處理器能夠執行閾值自適應的方法的流程。
圖6是適于用來實現本發明實施例的終端設備或服務器的計算機系統的結構示意圖。
如圖6所示,計算機系統600包括中央處理單元(cpu)601,其可以根據存儲在只讀存儲器(rom)602中的程序或者從存儲部分608加載到隨機訪問存儲器(ram)603中的程序而執行各種適當的動作和處理。在ram603中,還存儲有系統600操作所需的各種程序和數據。cpu601、rom602以及ram603通過總線604彼此相連。輸入/輸出(i/o)接口605也連接至總線604。
以下部件連接至i/o接口605:包括鍵盤、鼠標等的輸入部分606;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分607;包括硬盤等的存儲部分608;以及包括諸如lan卡、調制解調器等的網絡接口卡的通信部分609。通信部分609經由諸如因特網的網絡執行通信處理。驅動器610也根據需要連接至i/o接口605。可拆卸介質611,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據需要安裝在驅動器610上,以便于從其上讀出的計算機程序根據需要被安裝入存儲部分608。
特別地,根據本發明公開的實施例,上文參考步驟圖描述的過程可以被實現為計算機軟件程序。例如,本發明公開的實施例包括一種計算機程序產品,其包括承載在計算機可讀介質上的計算機程序,該計算機程序包含用于執行步驟圖所示的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分609從網絡上被下載和安裝,和/或從可拆卸介質611被安裝。在該計算機程序被中央處理單元(cpu)601執行時,執行本發明的系統中限定的上述功能。
需要說明的是,本發明所示的計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質或者是上述兩者的任意組合。計算機可讀存儲介質例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子可以包括但不限于:具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機訪問存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本發明中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。而在本發明中,計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以采用多種形式,包括但不限于電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用于由指令執行系統、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括但不限于:無線、電線、光纜、rf等等,或者上述的任意合適的組合。
附圖中的流程圖和框圖,圖示了按照本發明各種實施例的系統、方法和計算機程序產品的可能實現的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,上述模塊、程序段、或代碼的一部分包含一個或多個用于實現規定的邏輯功能的可執行指令。也應當注意,在有些作為替換的實現中,方框中所標注的功能也可以以不同于附圖中所標注的順序發生。例如,兩個接連地表示的方框實際上可以基本并行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,框圖或流程圖中的每個方框、以及框圖或流程圖中的方框的組合,可以用執行規定的功能或操作的專用的基于硬件的系統來實現,或者可以用專用硬件與計算機指令的組合來實現。
描述于本發明實施例中所涉及到的模塊可以通過軟件的方式實現,也可以通過硬件的方式來實現。所描述的模塊也可以設置在處理器中,例如,可以描述為:一種處理器包括當前環比增長率計算模塊、先前環比計算模塊和動態閾值計算模塊。其中,這些單元的名稱在某種情況下并不構成對該單元本身的限定,例如,當前環比增長率技術模塊還可以被描述為“計算模塊”,用于計算當前時刻的監控數據的環比增長率。
作為另一方面,本發明還提供了一種計算機可讀介質,該計算機可讀介質可以是上述實施例中描述的設備中所包含的;也可以是單獨存在,而未裝配入該設備中。上述計算機可讀介質承載有一個或者多個程序,當上述一個或者多個程序被一個該設備執行時,使得該設備包括:
計算在當前時刻之前的n個采集間隔時間的監控數據的環比增長率;
根據下列公式,計算用于報警的動態閾值;
其中,fabs表示求絕對值;
ri為當前時刻之前的n個采集間隔時間的監控數據的環比增長率;
i的取值為1,2,…,n;
k為固定閾值的占比系數;
min為最低閾值。
上述具體實施方式,并不構成對本發明保護范圍的限制。本領域技術人員應該明白的是,取決于設計要求和其他因素,可以發生各種各樣的修改、組合、子組合和替代。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明保護范圍之內。