閾值時,將優(yōu)先從存儲模塊40內(nèi)置的先驗 知識庫中根據(jù)相應規(guī)則,嘗試自我修復;當整體健康度超出報警閾值,系統(tǒng)將為用戶介入進 行預處理(保存上下文,獲取堆棧數(shù)據(jù)等),從而達到在發(fā)現(xiàn)Java應用存在健康問題時的智 能決策。
[0062] 同類型Java應用比較模塊80,用于將同類型Java應用的健康分值進行比較。在 實際應用中,可獲取多個同類型Java應用的健康分值,選取健康分值最高的Java應用作為 比較對象,分解出比較對象的所有監(jiān)控指標的指標數(shù)值,計算Java應用與比較對象的健康 分值的差值百分比以及每一監(jiān)控指標的差值百分比,并對比某一項監(jiān)控指標的差值百分比 與健康分值的差值百分比,當該項監(jiān)控指標的差值百分比大于健康分值的差值百分比時, 保存該項監(jiān)控指標對應的上下文場景信息,獲取該指標的配置信息,產(chǎn)生報警信息通知用 戶,等待用戶介入。本發(fā)明通過對相同類型Java應用健康狀況進行比較,能夠揭示出Java 應用本身在實現(xiàn)、處理、參數(shù)配置上的差異,為業(yè)務方的后續(xù)優(yōu)化提升提供參考。
[0063] 業(yè)務鏈路Java應用分析模塊90,用于根據(jù)同一業(yè)務鏈路上所有Java應用的健康 分值分析業(yè)務鏈路上下游關(guān)聯(lián)Java應用的健康狀態(tài)。具體的,可包括兩方面的分析,一方 面為分析出某項在線業(yè)務鏈路上的Java應用健康瓶頸,另一方面為分析業(yè)務總體健康運 行狀況。
[0064] 在分析Java應用健康瓶頸時,可獲取同一業(yè)務鏈路上所有Java應用的健康分值, 對獲取的健康分值執(zhí)行均值運算以獲得第一均值,將Java應用的健康分值與第一均值進 行差值百分比運算;當某一 Java應用的差值百分比運算結(jié)果低于一預設(shè)閾值時,產(chǎn)生報警 信息通知用戶,說明該Java應用為該在線業(yè)務鏈路上的Java應用健康瓶頸,待用戶進行下 一步處理。
[0065] 在分析業(yè)務總體健康運行狀況時,可記錄某一時間段內(nèi)的多個第一均值信息;將 多個第一均值進行均值運算以獲得第二均值;將第一均值與第二均值進行差值百分比運 算,當?shù)谝痪蹬c第二均值進行差值百分比運算的結(jié)果大于一預設(shè)閾值時,說明該業(yè)務總 體運行狀況較差,產(chǎn)生報警信息等待用戶介入。
[0066] 本發(fā)明中從業(yè)務鏈路(交易鏈路)的角度,分析鏈路上下游關(guān)聯(lián)Java應用的健康狀 況,從而一定程度上分析出某項在線業(yè)務鏈路上的Java應用健康瓶頸和業(yè)務總體健康運 行狀況。
[0067] 圖3是本發(fā)明一種Java應用健康度評估方法的流程圖,該流程通過如圖1所示的 系統(tǒng)100實現(xiàn),該方法包括如下步驟:
[0068] 步驟S301,配置Java應用監(jiān)控指標的數(shù)量值,并配置每個監(jiān)控指標在不同狀態(tài)下 的基準分值以及每個監(jiān)控指標的權(quán)重;
[0069] 步驟S302,采集在Java應用運行過程中所有監(jiān)控指標的基準分值;
[0070] 步驟S303,根據(jù)所有監(jiān)控指標的基準分值以及每個監(jiān)控指標對應的權(quán)重執(zhí)行健康 分值運算以獲取Java應用的健康分值。在本步驟中,健康分值的運算公式為:
[0071]
[0072] 其中,T為健康分值,X⑴為單個指標項的基準分值,W⑴代表單個指標項的權(quán) 重,i e (1,N)指代單項指標。
[0073] 圖4是本發(fā)明一種實施例中繪制健康狀態(tài)變化趨勢圖的流程圖。該流程包括:
[0074] 步驟S401,配置Java應用的健康分值計算的執(zhí)行時間間隔M。
[0075] 步驟S402,每間隔時間M執(zhí)行一次健康分值運算。
[0076] 步驟S403,根據(jù)時間以及健康分值繪制健康狀態(tài)變化趨勢圖。
[0077] 優(yōu)選的是,本Java應用健康度評估方法還包括:當監(jiān)控指標的基準分值超出報警 閾值時執(zhí)行預處理以及自我修復。執(zhí)行自我修復的步驟包括:根據(jù)當前異常/錯誤類型查 詢先驗知識與規(guī)則庫;根據(jù)先驗知識執(zhí)行或用戶預定義規(guī)則執(zhí)行異常/錯誤修復。
[0078] 優(yōu)選的是,本Java應用健康度評估方法還包括:當健康分值超出報警閾值時產(chǎn)生 報警信息。
[0079] 圖5是本發(fā)明一種實施例中進行預處理及自我修復的流程圖。該流程包括:
[0080] 步驟S501,獲取監(jiān)控指標分值。
[0081] 步驟S501,判斷該指標分值是否超出報警閾值,若是則執(zhí)行步驟S503,否則回到 步驟S501。
[0082] 步驟S503,對于該監(jiān)控指標進行預處理。預處理主要為保存上下文現(xiàn)場,包括且不 限于當前堆棧信息等。
[0083] 步驟S504,執(zhí)行自我修復。
[0084] 步驟S505,判斷自我修復是否成功。若是則進入步驟S507,否則進入步驟S506。
[0085] 步驟S506,記錄當前預處理結(jié)果。然后進入步驟S507
[0086] 步驟S507,判斷當前是否已經(jīng)分析到最后一個指標。若是則進入步驟S508,否則 回到步驟S501。
[0087] 步驟S508,執(zhí)行健康分值運算。
[0088] 步驟S509,判斷健康分值是否超出閾值。若是則進入步驟S510,否則進入步驟 S511。
[0089] 步驟S510,發(fā)出報警信息。并進入步驟S511。
[0090] 步驟S511,等候1個時間間隔M。然后回到步驟S501。
[0091] 優(yōu)選的是,本發(fā)明一種Java應用健康度評估方法還包括:將同類型Java應用的健 康分值進行比較。圖6是本發(fā)明一種實施例中將同類型Java應用的健康分值進行比較的 流程圖,該流程包括:
[0092] 步驟S601,根據(jù)Java應用的服務特點,選取N (N>=2)個同類型Java應用。例如 選取同為提供圖片訪問的web服務。
[0093] 步驟S602,獲取所有同類型Java應用中健康分值最高的應用A的分數(shù)S,分解出 所有i個指標值{Al,A2, Α3···Α?}。
[0094] 步驟S603,計算第η個應用與應用A的差值百分比Xn=[ (Sn-S) /S] X 100%,分解出 第η個應用對應的i個指標值。
[0095] 步驟S604,計算第η個應用的第i個指標與應用A對應指標的差值百分比, Xi=[(Bi-Ai)/Ai]X100%。
[0096] 步驟S605,判斷是否Xi>Xn。若是則進入步驟S606,否則回到步驟S604。
[0097] 步驟S606,保存指標i對應的上下文場景信息,獲取該指標相應配置信息等。
[0098] 步驟S607,報警通知用戶,待用戶介入。
[0099] 步驟S608,判斷是否比較到最后1個指標。若是則執(zhí)行步驟S609,否則回到步驟 S604〇
[0100] 步驟S609,判斷是否比較到最后1個應用。若是則比較結(jié)束,否則回到步驟S603。
[0101] 優(yōu)選的是,本發(fā)明一種Java應用健康度評估方法還包括:根據(jù)同一業(yè)務鏈路上所 有Java應用的健康分值分析業(yè)務鏈路上下游關(guān)聯(lián)Java應用的健康狀態(tài)。一方面為分析出 某項在線業(yè)務鏈路上的Java應用健康瓶頸,另一方面為分析業(yè)務總體健康運行狀況。
[0102] 圖7是本發(fā)明一種實施例中分析業(yè)務鏈路上Java應用健康瓶頸的流程圖,該流程 包括如下步驟:
[0103] 步驟S701,根據(jù)業(yè)務特點或經(jīng)驗值,配