專利名稱:一種可靠性能監控系統及方法
技術領域:
本發明涉及一種可靠性能監控系統及方法。
背景技術:
目前,主要采用單個性能監控服務器來進行性能監控。然而,當該性能監控服務器宕機時,監控服務中斷。如果在性能監控服務器中使用雙機集群(HA)方式或者額外的非關系數據庫存儲性能監控日志數據,會對性能造成巨大影響。因此,期望提供一種可靠性能監控系統及方法。
發明內容
為了解決現有技術中的上述缺點和問題而提出本發明。根據一個方面,本發明提出一種可靠性能監控系統,包括應用服務器,用于運行被監控應用、將所述被監控應用的性能相關信息記錄到性能日志存儲模塊中、并定時發送所述性能日志存儲模塊中的日志數據;日志傳輸平臺,用于接收從所述應用服務器發送的日志數據、并根據性能分析服務器的訂閱將所述日志數據發送到至少兩個性能分析服務器;任務管理中心,用于向每個所述性能分析服務器分配需要處理的任務;以及至少兩個性能分析服務器,用于執行所分配的任務,以對所述日志數據進行分析處理,獲得性能統計結果。可選地,每個所述性能分析服務器上部署主性能分析模塊和輔性能分析模塊,在正常情況下,所述主性能分析模塊將執行;當主性能分析模塊所在的性能分析服務器宕機時,或者由于其他原因造成不能提供服務時,所述輔性能分析模塊將被分配所述主性能分析模塊承擔的所有或一部分任務。可選地,每個所述性能分析服務器上單獨部署任務分配模塊,并且所述任務管理中心通過所述任務分配模塊來向所述性能分析服務器分配需要處理的任務。可選地,所述任務管理模塊向所述任務管理中心注冊,所述任務管理中心將分配給部署有所述任務管理模塊的性能分析服務器的任務返回給所述任務管理模塊,所述任務管理模塊將所分配的任務寫入任務分配文件,性能分析模塊每次進行性能分析統計前,讀取所述任務分配文件來確定自己要執行的任務。可選地,當一個所述性能分析服務器宕機時,所述任務管理中心根據算法或者配置文件等選擇其他所述性能分析服務器來執行宕機的性能分析服務器所執行的任務。可選地,調用所述其他任務分析服務器上部署的任務管理模塊分配新任務。可選地,所述應用服務器包括日志提取代理,用于定時從所述性能日志存儲模塊中讀取增量更新并發送。根據本發明的另一個方面,本發明提出一種可靠性能監控方法,包括被監控應用將性能相關信息記錄到性能日志存儲模塊;所述被監控應用定時將存儲在所述性能日志存儲模塊中的日志數據發送到日志傳輸平臺;所述日志傳輸平臺根據性能分析服務器的訂閱將所述日志數據發送到至少兩個性能分析服務器;每個所述性能分析服務器執行所述任務管理中心所分配的任務;以及當一個所述性能分析服務器宕機時,所述任務管理中心將宕機的性能分析服務器的任務分配給其他性能分析服務器。可選地,所述任務管理中心通過部署在性能分析服務器上的任務分配模塊來向性能分析服務器分配任務。可選地,在性能分析服務器啟動后,任務管理模塊向任務管理中心注冊,任務管理中心將分配給這個性能分析服務器的任務返回給任務管理模塊,任務管理模塊將所分配的任務寫入任務分配文件,性能分析模塊每次進行性能分析統計前,讀取任務分配文件來確定自己要執行的任務。可選地,當一個性能分析服務器宕機時,所述任務管理中心將根據算法或者配置文件選擇其他性能分析服務器來執行宕機性能分析服務器執行的任務,其中,接替執行性
能分析任務的性能分析模塊所在的性能分析服務器上,必須訂閱了要分析應用的性能日
O可選地,通過日志提取代理定時從所述性能日志存儲模塊中讀取增量更新并發送。
通過下面結合附圖進行的描述,本發明一些示范性實施例的上述和其他方面、特征和優點對于本領域技術人員來說將變得顯而易見,其中圖1是圖示根據本發明的可靠性能監控系統的框圖;以及圖2是圖示根據本發明的可靠性能監控方法的流程圖。
具體實施例方式提供參考附圖的下面描述以幫助全面理解本發明的示范性實施例。其包括各種細節以助于理解,而應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識至IJ,可以對這里描述的實施例做出各種改變和修改,而不會背離本發明的范圍和精神。同樣,為了清楚和簡明,省略了對公知功能和結構的描述。根據本發明的可靠性能監控系統及方法能夠解決性能監控的單點問題,當一臺性能監控服務器宕機時,可以由其他性能監控服務器繼續進行監控,保證監控服務不中斷。下面將參考附圖詳細描述本發明。圖1是圖示根據本發明的可靠性能監控系統的框圖。如圖1中所示,根據本發明的可靠性能監控系統包括應用服務器110、日志傳輸平臺120、至少兩個性能分析服務器130和任務管理中心140。雖然在圖1中示出了兩個應用服務器110-1和110-2,但是可以包括更少或更多的應用服務器。每個應用服務器110運行被監控應用112、將被監控應用112的性能相關信息記錄到性能日志存儲模塊114 (例如性能日志)中、并定時發送性能日志存儲模塊114中的日志數據。可以每當被監控應用112被執行時,通過被監控應用112調用適當的方法或接口來將性能相關信息記錄到性能日志存儲模塊114中。性能相關信息可以包括執行開始時間、執行完成時間等。此外,可以通過日志提取代理116來定時發送性能日志存儲模塊114中的日志數據。優選地,日志提取代理116定時從性能日志存儲模塊114中讀取增量更新并發送。日志傳輸平臺(或消息中間件)120接收從應用服務器110發送的日志數據、并根據所述至少兩個性能分析服務器130的訂閱將日志數據發送到性能分析服務器。任務管理中心140向每個性能分析服務器130分配需要處理的任務。例如,任務管理中心140可以從數據庫等讀取要分配的所有任務,并且在分配任務時保證每一個應用服務器上的所有應用都可以進行性能分析統計,而且在通常情況下保持每個性能分析服務器的負載基本平衡。明顯地,任務管理中心140可以根據其他規則來分配任務,例如基于每個性能分析服務器的性能等因素。此外,當一個性能分析服務器宕機時,或者其他原因造成主性能分析模塊不能提供服務時,任務管理中心140將該任務分析服務器的任務分配給其他記錄有相應日志數據的性能分析服務器。例如,可以通過存活性監控系統來發現一個性能分析服務器出現故障,并通知任務管理中心。性能分析服務器130執行每個所分配的任務,對日志數據進行分析處理,獲得性能統計結果。例如,每隔預定時間段(例如每分鐘)執行一次性能分析。此外,性能分析服務器130可以將分析結果存儲在數據庫中,從而能夠通過展示系統獲取相關信息。例如,性能分析服務器將分析結果存儲到外部的存儲系統中(數據庫、nosql數據庫等)中。當分配到新的任務時(例如,當其他性能分析服務器宕機時由任務管理中心分配新的任務),性能分析服務器可以從存儲分析結果的存儲系統(數據庫、nosql數據庫等)中找到最后分析結果,根據最后分析結果的時間,繼續進行性能統計分析。在圖1中示出每個性能分析服務器130上部署兩個性能分析模塊,即主性能分析模塊132和輔性能分析模塊134。在正常情況下,主性能分析模塊將執行;當另外一臺性能分析服務器宕機時,輔性能分析模塊134將被分配原來由宕機的性能分析服務器承擔的任務或一部分(例如,在包括三個或更多性能分析服務器的情況下)。雖然在圖1中每個性能分析服務器上部署兩個性能分析模塊(針對單線程性能分析模塊),但是對于多線程性能分析模塊,只需要一個性能分析模塊,而且為了增加可靠性,也可以部署更多個性能分析模塊。為了提高開發效率和系統耦合度,每個性能分析服務器上單獨部署任務分配模塊136。任務管理中心140通過任務分配模塊136來向性能分析服務器130分配需要處理的任務。例如,在一個性能分析服務器啟動后,首先任務管理模塊向任務管理中心注冊,注冊的信息可以包括性能分析模塊的數量和名稱;然后任務管理中心將分配給這個性能分析服務器的任務返回給任務管理模塊;任務管理模塊將所分配的任務寫入任務分配文件;性能分析模塊每次進行性能分析統計前,讀取任務分配文件,確定自己要執行的任務,進行本次性能分析統計。此外,當(例如通過存活性監控系統)發現一個性能分析服務器宕機時,任務管理中心將根據算法或者配置文件等選擇一個性能分析服務器來執行宕機服務器執行的任務,其中調用該任務分析服務器上部署的任務管理模塊分配新任務,然后執行上述過程(即任務管理中心將分配給這個性能分析服務器的任務返回給任務管理模塊;任務管理模塊將所分配的任務寫入任務分配文件;性能分析模塊每次進行性能分析統計前,讀取任務分配文件,確定自己要執行的任務,進行本次性能分析統計)。
圖2是圖示根據本發明的可靠性能監控方法的流程圖。如圖2中所示,該方法開始于步驟210。在步驟210中,被監控應用將性能相關信息記錄到性能日志存儲模塊。例如,每當被監控應用被執行時,通過被監控應用調用適當的方法或接口來將性能相關信息記錄到性能日志存儲模塊中,性能相關信息可以包括執行開始時間、執行完成時間等。在步驟220中,例如通過日志提取代理來定時將日志數據發送到日志傳輸平臺。優選地,通過日志提取代理定時從性能日志存儲模塊中讀取增量更新并發送。在步驟230中,日志傳輸平臺根據性能分析服務器的訂閱將日志數據發送到至少兩個性能分析服務器。在步驟240中,性能分析服務器執行任務管理中心所分配的任務。例如,每隔預定時間段(例如每分鐘)執行一次性能分析。優選地,任務管理中心通過任務分配模塊來向性能分析服務器分配任務。例如,在一個性能分析服務器啟動后,首先任務管理模塊向任務管理中心注冊,注冊的信息可以包括性能分析模塊的數量和名稱;然后任務管理中心將分配給這個性能分析服務器的任務返回給任務管理模塊;任務管理模塊將所分配的任務寫入任務分配文件;性能分析模塊每次進行性能分析統計前,讀取任務分配文件,確定自己要執行的任務,進行本次性能分析統計。在步驟250中,當一個性能分析服務器宕機時,任務管理中心將宕機的性能分析服務器的任務分配給其他性能分析服務器。例如,當(例如通過存活性監控系統)發現一個性能分析服務器宕機時,任務管理中心將根據算法或者配置文件等選擇一個性能分析服務器來執行宕機服務器執行的任務,其中調用該任務分析服務器上部署的任務管理模塊分配新任務。當被分配到新任務時,性能分析服務器可以從存儲分析結果的存儲系統(數據庫、nosql數據庫等)中找到最后分析結果,根據最后分析結果的時間,繼續進行性能統計分析。應指出的是,上面分別對本發明的裝置和方法實施例分別進行了描述,但是對一個實施例描述的細節也可應用于另一個實施例。以上結合具體實施例描述了本發明的基本原理,但是,需要指出的是,對本領域的普通技術人員而言,能夠理解本發明的方法和系統的全部或者任何步驟或者部件可以以軟件、硬件、固件或者它們的組合加以實現,這是本領域普通技術人員在閱讀了本發明的說明的情況下運用他們的基本編程技能就能實現的。因此,本發明的目的還可以通過在任何計算裝置上運行一個軟件模塊或者一組軟件模塊來實現。所述計算裝置可以是公知的通用裝置。因此,本發明的目的也可以僅僅通過提供包含實現所述方法或者裝置的程序代碼的程序產品來實現。也就是說,這樣的程序產品也構成本發明,并且存儲有這樣的程序產品的存儲介質也構成本發明。顯然,所述存儲介質可以是任何公知的存儲介質或者將來所開發出來的任何存儲介質。雖然本說明書包含許多特定實施方式細節,但是不應當將這些細節解釋為對任何發明或可以主張的內容的范圍的限制,而應當解釋為對可以特定于特定發明的特定實施例的特征的描述。還可以將在本說明書中在分離的實施例的情境中描述的某些特征組合在單個實施例中實現。相反地,也可以將在單個實施方式的情境中描述的各個特征分離地在多個實施方式中實現或在任何適當的子組合中實現。此外,盡管可能在上面將特征描述為在某些組合中起作用,甚至最初主張如此,但是可以在一些情況下將來自所主張的組合的一個或多個特征從組合中刪去,并且可以將所主張的組合指向子組合或者子組合的變體。類似地,雖然在附圖中以特定次序描繪了操作,但是不應當將這理解為需要以所示的特定次序或者以連續次序執行這樣的操作、或者需要執行所有圖示的操作才能達到期望的結果。在某些情況下,多任務以及并行處理可以是有利的。此外,不應當將在上述實施例中的各種系統組件的分離理解為在所有實施例中均需要這樣的分離,而應當理解的是,通常可以將所描述的程序組件和系統集成到一起成為單個軟件產品或封裝為多個軟件產品O計算機程序(也稱作程序、軟件、軟件應用、腳本或代碼)可以以任何形式的編程語言編寫,所述編程語言包括編譯或解釋語言、或者說明性或過程語言,并且其可以以任何形式部署,包括作為獨立程序或作為模塊、組件、子程序或適于在計算環境中使用的其它單元。計算機程序沒有必要對應于文件系統中的文件。可以將程序存儲在保持其它程序或數據的文件(例如,存儲在標記語言文檔中的一個或多個腳本)的一部分、專用于討論中的程序的單個文件或者多個協調文件(例如,存儲一個或多個模塊、子程序或部分代碼的文件)中。上述具體實施方式
,并不構成對本發明保護范圍的限制。本領域技術人員應該明白的是,取決于設計要求和其他因素,可以發生各種各樣的修改、組合、子組合和替代。任何在本發明的精神和原則之內所作的修改、等同替換和改進等,均應包含在本發明保護范圍之內。
權利要求
1.一種可靠性能監控系統,包括 應用服務器,用于運行被監控應用、將所述被監控應用的性能相關信息記錄到性能日志存儲模塊中、并定時發送所述性能日志存儲模塊中的日志數據; 日志傳輸平臺,用于接收從所述應用服務器發送的日志數據、并根據性能分析服務器的訂閱將所述日志數據發送到至少兩個性能分析服務器; 任務管理中心,用于向每個所述性能分析服務器分配需要處理的任務;以及 至少兩個性能分析服務器,用于執行所分配的任務,以對所述日志數據進行分析處理,獲得性能統計結果。
2.根據權利要求I所述的系統,其中,每個所述性能分析服務器上部署主性能分析模塊和輔性能分析模塊, 在正常情況下,所述主性能分析模塊將執行; 當主性能分析模塊所在的服務器宕機時,以及其他原因造成主性能服務模塊不能提供服務時,所述輔性能分析模塊將被分配所述主性能分析模塊承擔的所有或一部分任務,同時升級為主性能分析模塊。
3.根據權利要求I所述的系統,其中,每個所述性能分析服務器上單獨部署任務分配模塊,并且所述任務管理中心通過所述任務分配模塊來向所述性能分析服務器分配需要處理的任務。
4.根據權利要求I所述的系統,其中,所述任務管理模塊向所述任務管理中心注冊,所述任務管理中心將分配給部署有所述任務管理模塊的性能分析服務器的任務返回給所述任務管理模塊,所述任務管理模塊將所分配的任務寫入任務分配文件,性能分析模塊每次進行性能分析統計前,讀取所述任務分配文件來確定自己要執行的任務。
5.根據權利要求I所述的系統,其中,當一個所述性能分析服務器宕機時,或者其他原因造成性能分析模塊不能提供服務,所述任務管理中心根據算法或者配置文件等選擇其他所述性能分析服務器來執行宕機的性能分析服務器所執行的任務。
6.根據權利要求5所述的系統,其中,調用所述其他任務分析服務器上部署的任務管理模塊分配新任務。
7.根據權利要求I所述的系統,其中,所述應用服務器包括日志提取代理,用于定時從所述性能日志存儲模塊中讀取增量更新并發送。
8.一種可靠性能監控方法,包括 被監控應用將性能相關信息記錄到性能日志存儲模塊; 所述被監控應用定時將存儲在所述性能日志存儲模塊中的日志數據發送到日志傳輸平臺; 所述日志傳輸平臺根據性能分析服務器的訂閱將所述日志數據發送到至少兩個性能分析服務器; 每個所述性能分析服務器執行所述任務管理中心所分配的任務;以及 當一個所述性能分析服務器宕機時,以及由于其他原因造成主性能分析模塊不能提供服務時,所述任務管理中心將宕機的性能分析模塊的任務分配給其他性能分析服務器上的任務分析模塊。
9.根據權利要求8所述的方法,其中,所述任務管理中心通過部署在性能分析服務器上的任務分配模塊來向性能分析服務器分配任務。
10.根據權利要求9所述的方法,其中,在性能分析服務器啟動后,任務管理模塊向任務管理中心注冊,任務管理中心將分配給這個性能分析服務器的任務返回給任務管理模塊,任務管理模塊將所分配的任務寫入任務分配文件,性能分析模塊每次進行性能分析統計前,讀取任務分配文件來確定自己要執行的任務。
11.根據權利要求8所述的系統,其中,當一個性能分析服務器宕機時,所述任務管理中心將根據算法或者配置文件選擇其他性能分析服務器來執行宕機性能分析服務器執行的任務,其中,接替執行性能分析任務的性能分析模塊所在的性能分析服務器上,必須訂閱了要分析應用的性能日志。
12.根據權利要求8所述的方法,其中,通過日志提取代理定時從所述性能日志存儲模塊中讀取增量更新并發送。
全文摘要
一種可靠性能監控系統及方法。所述系統包括應用服務器,用于運行被監控應用、將所述被監控應用的性能相關信息記錄到性能日志存儲模塊中、并定時發送所述性能日志存儲模塊中的日志數據;日志傳輸平臺,用于接收從所述應用服務器發送的日志數據、并根據性能分析服務器的訂閱將所述日志數據發送到至少兩個性能分析服務器;任務管理中心,用于向每個所述性能分析服務器分配需要處理的任務;以及至少兩個性能分析服務器,用于執行所分配的任務,以對所述日志數據進行分析處理,獲得性能統計結果。
文檔編號G06F11/16GK102981945SQ20121058948
公開日2013年3月20日 申請日期2012年12月31日 優先權日2012年12月31日
發明者張永成, 呂鵬, 哈維, 鐘德銀, 魏建楠 申請人:北京京東世紀貿易有限公司