一種Java應(yīng)用健康度評估方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及Java應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種Java應(yīng)用健康度評估方法及系統(tǒng)。
【背景技術(shù)】
[0002] Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它具有卓越的 通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超 級計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng) 互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢和廣闊前景。
[0003] Java應(yīng)用監(jiān)控中各種性能/功能指標(biāo)眾多,包括線程死鎖、jvm (Java Virtual Machine, Java虛擬機(jī))內(nèi)存使用率、異常報(bào)警等。圖1是現(xiàn)有技術(shù)中進(jìn)行Java應(yīng)用監(jiān)控的 流程圖。在圖1中,監(jiān)控某個(gè)java應(yīng)用具體指標(biāo),需要設(shè)置該指標(biāo)的異常報(bào)警閾值,比較某 時(shí)間段內(nèi)異常次數(shù)、總調(diào)用次數(shù)或者比較若干天相同時(shí)間段內(nèi)的波動(dòng),從而判斷該應(yīng)用的 某項(xiàng)指標(biāo)是否合格,若不合格則向用戶報(bào)警。相應(yīng)步驟具體如下:
[0004] 步驟S101,選擇某一具體的java應(yīng)用指標(biāo)(例如某方法調(diào)用異常),根據(jù)業(yè)務(wù)特 點(diǎn)或經(jīng)驗(yàn)值預(yù)先設(shè)定該指標(biāo)的監(jiān)控時(shí)間間隔和該指標(biāo)的報(bào)警閾值(例如總異常次數(shù)不高于 5%) 〇
[0005] 步驟S102,按照預(yù)先設(shè)定的時(shí)間間隔,記錄該時(shí)間段內(nèi)指標(biāo)出現(xiàn)異常次數(shù)。
[0006] 步驟S103,比較該指標(biāo)在預(yù)設(shè)時(shí)間間隔內(nèi)的異常次數(shù)相對于當(dāng)前時(shí)間間隔內(nèi)總調(diào) 用次數(shù)的比率大小,或者比較該指標(biāo)在預(yù)設(shè)天數(shù)內(nèi)對應(yīng)時(shí)段內(nèi)的異常次數(shù)波動(dòng)大小。
[0007] 步驟S104,判斷比率大小或者波動(dòng)大小是否超出了預(yù)設(shè)報(bào)警閾值。若超出預(yù)設(shè)報(bào) 警閾值則進(jìn)入步驟S105,否則繼續(xù)執(zhí)行步驟S102。
[0008] 步驟S105,發(fā)出報(bào)警,通知用戶。
[0009] 現(xiàn)有技術(shù)中的Java應(yīng)用監(jiān)控方法或系統(tǒng)主要具有以下缺點(diǎn):
[0010] 一、現(xiàn)有方法或系統(tǒng)僅對單個(gè)/多個(gè)指標(biāo)本身做監(jiān)控和報(bào)警,不能從整體上判斷 一個(gè)Java應(yīng)用/服務(wù)的健康度。
[0011] 二、現(xiàn)有方法或系統(tǒng)中,雖然能夠針對具體某項(xiàng)Java應(yīng)用指標(biāo)繪制變化曲線,但 由于不能以數(shù)值的方式直觀體現(xiàn)應(yīng)用健康度,因此無法使用曲線圖表方式體現(xiàn)應(yīng)用本身隨 著時(shí)間遷移的整體健康度變化情況,用戶無法了解應(yīng)用健康度的變化率。
[0012] 三、現(xiàn)有方法或系統(tǒng)中,當(dāng)應(yīng)用指標(biāo)發(fā)生異常時(shí),一般以報(bào)警的方式通知用戶,后 續(xù)處理工作將由用戶接手。因而,在發(fā)現(xiàn)Java應(yīng)用存在健康問題后,整體自動(dòng)化處理和智 能自我修復(fù)能力不強(qiáng)。
[0013] 四、現(xiàn)有方法或系統(tǒng)中,對Java應(yīng)用指標(biāo)的監(jiān)控和分析,僅停留在單個(gè)Java應(yīng)用 上,無法對同類型Java應(yīng)用(例如:web服務(wù)型Java應(yīng)用)間的健康狀態(tài)進(jìn)行比較(例如:提 供類似服務(wù)的Java應(yīng)用,健康評分差距較大),因而無法查找或揭示出同類型Java應(yīng)用本 身在實(shí)現(xiàn)、處理以及參數(shù)配置上的差異,難以為業(yè)務(wù)的后續(xù)優(yōu)化提升提供參考。
[0014] 五、當(dāng)前互聯(lián)網(wǎng)公司在線業(yè)務(wù)復(fù)雜度較高,一項(xiàng)具體的在線服務(wù)往往包含若干個(gè) Java應(yīng)用,且為同時(shí)工作的結(jié)果。現(xiàn)有方法或系統(tǒng)不能從業(yè)務(wù)鏈路(交易鏈路)的角度分析 鏈路上下游關(guān)聯(lián)Java應(yīng)用的健康狀況,因而不能分析和判斷出該在線業(yè)務(wù)鏈路上的Java 應(yīng)用健康瓶頸和業(yè)務(wù)總體健康運(yùn)行狀況。
[0015] 綜上可知,現(xiàn)有技術(shù)在實(shí)際使用上顯然存在不便與缺陷,所以有必要加以改進(jìn)。
【發(fā)明內(nèi)容】
[0016] 針對上述的缺陷,本發(fā)明的目的在于提供一種Java應(yīng)用健康度評估方法及系統(tǒng), 其能綜合分析Java應(yīng)用的各項(xiàng)監(jiān)控指標(biāo),并數(shù)值方式直觀的體現(xiàn)應(yīng)用健康狀態(tài)。
[0017] 為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種Java應(yīng)用健康度評估方法,所述方法包括如 下步驟:
[0018] 配置Java應(yīng)用監(jiān)控指標(biāo)的數(shù)量值,并配置每個(gè)監(jiān)控指標(biāo)在不同狀態(tài)下的基準(zhǔn)分 值以及每個(gè)監(jiān)控指標(biāo)的權(quán)重;
[0019] 采集在所述Java應(yīng)用運(yùn)行過程中所有監(jiān)控指標(biāo)的基準(zhǔn)分值;
[0020] 根據(jù)所有監(jiān)控指標(biāo)的基準(zhǔn)分值以及所述每個(gè)監(jiān)控指標(biāo)對應(yīng)的權(quán)重執(zhí)行健康分值 運(yùn)算以獲取所述Java應(yīng)用的健康分值。
[0021] 本發(fā)明相應(yīng)提供一種Java應(yīng)用健康度評估系統(tǒng),所述系統(tǒng)包括:
[0022] 配置模塊,用于配置Java應(yīng)用監(jiān)控指標(biāo)的數(shù)量值,并配置每個(gè)監(jiān)控指標(biāo)在不同狀 態(tài)下的基準(zhǔn)分值以及每個(gè)監(jiān)控指標(biāo)的權(quán)重;
[0023] 數(shù)據(jù)采集模塊,用于采集在所述Java應(yīng)用運(yùn)行過程中所有監(jiān)控指標(biāo)的基準(zhǔn)分值;
[0024] 數(shù)據(jù)處理模塊,用于根據(jù)所有監(jiān)控指標(biāo)的基準(zhǔn)分值以及所述每個(gè)監(jiān)控指標(biāo)對應(yīng)的 權(quán)重執(zhí)行健康分值運(yùn)算以獲取所述Java應(yīng)用的健康分值。
[0025] 本發(fā)明通過預(yù)先配置每個(gè)Java應(yīng)用的監(jiān)控指標(biāo)個(gè)數(shù)、每個(gè)監(jiān)控指標(biāo)在不同狀態(tài) 下的基準(zhǔn)分值以及每個(gè)監(jiān)控指標(biāo)的權(quán)重,在Java應(yīng)用運(yùn)行的過程中采集所有監(jiān)控指標(biāo)的 基準(zhǔn)分值,最后根據(jù)采集的監(jiān)控指標(biāo)的基準(zhǔn)分值以及每個(gè)監(jiān)控指標(biāo)的權(quán)重計(jì)算Java應(yīng)用 的健康分值。從而對Java應(yīng)用的各項(xiàng)監(jiān)控指標(biāo)進(jìn)行綜合分析,并通過健康分值的方式實(shí)現(xiàn) 對Java應(yīng)用的整體運(yùn)行健康狀況進(jìn)行直觀描述。
【附圖說明】
[0026] 圖1是現(xiàn)有技術(shù)中進(jìn)行Java應(yīng)用監(jiān)控的流程圖;
[0027] 圖2是本發(fā)明一種Java應(yīng)用健康度評估系統(tǒng)的框圖;
[0028] 圖3是本發(fā)明一種Java應(yīng)用健康度評估方法的流程圖;
[0029] 圖4是本發(fā)明一種實(shí)施例中繪制健康狀態(tài)變化趨勢圖的流程;
[0030] 圖5是本發(fā)明一種實(shí)施例中進(jìn)行預(yù)處理及自我修復(fù)的流程圖;
[0031] 圖6是本發(fā)明一種實(shí)施例中將同類型Java應(yīng)用的健康分值進(jìn)行比較的流程圖;
[0032] 圖7是本發(fā)明一種實(shí)施例中分析業(yè)務(wù)鏈路上Java應(yīng)用健康瓶頸的流程圖;
[0033] 圖8是本發(fā)明一種是實(shí)施例中分析在線業(yè)務(wù)的健康運(yùn)行狀況的流程圖。
【具體實(shí)施方式】
[0034] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0035] 在本申請一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè) 處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0036] 內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/ 或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì) 的示例。
[0037] 計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法 或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。 計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、 動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電 可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存