本發明涉及數據監控技術領域,尤其涉及一種SOA服務實時監控上報與性能度量系統。
背景技術:
后臺服務使用分布式的微服務,對應用的運行狀態,接口的響應時間,處理量,關鍵業務指標等數據,均需要一個系統進行實時的監控,同時該系統是分布式的,且與微服務是松耦合,相互之間無影響;
現有技術采用的數據監控技術方案,是針對于日志收集歸檔和分析,頁面展示方式多樣,數據圖格式較豐富,缺點是沒有專門針對微服務的特定指標監控的方式,不能滿足服務實時監控治理的需求;
當前也沒有比較通用的開源實現,各公司的方案均是與自身運行環境緊密的結合在一塊,難以開源;
因此,本領域的技術人員亟需研究出一種獨立于日志處理系統,可專門對接口、服務內部、業務數據這些運行時的關鍵指標進行上報和收集監控,通過文件和運行的服務相互關聯,與各運行的服務相互解耦,可將各機器設備的監控文件的內容實時收集給數據處理程序,滿足公司日益增多的微服務治理需求的SOA服務實時監控上報與性能度量系統。
技術實現要素:
本發明要解決的技術問題是提供一種SOA服務實時監控上報與性能度量系統,該SOA服務實時監控上報與性能度量系統可專門對接口、服務內部、業務數據這些運行時的關鍵指標進行上報和收集監控,通過文件和運行的服務相互關聯,與各運行的服務相互解耦,可將各機器設備的監控文件的內容實時收集給數據處理程序,可實時對被監控設備的服務構件的服務性能進行計算,確保服務構件工作實時的耦合性與內聚性,滿足了公司日益增多的微服務治理需求。
為解決上述技術問題,本發明提供了一種SOA服務實時監控上報與性能度量系統,包括用于實現關鍵的服務內部數據指標的聚合計算的聚合計算模塊、與所述聚合計算模塊連接的用于對被監控的設備的服務性能進行度量的服務性能度量模塊,若干設置于被監控的設備上的收集器、與所述收集器連接的監控處理器、與所述監控處理器連接的數據庫、與所述數據庫連接的網絡服務器、與所述網絡服務器連接的監控展示模塊,所述聚合計算模塊配置有監控聚合json協議,所述聚合計算模塊根據監控聚合json協議以時間為單位對計算主體進行聚合計算,并將計算結果發送給監控文件作為一條監控記錄,所述服務性能度量模塊根據服務構件耦合性計算公式對所述被監控設備的服務構件的耦合性進行計算,并將耦合性計算結果發送給監控文件作為一條監控記錄,各個所述收集器對監控文件的變更事件進行監控,當微服務向所述監控文件保存一條監控數據,所述收集器捕獲文件變更數據并將捕獲的變更事件數據發送給所述監控服務器,所述監控服務器對各個設備上的不同服務的監控數據進行處理后實時發送所述數據庫,所述數據庫將監控數據發送給所述網絡服務器,所述網絡服務器將監控數據發送到所述監控展示模塊進行顯示,所述服務性能度量模塊包括配置有服務構件耦合性計算公式;
所述服務構件耦合性計算公式為:
其中,Q(X)表示設備服務構件的耦合性,|X|表示設備中所有服務構件的數目,|Ci|表示服務構件Ci包含的性能指標數量,OU(Ci)表示服務構件Ci關聯外部構件的數量;
其中,所述監控聚合json協議定義的計算主體為:API、服務相關性能指標、業務自定義的指標,所述聚合計算類型為:求和、平均值、最大值、最小值、計算次數。
優選地,所述監控服務器包括監控數據處理模塊、數據接收模塊、數據存儲模塊,所述數據接收模塊接收收集器捕獲的變更事件數據,所述數據接收模塊將所述變更事件數據發送給所述監控數據處理模塊,所述監控數據處理模塊對各個設備上的不同服務的監控數據進行處理并發送給所述數據存儲模塊存儲,所述監控數據處理模塊將處理后的監控數據實時發送所述數據庫。
優選地,所述聚合計算模塊包括數據隊列單元及數據聚合計算單元,各個所述設備包括若干收集器數據線程,所述數據隊列單元以隊列作為與其他線程交互的緩沖通道,所述收集器數據線程以無阻塞方式將每個待計算的數據單元的數據上報給所述隊列,所述收集器數據線程從隊列中以循環方式取出計算單元數據并發送所述數據聚合計算單元,所述數據聚合計算單元根據所述監控聚合json協議計算以計算主體一個時間單位內的聚合數據并將計算出來的數據發送給所述監控文件作為一條監控記錄。
優選地,所述收集器包括文件變更監聽模塊、文件變更捕捉模塊及文件變更數據發送模塊,所述文件變更監聽模塊對監控文件的變更事件進行監控,所述文件變更捕捉模塊捕獲文件變更數據并將捕獲的變更文件數據發送給所述文件變更數據發送模塊,所述文件變更數據發送模塊將變更事件數據發送給所述監控服務器。
優選地,所述監控聚合json協議中的服務相關性能指標包括:API被調用的相關指標、微服務主動調用緩存器的相關指標、本條監控數據記錄的保存時間、微服務名及服務實例。
優選地,所述收集器將收集上來的數據發送給所述監控服務器進行存儲,以微服務為單位,使用網絡服務器是以python實現的。
優選地,所述監控展示模塊通過本條監控數據記錄的保存時間、微服務名、及服務實例在時間維度上聚合上報上來的數據,畫成以時間為橫坐標監控數據為縱坐標的連續圖譜。
優選地,所述SOA服務實時監控上報與性能度量系統還包括與所述網絡服務器連接的圖譜比較分析模塊、與各個所述設備連接的設備主控制器及用戶端,所述圖譜比較分析模塊比較連續圖譜和程序計算圖譜曲線偏向方差,如果圖譜顯著異常,所述圖譜比較分析模塊將監控的事態的情況發送給所述用戶端;如果請求數據不斷在增加,則設備主控制器動態地增加服務實例,降低平均的負載。
采用了上述系統之后,所述聚合計算模塊根據監控聚合json協議以時間為單位對計算主體進行聚合計算,并將計算結果發送給監控文件作為一條監控記錄,所述服務性能度量模塊根據服務構件耦合性計算公式對所述被監控設備的服務構件的耦合性進行計算,并將耦合性計算結果發送給監控文件作為一條監控記錄,各個所述收集器對監控文件的變更事件進行監控,當微服務向所述監控文件保存一條監控數據,所述收集器捕獲文件變更數據并將捕獲的變更事件數據發送給所述監控服務器,所述監控服務器對各個設備上的不同服務的監控數據進行處理后實時發送所述數據庫,所述數據庫將監控數據發送給所述網絡服務器,所述網絡服務器將監控數據發送到所述監控展示模塊進行顯示;其中,所述數據隊列單元以隊列作為與其他線程交互的緩沖通道,所述收集器數據線程以無阻塞方式將每個待計算的數據單元的數據上報給所述隊列,所述收集器數據線程從隊列中以循環方式取出計算單元數據并發送所述數據聚合計算單元,所述數據聚合計算單元根據所述監控聚合json協議計算以計算主體一個時間單位內的聚合數據并將計算出來的數據發送給所述監控文件作為一條監控記錄,該SOA服務實時監控上報與性能度量系統可專門對接口、服務內部、業務數據這些運行時的關鍵指標進行上報和收集監控,通過文件和運行的服務相互關聯,與各運行的服務相互解耦,可將各機器設備的監控文件的內容實時收集給數據處理程序,可實時對被監控設備的服務構件的服務性能進行計算,確保服務構件工作實時的耦合性與內聚性,滿足了公司日益增多的微服務治理需求。
附圖說明
圖1是本發明的一種SOA服務實時監控上報與性能度量系統的整體模型示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用于解釋本發明,并不用于限定本發明。
實施例1
請參閱圖1,圖1是本發明的一種SOA服務實時監控上報與性能度量系統;
本發明公開了一種SOA服務實時監控上報與性能度量系統,包括用于實現關鍵的服務內部數據指標的聚合計算的聚合計算模塊、與所述聚合計算模塊連接的用于對被監控的設備的服務性能進行度量的服務性能度量模塊,若干設置于被監控的設備上的收集器、與所述收集器連接的監控處理器、與所述監控處理器連接的數據庫、與所述數據庫連接的網絡服務器、與所述網絡服務器連接的監控展示模塊,所述聚合計算模塊配置有監控聚合json協議,所述聚合計算模塊根據監控聚合json協議以時間為單位對計算主體進行聚合計算,并將計算結果發送給監控文件作為一條監控記錄,所述服務性能度量模塊根據服務構件耦合性計算公式對所述被監控設備的服務構件的耦合性進行計算,并將耦合性計算結果發送給監控文件作為一條監控記錄,各個所述收集器對監控文件的變更事件進行監控,當微服務向所述監控文件保存一條監控數據,所述收集器捕獲文件變更數據并將捕獲的變更事件數據發送給所述監控服務器,所述監控服務器對各個設備上的不同服務的監控數據進行處理后實時發送所述數據庫,所述數據庫將監控數據發送給所述網絡服務器,所述網絡服務器將監控數據發送到所述監控展示模塊進行顯示,所述服務性能度量模塊配置有服務構件耦合性計算公式;
所述服務構件耦合性計算公式為:
其中,|X|表示設備中所有服務構件的數目,|Ci|表示服務構件Ci包含的性能指標數量,OU(Ci)表示服務構件Ci關聯外部構件的數量;
所述服務構件耦合性說明該設備的內部構件同其他構件的關聯程度,反映了多構件之間的依賴屬性。
所述服務性能度量模塊還配置有內聚性計算公式,所述內聚性計算公式為:
其中,S(X)表示被監控設備的服務構件的內聚性,設備的服務構件的內聚性表示構件內部與外部的關聯度,關聯度越高表示設備的服務構件的內聚性越高,W(Ci)和W(Ci)2分別表示被監控設備的服務構件Ci在本構件內的數據關聯操作數目和控制關聯操作數目。
其中,所述監控聚合json協議定義的計算主體為:API、服務相關性能指標、業務自定義的指標,所述聚合計算類型為:求和、平均值、最大值、最小值、計算次數。
所述監控服務器包括監控數據處理模塊、數據接收模塊、數據存儲模塊,所述數據接收模塊接收收集器捕獲的變更事件數據,所述數據接收模塊將所述變更事件數據發送給所述監控數據處理模塊,所述監控數據處理模塊對各個設備上的不同服務的監控數據進行處理并發送給所述數據存儲模塊存儲,所述監控數據處理模塊將處理后的監控數據實時發送所述數據庫。
所述聚合計算模塊包括數據隊列單元及數據聚合計算單元,各個所述設備包括若干收集器數據線程,所述數據隊列單元以隊列作為與其他線程交互的緩沖通道,所述收集器數據線程以無阻塞方式將每個待計算的數據單元的數據上報給所述隊列,所述收集器數據線程從隊列中以循環方式取出計算單元數據并發送所述數據聚合計算單元,所述數據聚合計算單元根據所述監控聚合json協議計算以計算主體一個時間單位內的聚合數據并將計算出來的數據發送給所述監控文件作為一條監控記錄。
所述收集器包括文件變更監聽模塊、文件變更捕捉模塊及文件變更數據發送模塊,所述文件變更監聽模塊對監控文件的變更事件進行監控,所述文件變更捕捉模塊捕獲文件變更數據并將捕獲的變更文件數據發送給所述文件變更數據發送模塊,所述文件變更數據發送模塊將變更事件數據發送給所述監控服務器。
所述監控聚合json協議中的服務相關性能指標包括:API被調用的相關指標、微服務主動調用緩存器的相關指標、本條監控數據記錄的保存時間、微服務名及服務實例。
在本實施例,所述收集器將收集上來的數據發送給所述監控服務器進行存儲,以微服務為單位,使用網絡服務器是以python實現的。
所述監控展示模塊通過本條監控數據記錄的保存時間、微服務名、及服務實例在時間維度上聚合上報上來的數據,畫成以時間為橫坐標監控數據為縱坐標的連續圖譜。
所述SOA服務實時監控上報與性能度量系統還包括與所述網絡服務器連接的圖譜比較分析模塊、與各個所述設備連接的設備主控制器及用戶端,所述圖譜比較分析模塊比較連續圖譜和程序計算圖譜曲線偏向方差,如果圖譜顯著異常,所述圖譜比較分析模塊將監控的事態的情況發送給所述用戶端;如果請求數據不斷在增加,則設備主控制器動態地增加服務實例,降低平均的負載。
在本實施例,監控聚合json協議的構成如下所示:
be-call:API被調用的相關指標
call-redis:微服務主動調用redis的相關指標
biz-:開發者自定義上報的相關監控指標
ts_f:本條監控數據記錄的落地時間
sv:微服務名(公司內部環境相關)
si:服務實例(公司內部環境相關)
如果下列例子配置:
所述數據聚合計算單元根據上述監控聚合json協議計算以計算主體一個時間單位內的聚合數據并將計算出來的數據發送給所述監控文件作為一條監控記錄。
采用了上述系統之后,所述聚合計算模塊根據監控聚合json協議以時間為單位對計算主體進行聚合計算,并將計算結果發送給監控文件作為一條監控記錄,所述服務性能度量模塊根據服務構件耦合性計算公式對所述被監控設備的服務構件的耦合性進行計算,并將耦合性計算結果發送給監控文件作為一條監控記錄,各個所述收集器對監控文件的變更事件進行監控,當微服務向所述監控文件保存一條監控數據,所述收集器捕獲文件變更數據并將捕獲的變更事件數據發送給所述監控服務器,所述監控服務器對各個設備上的不同服務的監控數據進行處理后實時發送所述數據庫,所述數據庫將監控數據發送給所述網絡服務器,所述網絡服務器將監控數據發送到所述監控展示模塊進行顯示;其中,所述數據隊列單元以隊列作為與其他線程交互的緩沖通道,所述收集器數據線程以無阻塞方式將每個待計算的數據單元的數據上報給所述隊列,所述收集器數據線程從隊列中以循環方式取出計算單元數據并發送所述數據聚合計算單元,所述數據聚合計算單元根據所述監控聚合json協議計算以計算主體一個時間單位內的聚合數據并將計算出來的數據發送給所述監控文件作為一條監控記錄,該SOA服務實時監控上報與性能度量系統可專門對接口、服務內部、業務數據這些運行時的關鍵指標進行上報和收集監控,通過文件和運行的服務相互關聯,與各運行的服務相互解耦,可將各機器設備的監控文件的內容實時收集給數據處理程序,可實時對被監控設備的服務構件的服務性能進行計算,確保服務構件工作實時的耦合性與內聚性,滿足了公司日益增多的微服務治理需求。
同時,應當理解的是,以上僅為本發明的優選實施例,不能因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效實現方法,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。