異構應用數據採集方法及裝置與流程
2023-07-22 09:42:41

本發明涉及數據處理領域,具體地,涉及一種異構應用數據採集方法及裝置。
背景技術:
為了了解終端或應用的性能,服務商通常需要使用應用監控探針對不同終端或伺服器上的應用數據進行採集。
隨著技術的發展,語言不同的應用、系統越來越多。這就導致要採集的數據可能來源於異構的應用或系統。例如,要採集的數據來源可能是語言為JAVA、PHP等的應用,要採集的數據可能為CPU使用率、Java非堆內存使用率等。因此,需要使用不同語言編譯而成的不同的應用監控探針來探取數據。例如,java編寫的應用監控探針、C編寫的應用監控探針、PHP編寫的應用監控探針、C#編寫的應用監控探針等。
然而,使用不同語言編譯而成的應用監控探針所探取到的數據的數據格式各不相同,並且與採集端能夠接受的數據格式也不同,導致採集端無法獲得這些不同的應用監控探針探取到的數據。
技術實現要素:
有鑑於此,本發明的目的是提供一種異構應用數據採集方法及裝置,以實現從不同的應用監控探針得到採集端能夠接受的數據的目的。
在本發明實施例的第一個方面中,提供了一種異構應用數據採集方法。該方法可以應用於伺服器側,所述伺服器側預置有不同應用監控探針分別對應的配置文件,以及,預置有不同數據格式分別對應的數據解析器,其中,所述配置文件中至少包含採集指標名稱。該方法可以包括:接收應用監控探針探取到的第一格式數據;從所述應用監控探針對應的配置文件中,讀取出採集指標名稱;根據所述第一格式數據對應的數據格式,採取所述數據格式對應的數據解析器,從所述第一格式數據中解析出所述採集指標名稱對應的監控數據;將所述監控數據處理為採集端所需的格式,得到第二格式數據。
可選地,所述配置文件中還包含所述採集指標名稱對應的數據類型。該方法還包括:根據所述採集指標名稱對應的數據類型,對所述採集指標名稱對應的監控數據的數據類型是否正確進行檢驗。
可選地,該方法還包括:判斷所述監控數據中是否存在滿足預設異常條件的異常數據;在存在的情況下,將所述監控數據中滿足預設異常條件的異常數據清除,或者,重置為預設正常數據。
可選地,所述將所述監控數據處理為所述採集端所需的格式,得到第二格式數據包括:利用預置的聚合算法,對多個採集指標名稱對應的監控數據進行聚合,得到所述多個採集指標名稱對應的一個聚合指標;將所述聚合指標封裝為所述採集端所需的格式,得到第二格式數據。
可選地,該方法還包括:將所述第二格式數據發送給所述採集端,以便所述採集端將所述第二格式數據存入資料庫。
在本發明實施例的第二個方面中,提供了一種異構應用數據採集裝置。該裝置配置於伺服器側,所述伺服器側預置有不同應用監控探針分別對應的配置文件,以及,預置有不同數據格式分別對應的數據解析器,其中,所述配置文件中至少包含採集指標名稱。該裝置包括:數據接收模塊,被配置為接收應用監控探針探取到的第一格式數據。指標名稱讀取模塊,被配置為從所述應用監控探針對應的配置文件中,讀取出採集指標名稱。解析模塊,被配置為根據所述數據接收模塊接收的第一格式數據對應的數據格式,採取所述數據格式對應的數據解析器,從所述第一格式數據中解析出所述指標名稱讀取模塊讀取出的採集指標名稱對應的監控數據。數據處理模塊,被配置為將所述解析模塊解析出的監控數據處理為採集端所需的格式,得到第二格式數據。
可選地,所述配置文件中還包含所述採集指標名稱對應的數據類型。該裝置還包括:檢驗模塊,被配置為根據所述指標名稱讀取模塊讀取出的採集指標名稱對應的數據類型,對所述解析模塊解析出的所述採集指標名稱對應的監控數據的數據類型是否正確進行檢驗。
可選地,該裝置還包括:異常判斷模塊,被配置為判斷所述解析模塊解析出的監控數據中是否存在滿足預設異常條件的異常數據。重置模塊,被配置為在所述異常判斷模塊判定存在的情況下,將所述監控數據中滿足預設異常條件的異常數據清除,或者,重置為預設正常數據。
可選地,所述數據處理模塊包括:聚合子模塊,被配置為利用預置的聚合算法,對所述解析模塊解析出的、多個採集指標名稱對應的監控數據進行聚合,得到所述多個採集指標名稱對應的一個聚合指標。封裝子模塊,被配置為將所述聚合指標封裝為所述採集端所需的格式,得到第二格式數據。
可選地,該裝置還包括:發送模塊,被配置為將所述數據處理模塊得到的第二格式數據發送給所述採集端,以便所述採集端將所述第二格式數據存入資料庫。
由於本發明實施例提供的方法在伺服器側預置有不同應用監控探針分別對應的配置文件,以及,預置有不同數據格式分別對應的數據解析器,接收應用監控探針探取到的第一格式數據,從應用監控探針對應的配置文件中,讀取出採集指標名稱,根據第一格式數據對應的數據格式,採取對應的數據解析器,從第一格式數據中解析出採集指標名稱對應的監控數據,將監控數據封裝為採集端所需的格式,得到第二格式數據,因此,針對不同語言的應用監控探針實現不同的接口,跨不同語言的應用監控探針通信,從而能夠從不同應用監控探針得到採集端能夠接受的數據。
本發明的其他特徵和優點將在隨後的具體實施方式部分予以詳細說明。
附圖說明
附圖是用來提供對本發明的進一步理解,並且構成說明書的一部分,與下面的具體實施方式一起用於解釋本發明,但並不構成對本發明的限制。在附圖中:
圖1是根據一示例性實施例示出的實施環境示意圖。
圖2是根據本發明的一示例性實施例示出的一種異構應用數據採集方法的流程圖。
圖3是根據本發明另一示例性實施例示出的一種異構應用數據採集方法的流程圖。
圖4是根據本發明的一示例性實施例示出的一種異構應用數據採集裝置的框圖。
圖5是根據本發明的另一示例性實施例示出的一種異構應用數據採集裝置的框圖。
具體實施方式
以下結合附圖對本發明的具體實施方式進行詳細說明。應當理解的是,此處所描述的具體實施方式僅用於說明和解釋本發明,並不用於限制本發明。
圖1是根據一示例性實施例示出的實施環境示意圖。該實施環境包括:多個不同的應用監控探針101、根據本發明實施例提供的異構應用數據採集方法實現的適配器102、採集端103、資料庫104、以及數據展現平臺105。其中,適配器102、採集端103、資料庫104、以及數據展現平臺105可以布置在伺服器側,多個不同的應用監控探針101可以布置在需要被監控的終端側或伺服器側,其中,至少兩個應用監控探針不在同一設備上。其中,適配器102,接收應用監控探針探取到的數據,將從各個應用監控探針101數據進行提取等處理後,得到符合採集端103所需格式的數據,並將符合採集端103所需格式的數據發送給採集端103。採集端103,將該數據存入資料庫104,以便在需要時數據展現平臺105可以從資料庫104取出該數據並進行展示。
可以理解的是,圖1所示實施環境僅用於示意本發明實施例提供的方法,並不構成對本發明實施例的限制。
圖2是根據本發明的一示例性實施例示出的一種異構應用數據採集方法的流程圖。該方法可以應用於伺服器側。例如,根據本發明實施例提供的方法實現的適配器可以預置有不同應用監控探針分別對應的配置文件,以及,預置有不同數據格式分別對應的數據解析器,其中,所述配置文件中至少包含採集指標名稱。該方法可以包括:
在步驟210中,接收應用監控探針探取到的第一格式數據。
例如,所述應用監控探針可以為配置於不同終端或伺服器上的MULL探針、JVM探針、消息中間件探針、資料庫探針、應用伺服器探針、網絡嗅探器探針、.NET應用探針、PHP應用探針、JAVA應用探針、WINDOWS主機探針、Linux主機探針、等等。所述第一格式數據例如可以為,json格式的數據、xml格式的數據、文本格式的數據等等。
在步驟220中,從所述應用監控探針對應的配置文件中,讀取出採集指標名稱。
例如,可以在所述適配器啟動的過程中,加載所有的配置文件。以JAVA應用監控探針為例,該應用監控探針對應的對應配置文件中的採集指標名稱可以包括:在線用戶、吞吐量、平均響應時間、健康度、工作負荷、用戶體驗、活躍線程、可用性、物理內存使用率、java內存使用率、cpu使用率、等等。
在步驟230中,根據所述第一格式數據對應的數據格式,採取所述數據格式對應的數據解析器,從所述第一格式數據中解析出所述採集指標名稱對應的監控數據。
一種可能的實施方式中,可以根據用於傳輸該第一格式數據的響應頭文件,獲知該第一格式數據對應的數據格式。該響應頭文件中可以包含對數據格式的定義。例如,所述第一格式數據的數據格式可以為json、xml、文本、等等,進而選擇相應的xml數據解析器、json解析器、文本解析器、等等來完成監控數據的解析。
在步驟240中,將所述監控數據處理為採集端所需的格式,得到第二格式數據。
一種可能的實施方式中,可以將所述第二格式數據發送給所述採集端,以便所述採集端將所述第二格式數據存入資料庫。或者,也可以將所述第二格式數據緩存在指定存儲區域,由採集端自行到該指定存儲區域進行讀取。
一種可能的實施方式中,可以直接將監控數據封裝為採集端所需的格式,得到第二格式數據。另一種可能的實施方式中,為了減少發往採集端的數據量,減輕運維人員閱讀大量監控數據的壓力,本發明實施例的方法可以利用預置的聚合算法,對多個採集指標名稱對應的監控數據進行聚合,得到所述多個採集指標名稱對應的一個聚合指標,將所述聚合指標封裝為所述採集端所需的格式,得到第二格式數據。
例如,可以將CPU使用率,物理內存使用率,java堆內存使用率、Java非堆內存使用率,交換空間,吞吐量等等聚合成為一個影響應用工作負荷的聚合指標。將該影響應用工作負荷的聚合指標封裝為採集端所需的格式,得到第二格式數據。例如,可以將一封裝為JSON格式。
其中,所述聚合算法可以根據實際需要設置,本發明對此並不進行限制。例如,可以為待聚合的每一類監控數據設置對應的權重,將每一類監控數據對應的數值(如,在線用戶數量、吞吐量、平均響應時間、等等)與其對應的權重相乘,得到每一類監控數據對應的指標分量,將待聚合的多個監控數據對應的指標分量相加,得到聚合指標。
可見,本發明實施例提供的方法能夠針對不同語言的應用監控探針實現不同的接口,跨不同語言的應用監控探針通信,使採集端能夠獲得不同應用監控探針探取到的數據。
為了避免由於錯誤數據導致系統崩潰,本發明實施例還可以對監控數據進行校驗、清洗。下面,結合圖3所示的另一示例性實施例示出的一種異構應用數據採集方法的流程圖,對該實施方式進行詳細說明。
在步驟310中,接收應用監控探針探取到的第一格式數據。
在步驟320中,從所述應用監控探針對應的配置文件中,讀取出採集指標名稱。
在步驟330中,根據所述第一格式數據對應的數據格式,採取所述數據格式對應的數據解析器,從所述第一格式數據中解析出所述採集指標名稱對應的監控數據。
在步驟331中,根據採集指標名稱對應的數據類型,對所述監控數據的數據類型是否正確進行檢驗。在該實施方式中,所述配置文件中還可以包含所述採集指標名稱對應的數據類型。
例如,可以判斷所述監控數據的數據類型是否符合對應的採集指標名稱對應的數據類型,在不符合的情況下,將所述監控數據的數據類型轉換為對應的採集指標名稱對應的數據類型,或者,反饋數據錯誤。
例如,配置文件中,某個採集指標名稱對應的數據類型可以為String(字符型)、boolean(布爾型),long(長整型)等。假設配置文件中對「主機連通性」這一採集指標名稱定義的數據類型為boolean型,在該採集指標名稱「主機連通性」對應的監控數據中出現其他值,例如,「others」、「null」等,則可以將「others」、「null」替換為布爾型的「false」。再假設配置文件中對某些採集指標名稱(如「磁碟使用率」等)定義的數據類型為百分比,在該採集指標名稱對應的監控數據中出現其他值,則將這些值轉換為百分比數據類型來表示,在該採集指標名稱對應的監控數據超過百分比或者是複數,則代表監控數據存在問題,可以進一步向反饋錯誤。
在步驟332中,判斷所述監控數據中是否存在滿足預設異常條件的異常數據。
其中,所述預設異常條件,可以根據實際情況進行設置,本發明對此並不進行限制。例如,對於某些監控數據,其值小於零時是異常的,則可以將預設異常條件設置為「監控數據小於零」。
在步驟333中,在存在的情況下,將所述監控數據中滿足預設異常條件的異常數據清除,或者,重置為預設正常數據。
在清除或者重置之後,可以進入步驟340。另外,在步驟332判定監控數據中不存在滿足預設異常條件的異常數據的情況下,也進入步驟340。
例如,對於某些監控數據,例如,其值小於零時,滿足預設異常條件,則可以將該監控數據清除,或者,將其值重置為預設正常數據。其中預設正常數據,可以根據實際情況進行設置,本發明對此並不進行限制。例如,對於某些監控數據異常時,可以重置為預設正常數據「0」。
在步驟340中,將所述監控數據處理為採集端所需的格式,得到第二格式數據。
可見,本發明實施例提供的方法在伺服器側將各個應用監控探針探取到的數據進行提取、格式轉換,從而能夠跨不同語言的應用監控探針通信,使採集端獲得不同應用監控探針探取到的數據,而且通過校驗,避免了錯誤數據所導致的程序崩潰,通過聚合指標,能夠幫助運維人員快速定位應用性能問題。
圖4是根據本發明的一示例性實施例示出的一種異構應用數據採集裝置400的框圖。該裝置可以配置於伺服器側。其中,伺服器側可以預置有不同應用監控探針分別對應的配置文件,以及,預置有不同數據格式分別對應的數據解析器,其中,所述配置文件中至少包含採集指標名稱。該裝置可以包括:數據接收模塊410、指標名稱讀取模塊420、解析模塊430、以及數據處理模塊440。
該數據接收模塊410,可以被配置為接收應用監控探針探取到的第一格式數據。
該指標名稱讀取模塊420,可以被配置為從所述應用監控探針對應的配置文件中,讀取出採集指標名稱。
該解析模塊430,可以被配置為根據所述數據接收模塊410接收的第一格式數據對應的數據格式,採取所述數據格式對應的數據解析器,從所述第一格式數據中解析出所述指標名稱讀取模塊420讀取出的採集指標名稱對應的監控數據。
該數據處理模塊440,可以被配置為將所述解析模塊430解析出的監控數據處理為採集端所需的格式,得到第二格式數據。
可見,本發明實施例提供的裝置能夠針對不同語言的應用監控探針實現不同的接口,跨不同語言的應用監控探針通信,使採集端能夠獲得不同應用監控探針探取到的數據。
為了避免由於錯誤數據導致系統崩潰,本發明實施例還可以對監控數據進行校驗、清洗。下面,結合圖5所示的另一示例性實施例示出的一種異構應用數據採集裝置的框圖,對該實施方式進行詳細說明。
如圖5所示,該裝置還包括:檢驗模塊450,可以被配置為根據所述指標名稱讀取模塊420讀取出的採集指標名稱對應的數據類型,對所述解析模塊430解析出的所述採集指標名稱對應的監控數據的數據類型是否正確進行檢驗。該實施方式中,所述配置文件中還可以包含所述採集指標名稱對應的數據類型。
另一種可能的實施方式中,該裝置還可以包括:異常判斷模塊460,被配置為判斷所述解析模塊430解析出的監控數據中是否存在滿足預設異常條件的異常數據。重置模塊461,被配置為在所述異常判斷模塊460判定存在的情況下,將所述監控數據中滿足預設異常條件的異常數據清除,或者,重置為預設正常數據。
一種可能的實施方式中,為了減少發往採集端的數據量,減輕運維人員閱讀大量監控數據的壓力,本發明實施例裝置的數據處理模塊440可以包括:聚合子模塊441,可以被配置為利用預置的聚合算法,對所述解析模塊430解析出的、多個採集指標名稱對應的監控數據進行聚合,得到所述多個採集指標名稱對應的一個聚合指標。封裝子模塊442,可以被配置為將所述聚合指標封裝為所述採集端所需的格式,得到第二格式數據。
一種可能的實施方式中,該裝置還可以包括:發送模塊470,可以被配置為將所述數據處理模塊440得到的第二格式數據發送給所述採集端,以便所述採集端將所述第二格式數據存入資料庫。
以上結合附圖詳細描述了本發明的優選實施方式,但是,本發明並不限於上述實施方式中的具體細節,在本發明的技術構思範圍內,可以對本發明的技術方案進行多種簡單變型,這些簡單變型均屬於本發明的保護範圍。
另外需要說明的是,在上述具體實施方式中所描述的各個具體技術特徵,在不矛盾的情況下,可以通過任何合適的方式進行組合。為了避免不必要的重複,本發明對各種可能的組合方式不再另行說明。
此外,本發明的各種不同的實施方式之間也可以進行任意組合,只要其不違背本發明的思想,其同樣應當視為本發明所公開的內容。