欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

服務監(jiān)控系統(tǒng)及方法與流程

文檔序號:12837047閱讀:463來源:國知局
服務監(jiān)控系統(tǒng)及方法與流程

本發(fā)明的實施例涉及一種用于有效地監(jiān)控服務的事物(transaction)內的瓶頸區(qū)間的技術。



背景技術:

應用性能管理(apm:applicationperformancemanagement)或者應用程序性能管理意味著將重點放在監(jiān)視并管理應用程序的性能和服務可用性的系統(tǒng)管理原則。最近,隨著提供給用戶的服務變得更為多樣和復雜,不延遲地執(zhí)行用戶所要求的事務(transaction)的性能管理技術的重要性逐漸增加。

然而,現(xiàn)有的性能管理技術將關于事務的剖析(profiling)信息以文本形式直接發(fā)送到監(jiān)控服務器,因此具有在有限的基礎設施資源發(fā)生較多的負荷的問題。此外,為了解決上述的問題,僅將針對事務內的一部分區(qū)間的剖析信息發(fā)送到監(jiān)控服務器,或者利用多個壓縮算法而將被發(fā)送到監(jiān)控服務器的數(shù)據量減少,但是這些方法在負荷的減少方面仍存在限制。

進而,根據現(xiàn)有的性能管理技術,為了減少負荷而僅對設定的監(jiān)控范圍獲取了剖析信息,在此情況下,無法實現(xiàn)針對事務內的全部區(qū)間的監(jiān)控。因此,根據現(xiàn)有的性能管理技術,當在監(jiān)控范圍之外發(fā)生問題時,無法進行針對所述問題的原因分析,據此,不可避免存在尋找事務內的正確的瓶頸區(qū)間時的困難。

[現(xiàn)有技術文獻]

[專利文獻]

韓國授權專利公報第10-0503776號(2005.07.26)



技術實現(xiàn)要素:

本發(fā)明的實施例的目的在于,提供一種執(zhí)行針對服務事務內的全部區(qū)間的監(jiān)控,并最小化在執(zhí)行監(jiān)控的過程中發(fā)生的負荷的單元。

根據本發(fā)明的示例性的實施例,提供一種服務監(jiān)控系統(tǒng),包括:服務裝置,將與目標服務的一個以上的功能塊中的一個功能塊對應的文本信息轉換為第一縮略密鑰,并將所述第一縮略密鑰及所述文本信息添加到第一表,將用于表示在執(zhí)行所述目標服務的過程中一個以上的所述功能塊被呼叫的順序的呼叫流信息轉換為第二縮略密鑰,并將所述第二縮略密鑰及所述呼叫流信息添加到第二表;以及監(jiān)控服務器,從所述服務裝置接收所述第一表和所述第二表,并利用所述第一表和所述第二表而獲取關于所述功能塊的剖析信息。

所述服務裝置在執(zhí)行所述目標服務之前,可以將用于輸出所述功能塊的所述第一縮略密鑰的縮略密鑰輸出代碼以及用于測試所述功能塊的性能的性能測試代碼插入到所述功能塊。

所述服務裝置可以在執(zhí)行所述目標服務的過程中利用與一個以上的功能塊對應的一個以上的第一縮略密鑰,將所述功能塊的呼叫流信息轉換為所述第二縮略密鑰。

所述服務裝置可以通過將所述一個以上的第一縮略密鑰按序排列而獲取所述呼叫流信息。

所述第一縮略密鑰可以包括通過將所述文本信息散列而獲取的哈希值,所述第二縮略密鑰可以包括通過將所述呼叫流信息散列而獲取的哈希值。

所述服務裝置可以將從所述一個以上的第一縮略密鑰獲取的第二縮略密鑰和借助所述性能測試代碼而獲取的性能測試結果值發(fā)送到所述監(jiān)控服務器。

所述性能測試代碼可以包括:在運行所述功能塊時,計算所述功能塊的運行開始時刻和運行終止時刻之差,從而獲取所述功能塊的響應時間,并將所述響應時間作為所述性能測試結果值而輸出的一個以上的指令。

所述監(jiān)控服務器可以參照所述第一表和所述第二表而將從所述服務裝置接收的所述第二縮略密鑰恢復成與所述功能塊對應的文本信息。

所述剖析信息可以包括:在所述監(jiān)控服務器恢復的與所述功能塊對應的文本信息以及針對各個所述功能塊的性能測試結果值。

根據本發(fā)明的另一示例性的實施例,提供一種服務監(jiān)控方法,包括如下步驟:在服務裝置中,將與目標服務的一個以上的功能塊中的一個以上的功能塊對應的文本信息轉換為第一縮略密鑰;在所述服務裝置中,將所述第一縮略密鑰及所述文本信息添加到第一表;在所述服務裝置中,將用于表示在執(zhí)行所述目標服務的過程中一個以上的所述功能塊被呼叫的順序的呼叫流信息轉換為第二縮略密鑰;在所述服務裝置中,將所述第二縮略密鑰及所述呼叫流信息添加到第二表;在監(jiān)控服務器中,從所述服務裝置接收所述第一表和所述第二表,在所述監(jiān)控服務器中,利用所述第一表和所述第二表而獲取關于所述功能塊的剖析信息。

所述服務監(jiān)控方法還可以包括如下的步驟:在所述服務裝置中,在執(zhí)行所述目標服務之前,可以將用于輸出所述功能塊的第一縮略密鑰的縮略密鑰輸出代碼以及用于測試所述功能塊的性能的性能測試代碼插入到所述功能塊。

在將所述呼叫流信息轉換為第二縮略密鑰的步驟中,可以在執(zhí)行所述目標服務的過程中利用與一個以上的所述功能塊對應的一個以上的第一縮略密鑰,將所述呼叫流信息轉換為所述第二縮略密鑰。

在將所述呼叫流信息轉換為第二縮略密鑰的步驟中,可以通過將一個以上的所述第一縮略密鑰按序排列而獲取所述呼叫流信息。

所述第一縮略密鑰可以包括通過將所述文本信息散列而獲取的哈希值,所述第二縮略密鑰可以包括通過將所述呼叫流信息散列而獲取的哈希值。

所述服務監(jiān)控方法在以所述功能塊為單位來獲取所述剖析信息的步驟之前,還可以包括如下的步驟:在所述服務裝置中,將從一個以上的所述第一縮略密鑰獲取的第二縮略密鑰和借助所述性能測試代碼而獲取的性能測試結果值發(fā)送到所述監(jiān)控服務器。

所述性能測試代碼可以包括:在運行所述功能塊時,計算所述功能塊的運行開始時刻和運行終止時刻之差,從而獲取所述功能塊的響應時間,并將所述響應時間作為所述性能測試結果值而輸出的一個以上的指令。

在以所述功能塊為單位來獲取所述剖析信息的步驟中,可以參照所述第一表和所述第二表而將從所述服務裝置接收的所述第二縮略密鑰恢復成與所述功能塊對應的文本信息。

所述剖析信息可以包括:在所述監(jiān)控服務器恢復的與所述功能塊對應的文本信息以及針對所述功能塊的性能測試結果值。

根據本發(fā)明的實施例,服務裝置僅將第二縮略密鑰及所述性能測試結果值發(fā)送到監(jiān)控服務器,而不發(fā)送與目標服務的事務內的各個功能塊對應的所有的文本信息以及性能測試結果值,從而能夠大幅地減少被發(fā)送到監(jiān)控服務器的數(shù)據量。

此外,根據本發(fā)明的實施例,監(jiān)控服務器利用第一表和第二表而以功能塊為單位獲取關于目標服務的剖析信息,從而管理員可以執(zhí)行針對目標服務的事務內的全部區(qū)間的監(jiān)控,據此,可以更為準確且迅速地找出事務內的瓶頸區(qū)間。

附圖說明

圖1是示出根據本發(fā)明的一實施例的服務監(jiān)控系統(tǒng)的詳細構成的框圖。

圖2是示出根據本發(fā)明的一實施例的服務裝置的詳細構成的框圖。

圖3是根據本發(fā)明的一實施例的第一表的示例圖。

圖4是根據本發(fā)明的一實施例的第二表的示例圖。

圖5是示出根據本發(fā)明的一實施例的監(jiān)控服務器的詳細構成的框圖。

圖6是根據本發(fā)明的一實施例的剖析信息的示例圖。

圖7是根據現(xiàn)有技術而成為監(jiān)控對象的java事務的示例圖。

圖8是根據本發(fā)明的一實施例而成為監(jiān)控對象的java事務的示例圖。

圖9是用于說明根據本發(fā)明的一實施例的服務監(jiān)控方法的流程圖。

符號說明

100:服務監(jiān)控系統(tǒng)102:服務裝置

104:監(jiān)控服務器106:用戶終端

108:管理員終端202:第一表生成部

204、504:第一表存儲空間206:代碼插入部

208:服務執(zhí)行部210:第二表生成部

212、506:第二表存儲空間502:恢復部

具體實施方式

以下,參考附圖而對本發(fā)明的具體實施方式進行說明。以下的詳細說明是為了有助于全面理解本說明書中記載的方法、裝置和/或系統(tǒng)而提供的。然而,這僅僅是示例,本發(fā)明并不局限于此。

在對本發(fā)明的實施例進行說明的過程中,如果判斷為對有關本發(fā)明的公知技術的具體說明有可能對本發(fā)明的主旨造成不必要的混亂,則省略其詳細說明。另外,后述的術語均為考慮到本發(fā)明中的功能而定義的術語,其可能根據使用者、運用者的意圖或慣例等而不同。因此,需要以貫穿整個說明書的內容為基礎而對其下定義。在詳細說明中使用的術語只用于記載本發(fā)明的實施例而并非旨在限定本發(fā)明。除非明確不同地使用,單數(shù)形態(tài)的表述包括復數(shù)形態(tài)的含義。在本說明書中,“包括”或“具有”之類的術語用于指代某種特性、數(shù)字、步驟、操作、要素及它們一部分或組合,不應被解釋為排除所記載項之外的一個或一個以上的其他特性、數(shù)字、步驟、操作、要素及它們一部分或組合的存在性或可存在性。

圖1是示出根據本發(fā)明的一實施例的服務監(jiān)控系統(tǒng)100的詳細構成的框圖。如圖1所示,根據本發(fā)明的一實施例的服務監(jiān)控系統(tǒng)100包括:服務裝置102、監(jiān)控服務器104、用戶終端106以及管理員終端108,并且服務裝置102、監(jiān)控服務器104、用戶終端106以及管理員終端108可以通過網絡110而相互連接。在此,網絡110以具有較寬的范圍的含義被使用,其包括:由移動通信服務提供商所提供的3g網、4g網或lte網、無線寬帶(wibro)網等分組(packet)通信網;由與企業(yè)內業(yè)務或服務密切相關的主體提供的企業(yè)內部網(intranet)等。

服務裝置102是用于對提供給用戶的服務進行管理的服務器。服務裝置102從用戶終端106接收服務請求消息,并響應于此而執(zhí)行所述服務。在本實施例中,服務可以是由java、c++、c#等機器語言編程的軟件、應用或者系統(tǒng),作為如上所述的服務的示例,可以包括“會員加入”服務、“實名認證”服務、“密碼變更”服務等。所述服務可以由一個以上的功能塊構成。功能塊表示類(class)、方法(method)、結構化查詢語言(sql:structuredquerylanguage)等用于執(zhí)行特定功能的指令的集合。

服務裝置102可以將多樣的種類的服務提供給用戶,而且各個服務可以體現(xiàn)為由一個以上的功能塊按序結合的形態(tài)的事務(transaction)。此時,為了將在服務裝置102中執(zhí)行的服務的事務以功能塊為單位來監(jiān)控,需要將針對所述事務內的各個功能塊的文本信息及性能信息發(fā)送到監(jiān)控服務器104。然而,由于針對各個功能塊的文本信息的量龐大,所以在針對所述事務內的所有功能塊的文本信息及性能信息被發(fā)送到監(jiān)控服務器104的情況下,可能在有限的基礎設施資源(網絡資源、服務裝置102及監(jiān)控服務器104的cpu、存儲器等)發(fā)生較高的負荷。為了解決上述的問題,服務裝置102可以僅將針對事務內的一部分功能塊的文本信息及性能信息發(fā)送到監(jiān)控服務器104,然而在此情況下,無法實現(xiàn)針對事務內的全部區(qū)間的監(jiān)控,因此難以找出事務內的正確的瓶頸區(qū)間。因此在本發(fā)明的實施例中,在服務裝置102生成第一表以及第二表而發(fā)送到監(jiān)控服務器104,且在監(jiān)控服務器104利用所述第一表以及第二表而以功能塊為單位來對各個服務的事務內的全部區(qū)間進行監(jiān)控。

具體而言,服務裝置102首先可以將針對構成提供給用戶的服務中的作為監(jiān)控對象的服務(以下,稱之為“目標服務”)的一個以上的各個功能塊的文本信息轉換為第一縮略密鑰,并生成包括第一縮略密鑰及文本信息的對(pair)的第一表。在此,目標服務可以是從服務裝置102提供的所有的服務,但是并不局限于此,目標服務還可以是從服務裝置102提供的服務中的由管理員指定的一部分服務。在本實施例中,針對各個功能塊的文本信息是體現(xiàn)所述功能塊的文字序列信息,例如可以是類的名稱、方法的名稱、數(shù)據庫的sql指令的名稱、cassandra的查詢(query)指令的名稱等。

服務裝置102可以將用于提取針對構成目標服務的各個功能塊的文本信息的文字序列提取代碼插入到各個功能塊,從而提取針對各個功能塊的文本信息。服務裝置102例如可以通過字節(jié)代碼工具(bytecodeinstrument)技術而將所述文字序列提取代碼插入到各個功能塊。上述字節(jié)代碼工具是指無需服務源代碼(原始代碼)的修改而在服務的執(zhí)行步驟中動態(tài)地插入特定的字節(jié)代碼的技術。字節(jié)代碼是java程序的被編譯的形態(tài),可以由java加法機來執(zhí)行。

服務裝置102可以對提取的文本信息分別應用哈希(hash)函數(shù)而獲取哈希值(第一縮略密鑰)。在此,哈希函數(shù)例如可以是sha-1、sha-256、sha-384、md5等。服務裝置102可以將針對文本信息的哈希值,即第一縮略密鑰設定為密鑰(key),并將對應于此的文本信息設定為值(value)之后,生成包括第一縮略密鑰–文本信息對(pair)的第一表。服務裝置102可以針對各個目標服務反復執(zhí)行上述的過程,據此,可以將第一縮略密鑰–文本信息對持續(xù)地添加到第一表,從而更新第一表。

此外,服務裝置102可以每當?shù)谝槐砀聲r,將第一表發(fā)送到監(jiān)控服務器104。因此,存儲于服務裝置102的第一表和存儲于監(jiān)控服務器104的第一表可以實時地同步。

接著,服務裝置102將縮略密鑰輸出代碼和性能測試代碼插入到各個功能塊,其中,縮略密鑰輸出代碼用于輸出與所述功能塊對應的第一縮略密鑰,性能測試代碼用于測試所述功能塊的性能。服務裝置102例如可以利用字節(jié)代碼工具(bci)技術而將縮略密鑰輸出代碼以及性能測試代碼插入到各個功能塊。

縮略密鑰輸出代碼可以包含存儲于第一表的第一縮略密鑰中的對應于所述功能塊的第一縮略密鑰以及用于輸出所述第一縮略密鑰的一個以上的指令。因此,在執(zhí)行功能塊的情況下,包含在所述功能塊的縮略密鑰輸出代碼可以輸出對應于所述功能塊的第一縮略密鑰。

此外,性能測試代碼可以包括如下的一個以上的指令:在執(zhí)行功能塊時,計算所述功能塊的執(zhí)行開始時刻與執(zhí)行終止時刻之差,從而獲取所述功能塊的響應時間,并將所述響應時間輸出為性能測試結果值。據此,在功能塊被執(zhí)行的情況下,性能測試代碼可以輸出所述功能塊的性能測試結果值。

作為一示例,當執(zhí)行目標服務a時,可以輸出針對作為構成目標服務a的功能塊的類1/方法1、類1/方法2、類1/方法3各自的第一縮略密鑰及性能測試結果值。上述第一縮略密鑰–性能測試結果值對的示例如下。

(第一縮略密鑰,性能測試結果值)=(nb61kif2fk,10ms)

(第一縮略密鑰,性能測試結果值)=(b93ldlfdjh,23ms)

(第一縮略密鑰,性能測試結果值)=(qlka3iod3o,20ms)

接著,服務裝置102在執(zhí)行目標服務的過程中利用借助縮略密鑰輸出代碼而輸出的第一縮略密鑰來將目標服務的事務內的功能塊的呼叫流信息轉換為第二縮略密鑰,并生成包含第二縮略密鑰及呼叫流信息的對(pair)的第二表。在此,呼叫流(callflow)信息是表示在執(zhí)行目標服務的過程中,目標服務的事務內功能塊被呼叫(或執(zhí)行)的順序的信息。服務裝置102可以將借助縮略密鑰輸出代碼而輸出的第一縮略密鑰按序排列而獲取呼叫流信息,并對按序排列的第一縮略密鑰(即,呼叫流信息)應用哈希函數(shù)而獲取哈希值(第二縮略密鑰)。在此,哈希函數(shù)例如可以是sha-1、sha-256、sha-384、md5等。服務裝置102可以將針對呼叫流信息的哈希值,即第二縮略密鑰設定為密鑰(key),并將對應于此的呼叫流信息設定為值(value)之后,生成包括第二縮略密鑰–呼叫流信息對(pair)的第二表。此外,服務裝置102可以在獲取第二縮略密鑰時詢問第二縮略密鑰是否存在于第二表。如果所述第二縮略密鑰不存在于第二表,則服務裝置102可以將所述第二縮略密鑰–呼叫流信息對添加到第二表,從而更新第二表。如果所述第二縮略密鑰存在于第二表,則服務裝置102可以加載(load)存儲于第二表的所述第二縮略密鑰–呼叫流信息對。

此外,服務裝置102可以每當?shù)诙砀聲r,將第二表發(fā)送到監(jiān)控服務器104。據此,存儲于服務裝置102的第二表和存儲于監(jiān)控服務器104的第二表可以實時地同步。

這種第二縮略密鑰–呼叫流信息對的示例如下。

(第2縮略密鑰,呼叫流信息)=(bdfk,nb61kif2fk|b93ldlfdjh|qlka3iod3o)

在此,nb61kif2是針對類1/方法1的第一縮略密鑰的示例,b93ldlfdjh是針對類1/方法2的第一縮略密鑰的示例,qlka3iod3o是針對類1/方法3的第一縮略密鑰的示例,|是用于將排列的第一縮略密鑰劃分的劃分子的示例。

接著,服務裝置102將第二縮略密鑰及借助性能測試代碼而獲取的針對各個功能塊的性能測試結果值發(fā)送到監(jiān)控服務器104,其中,第二縮略密鑰由借助縮略密鑰輸出代碼而輸出的第一縮略密鑰獲取。即,根據本發(fā)明的實施例,使服務裝置102僅將第二縮略密鑰及所述性能測試結果值發(fā)送到服務器104,而不是將針對目標服務的事務內的各個功能塊的所有的文本信息及性能測試結果值發(fā)送到服務器104,從而能夠大幅度減少被發(fā)送到監(jiān)控服務器104的數(shù)據量。

監(jiān)控服務器104是用于獲取對于目標服務的剖析(profiling)信息,并將其發(fā)送到管理員終端108的服務器。本實施例中,“剖析”表示如下的行為:為了針對事務的以構成要素為單位(即,按功能塊)來進行性能測試以及瓶頸區(qū)間的確認,收集按各個功能塊(方法、sql等)的執(zhí)行開始時間、執(zhí)行終止時間、響應時間等信息。此外,如在下文中描述,剖析信息可以包括在監(jiān)控服務器104恢復的針對各個功能塊的文本信息以及針對各個所述功能塊的性能測試結果值。

如上所述,監(jiān)控服務器104可以從服務裝置102分別接收第一表和第二表。此時,監(jiān)控服務器104可以將從服務裝置102接收的第一表和第二表分別存儲到內部數(shù)據庫。此外,監(jiān)控服務器104可以每當存儲于服務裝置102的第一表及第二表更新時,從服務裝置102接收更新的第一表和第二表(或者,第一表及第二表上的被更新的信息)。據此,存儲于監(jiān)控服務器104的第一表及第二表和存儲于服務裝置102的第一表及第二表可以被同步。

此外,監(jiān)控服務器104可以從服務裝置102接收針對當前執(zhí)行的目標服務的第二縮略密鑰以及針對所述目標服務的各個功能塊的性能測試結果值。監(jiān)控服務器104可以參照存儲于監(jiān)控服務器104的第一表以及第二表而將從服務裝置102接收的第二縮略密鑰恢復為針對各個功能塊的文本信息。具體而言,監(jiān)控服務器104可以參照第二表而將從服務裝置102接收的第二縮略密鑰恢復為按序排列的第一縮略密鑰,并參照第一表而將各個所述第一縮略密鑰恢復為針對對應的功能塊的文本信息。如上所述,存儲于監(jiān)控服務器104的第一表以及第二表與存儲于服務裝置102的第一表及第二表被實時同步,因此監(jiān)控服務器104可以利用第一表及第二表而將從服務裝置102接收的第二縮略密鑰恢復為針對功能塊的文本信息。此時,在監(jiān)控服務器104恢復的第一縮略密鑰按功能塊的呼叫流順序得到排列,因此恢復的文本信息也可以按照功能塊的呼叫流順序被排列。因此,在監(jiān)控服務器104恢復的各個文本信息可以與從服務裝置102接收的針對各個功能塊的性能測試結果值按序對應。

在本發(fā)明的實施例中,針對所述目標服務的剖析信息可以包括在監(jiān)控服務器104恢復的針對各個功能塊的文本信息以及針對各個所述功能塊的性能測試結果值。監(jiān)控服務器104可以將獲取的剖析信息發(fā)送到管理員終端108,并且管理員可以通過管理員終端108而監(jiān)控所述剖析信息。

即,根據本發(fā)明的實施例,監(jiān)控服務器104利用第一表和第二表而以功能塊為單位來獲取針對目標服務的剖析信息,從而管理員可以執(zhí)行針對目標服務的事務內的全部區(qū)間的監(jiān)控,據此,可以更為準確且迅速地找出事務內的瓶頸區(qū)間。

用戶終端106是用戶持有或操作的終端,其可以根據用戶的輸入而向服務裝置102發(fā)送服務請求消息。用戶終端106例如可以是臺式電腦、筆記本電腦、平板pc、智能手機等。服務裝置102可以從用戶終端106接收服務請求消息,并作為對該服務請求消息的響應而執(zhí)行所述服務。

管理員終端108是管理員持有或操作的終端,其可以根據管理員的輸入而向服務裝置102發(fā)送服務啟動消息。服務裝置102可以從管理員終端108接收服務啟動消息,并據此而執(zhí)行服務的啟動準備。在本實施例中,“服務的啟動準備”表示如下的行為:在執(zhí)行目標服務之前生成第一表,并將縮略密鑰輸出代碼及性能測試代碼分別插入到針對目標服務的各個功能塊。

此外,管理員終端108可以從監(jiān)控服務器104接收針對目標服務的剖析信息,而且管理員可以通過管理員終端108而對所述剖析信息進行監(jiān)控。此時,管理員終端108可以以功能塊為單位來顯示所述剖析信息。例如,管理員終端108可以按各個功能塊來顯示針對功能塊的文本信息–性能測試結果值(例如,響應時間)對。據此,管理員可以更為準確且迅速地掌握哪個功能塊對應于瓶頸區(qū)間。此外,管理員終端108可以從針對各個功能塊的性能測試結果值中篩選超過所設定的范圍的性能測試結果值和與此對應的文本信息并顯示。

圖2是示出根據本發(fā)明的一實施例的服務裝置102的詳細構成的框圖。如圖2所示,根據本發(fā)明的一實施例的服務裝置102包括:第一表生成部202、第一表存儲空間204、代碼插入部206、服務執(zhí)行部208、第二表生成部210、第二表存儲空間212。

第一表生成部202將針對構成各個目標服務的一個以上的各個功能塊的文本信息轉換為第一縮略密鑰,并生成包括所述第一縮略密鑰及文本信息的對的第一表。在執(zhí)行目標服務之前,第一表生成部202可以從管理員終端108接收服務啟動消息,并據此生成第一表。第一表生成部202可以將用于提取針對構成目標服務的各個功能塊的文本信息的文字序列提取代碼插入到各個功能塊,從而提取針對各個功能塊的文本信息。作為一例,第一表生成部202可以為了獲取類、方法名稱而向servletmethod插入文字序列提取代碼,并為了獲取數(shù)據庫的sql指令名稱而向preparestatmentmethod插入文字序列提取代碼,且為了獲取cassandra的查詢指令的名稱而向query_1method插入文字序列提取代碼。此外,第一表生成部202可以對提取的各個文本信息分別應用哈希函數(shù)而獲取哈希值(第一縮略密鑰),并生成包含第一縮略密鑰–文本信息對的第一表,從而存儲到第一表存儲空間204。第一表生成部202可以針對各個目標服務反復執(zhí)行上述的過程,并將第一縮略密鑰–文本信息對持續(xù)地添加到第一表,從而將存儲于第一表存儲空間204的第一表更新。

此外,第一表生成部202可以每當?shù)谝槐肀桓聲r將第一表發(fā)送到監(jiān)控服務器104。據此,存儲于第一表存儲空間204的第一表和存儲于監(jiān)控服務器104的第一表可以被實時同步。

以下是示出sql信息借助第一表生成部202而被添加到第一表的過程的示例性的源代碼。在此,用粗體字表示的部分為執(zhí)行以下的1至4的功能的源代碼。

1、使用bci的methodvisitor而選定對preparestatement插入文字序列提取代碼的位置

2、當執(zhí)行"preparestatement"method時開始進行文字序列提取代碼的插入

3、在preparestatment的end步驟中提取賦值到參數(shù)的sql信息

4、利用java.object類的哈希函數(shù)而生成第一縮略密鑰(nbytekey)并添加到第一表

第一表存儲空間204是用于存儲在第一表生成部202生成的第一表的存儲空間。第一表生成部202可以生成第一表并存儲到第一表存儲空間204,而且每當獲取第一縮略密鑰–文本信息對時都可以將存儲于第一表存儲空間204的第一表更新。

代碼插入部206將縮略密鑰輸出代碼和性能測試代碼插入到各個功能塊,其中,縮略密鑰輸出代碼用于輸出與所述功能塊對應的第一縮略密鑰,性能測試代碼用于測試所述功能塊的性能。如上所述,針對對象塊的事務內的各個功能塊的文本信息可以表示為第一縮略密鑰。在執(zhí)行目標服務之前,代碼插入部206可以利用字節(jié)代碼工具(bci)技術而將縮略密鑰輸出代碼以及性能測試代碼插入到各個功能塊。據此,在執(zhí)行功能塊的情況下,包含在所述功能塊的縮略密鑰輸出代碼可以輸出與所述功能塊對應的第一縮略密鑰,并且包含在所述功能塊的性能測試代碼可以輸出所述功能塊的性能測試結果值。在此,性能測試代碼可以包括如下的一個以上的指令:在執(zhí)行功能塊時,計算所述功能塊的執(zhí)行開始時刻和執(zhí)行終止時刻之差,從而獲取所述功能塊的響應時間,并將所述響應時間輸出為性能測試結果值。

服務執(zhí)行部208從用戶終端106接收服務請求消息,并作為對此的響應而執(zhí)行目標服務。目標服務例如可以是“會員加入”服務、“實名認證”服務、“密碼變更”服務等。

第二表生成部210在執(zhí)行目標服務的過程中利用借助縮略密鑰輸出代碼而輸出的第一縮略密鑰來將功能塊的呼叫流信息轉換為第二縮略密鑰,而且生成包含所述第二縮略密鑰及呼叫流信息的對的第二表。各個目標服務通常在開始服務時,以目標服務事務內的功能塊具有相同的呼叫流信息的方式執(zhí)行。據此,在本發(fā)明的實施例中,構成為利用呼叫流信息的重復性而將發(fā)送到監(jiān)控服務器104的數(shù)據的量大幅地減少。

具體而言,第二表生成部210可以將借助縮略密鑰輸出代碼而輸出的第一縮略密鑰按序排列,從而獲取呼叫流信息,并對按序排列的第一縮略密鑰(即,呼叫流信息)應用哈希函數(shù)而獲取哈希值(第二縮略密鑰)。第二表生成部210可以對第二表存儲空間212詢問所獲取的第二縮略密鑰是否存在于第二表,如果所述第二縮略密鑰不存在于第二表,則可以將所述第二縮略密鑰–呼叫流信息對添加到第二表,從而將第二表更新。

此外,第二表生成部210可以每當?shù)诙肀桓聲r將第二表發(fā)送到監(jiān)控服務器104。據此,存儲于第二表存儲空間212的第二表和存儲于監(jiān)控服務器104的第二表可以被實時同步。此外,第二表生成部210可以為了防止第二表存儲空間212的溢出(overflow)而限制包含于第二表的值(value)中的第一縮略密鑰的數(shù)量。例如,當包含在第二表的值(value)中的第一縮略密鑰的數(shù)量成為100個以上時,第二表生成部210可以不再使第二表的值包含更多的第一縮略密鑰。

此外,第二表生成部210可以對監(jiān)控服務器104周期性地進行正常檢查(healthcheck),從而判斷監(jiān)控服務器104的故障與否。如果判斷為監(jiān)控服務器104發(fā)生了故障,則第二表生成部210可以判斷為:存儲于服務裝置102的第二表和存儲于監(jiān)控服務器104的第二表從監(jiān)控服務器104被判斷為發(fā)生了故障的時刻開始不一致。因此,在監(jiān)控服務器104的故障得到修復以后,第二表生成部210可以從監(jiān)控服務器104被判斷為發(fā)生了故障的時間點開始將存儲于服務裝置102的第二表和存儲于監(jiān)控服務器104的第二表同步,在此情況下,存儲于服務裝置102的第二表和存儲于監(jiān)控服務器104的第二表之間可以實現(xiàn)完美的同步。這種正常檢查過程還可以由上述的第一表生成部202同樣地執(zhí)行,在此情況下,存儲于服務裝置102的第一表和存儲于監(jiān)控服務器104的第一表之間會實現(xiàn)完美的同步。

第二表存儲空間212是用于存儲從第二表生成部210生成的第二表的存儲空間。第二表生成部210可以生成第二表并存儲于第二表存儲空間212,而且可以每當獲取新的第二縮略密鑰–呼叫流信息對的時候將存儲于第二表存儲空間212的第二表更新。

圖3是根據本發(fā)明的一實施例的第一表的示例圖。如圖3所示,第一表可以包括針對各個功能塊的第一縮略密鑰key–文本信息value對。第一縮略密鑰例如可以由一個以上的文字、數(shù)字或者它們的組合來構成。圖3中表示為第一縮略密鑰由具有10字節(jié)的大小的文字及數(shù)字的組合來構成,但是并不局限于此。此外,針對功能塊的文本信息例如可以是類的名稱、方法的名稱、數(shù)據庫的sql指令名稱、cassandra的查詢(query)指令名稱等、

如上所述,第一表生成部202可以對提取的各個文本信息應用哈希函數(shù)而獲取哈希值,并將所述哈希值設定為第一縮略密鑰,從而將由長的文字序列構成的文本信息縮略成大約為10字節(jié)的短的文字序列。通過這種方式生成的第一縮略密鑰可以被用作上述第二表的值(value)的一部分。

圖4是根據本發(fā)明的一實施例的第二表的示例圖。如圖4所示,第二表可以包含第二縮略密鑰key–呼叫流信息value對。如上所述,第二表生成部210可以在執(zhí)行目標服務的過程中將借助縮略密鑰輸出代碼而輸出的第一縮略密鑰按序排列,從而獲取呼叫流信息,并將哈希函數(shù)應用到按序排列的第一縮略密鑰(即,呼叫流信息),從而獲取哈希值。此時,按序排列的第一縮略密鑰的哈希值成為第二縮略密鑰,而且按序排列的第一縮略密鑰成為第二表的值。第二縮略密鑰例如可以由一個以上的文字、數(shù)字或者他們的組合來構成。在圖4中,示出為第二縮略密鑰由具有4字節(jié)的大小的文字及數(shù)字的組合來構成,但是并不局限于此。

圖5是示出根據本發(fā)明的一實施例的監(jiān)控服務器104的詳細構成的框圖。如圖5所示,監(jiān)控服務器104包括恢復部502、第一表存儲空間504以及第二表存儲空間506。

恢復部502利用存儲于第一表存儲空間504的第一表和存儲于第二表存儲空間506的第二表而獲取針對當前執(zhí)行的目標服務的剖析信息。如上所述,服務裝置102可以將存儲于服務裝置102的第一表和第二表實時地發(fā)送到監(jiān)控服務器104,并且從服務裝置102接收的第一表和第二表可以分別被存儲到第一表存儲空間504和第二表存儲空間506。因此,存儲于服務裝置102的第一表和第二表可以與存儲于監(jiān)控服務器104的第一表和第二表被實時同步。

恢復部502可以從服務裝置102接收針對當前執(zhí)行的目標服務的第二縮略密鑰以及針對所述目標服務的各個功能塊的性能測試結果值,并參照存儲于第一表存儲空間504的第一表和存儲于第二表存儲空間506的第二表而將從服務裝置102接收的第二縮略密鑰恢復為針對各個功能塊的文本信息。具體而言,恢復部502可以參照第二表而將從服務裝置102接收的第二縮略密鑰恢復成按序排列的第一縮略密鑰,并參照第一表而將各個所述第一縮略密鑰恢復成針對對應的功能塊的文本信息。在監(jiān)控服務器104恢復的各個文本信息可以與從服務裝置102接收的針對各個功能塊的性能測試結果值按序對應。因此,剖析信息可以包括在監(jiān)控服務器104恢復的針對各個功能塊的文本信息以及針對各個所述功能塊的性能測試結果值。

恢復部502可以將剖析信息發(fā)送到管理員終端108,并且管理員可以通過管理員終端108而對所述剖析信息進行監(jiān)控。

第一表存儲空間504是用于存儲從服務裝置102接收的第一表的存儲空間。服務裝置102可以每當獲取新的第一縮略密鑰–文本信息對時將存儲于服務裝置102的第一表更新,并將其發(fā)送到監(jiān)控服務器104。

第二表存儲空間506是用于存儲從服務裝置102接收的第二表的存儲空間。服務裝置102可以每當獲取新的第二縮略密鑰–呼叫流信息對時將存儲于服務裝置102的第二表更新,并將其發(fā)送到監(jiān)控服務器104。存儲于第一表存儲空間504的第一表以及存儲于第二表存儲空間506的第二表可以在恢復部502將從服務裝置102接收的第二縮略密鑰恢復成第一縮略密鑰及針對各個功能塊的文本信息時使用。

圖6是根據本發(fā)明的一實施例的剖析信息的示例圖。如圖6所示,剖析信息可以包括針對在監(jiān)控服務器104恢復的各個功能塊的文本信息以及針對各個所述功能塊的性能測試結果值。在此,性能測試結果值例如可以是針對借助性能測試代碼而獲取的各個功能塊的響應時間(ms)。監(jiān)控服務器104可以將剖析信息發(fā)送到管理員終端108,并且管理員可以通過管理員終端108而對所述剖析信息進行監(jiān)控。據此,管理員可以執(zhí)行針對目標服務的事務內的全部區(qū)間的監(jiān)控,據此,可以更為準確且迅速地找出事務內的瓶頸區(qū)間。

圖7是根據現(xiàn)有技術而成為監(jiān)控對象的java事務的示例圖,圖8是根據本發(fā)明的一實施例而成為監(jiān)控對象的java事務的示例圖。在此,假設為用戶為了被提供從服務裝置102提供的基于網頁(web)的服務而向服務裝置102請求了“會員加入”服務。

首先,如圖7所示,根據現(xiàn)有技術,僅可針對java事務內的預設的功能塊(例如,用戶id重復與否詢問sql執(zhí)行塊、實名認證方法執(zhí)行塊、會員信息插入sql執(zhí)行塊)進行監(jiān)控。即,根據現(xiàn)有技術,由于無法針對事務內的全部區(qū)間進行監(jiān)控,因此如果在監(jiān)控范圍之外發(fā)生問題,則無法進行針對所述問題的原因分析,據此,在找出事務內的正確的瓶頸區(qū)間時不可避免地存在困難。

接著,如圖8所示,根據本發(fā)明的實施例,可以將java事務內的全部區(qū)間以功能塊為單位進行監(jiān)控,據此,管理員可以更為準確且迅速地找出java事務內的瓶頸區(qū)間。

圖9是用于說明根據本發(fā)明的一實施例的服務監(jiān)控方法的流程圖。在圖示的流程圖中,將所述方法分成多個步驟而進行了記載,但是至少一部分步驟可以改變順序而執(zhí)行、與其他步驟結合而一同執(zhí)行、被省略、被劃分為細分步驟而執(zhí)行、或者添加未示出的一個以上的步驟而執(zhí)行。

在s902步驟中,管理員終端108可以將服務啟動消息發(fā)送到服務裝置102。

在s904步驟中,服務裝置102可以隨著從管理員終端108接收服務啟動消息而生成第一表。為此,服務裝置102可以將文字序列提取代碼分別插入到構成目標服務的各個功能塊,從而提取針對各個功能塊的文本信息,且對提取的文本信息分別應用哈希函數(shù)而獲取哈希值(第一縮略密鑰)。據此,服務裝置102可以生成包含第一縮略密鑰及文本信息的對的第一表,并將其存儲到內部數(shù)據庫。

在s906步驟中,服務裝置102可以將第一表發(fā)送到監(jiān)控服務器104。監(jiān)控服務器104可以將從服務裝置102接收的第一表存儲于內部數(shù)據庫,據此,存儲于服務裝置102的第一表和存儲于監(jiān)控服務器1040的第一表可以被同步。

在s908步驟中,服務裝置102向各個功能塊插入縮略密鑰輸出代碼及性能測試代碼。據此,如果在下述的s912及s914步驟中隨著目標服務的開始而執(zhí)行功能塊,則包含在所述功能塊的縮略密鑰輸出代碼可以輸出與所述功能塊對應的第一縮略密鑰,并且,包含在所述功能塊的性能測試代碼可以輸出所述功能塊的性能測試結果值。

在s910步驟中,服務裝置102從用戶終端106接收服務請求消息。

在s912步驟中,服務裝置102根據用戶終端106的服務請求消息而執(zhí)行對應于所述服務請求消息的服務。

在s914步驟中,隨著所述服務的事務內的功能塊按序地被執(zhí)行,可以借助縮略密鑰輸出代碼和性能測試代碼而輸出與所述功能塊對應的第一縮略密鑰及性能測試結果值。

在s916步驟中,服務裝置102利用所輸出的第一縮略密鑰來獲取第二縮略密鑰。具體而言,服務裝置102可以將所輸出的第一縮略密鑰按序排列而獲取功能塊的呼叫流信息,并將所獲取的呼叫流信息散列(hashing),從而獲取第二縮略密鑰。

在s918步驟中,服務裝置102生成包含第二縮略密鑰及呼叫流信息的對(pair)的第二表。此外,服務裝置102還可以詢問在s916步驟中獲取的第二縮略密鑰是否存在于第二表,之后如果在第二表中不存在所述第二縮略密鑰,則可以將所述第二縮略密鑰–呼叫流信息對添加到第二表,從而將第二表更新。

在s920步驟中,服務裝置102將存儲于服務裝置102的第二表、在s914及s916步驟中獲取的第二縮略密鑰及性能測試結果值發(fā)送到監(jiān)控服務器104。

在s922步驟中,監(jiān)控服務器104利用從服務裝置102接收的第一表和第二表而以功能塊為單位來獲取針對目標服務的剖析信息。具體而言,監(jiān)控服務器104可以參照從服務裝置102接收的第一表和所述第二表而將從服務裝置102接收的第二縮略密鑰恢復為針對各個功能塊的文本信息。據此,剖析信息可以包括在監(jiān)控服務器104恢復的針對各個功能塊的文本信息以及針對各個所述功能塊的性能測試結果值。

在s924步驟中,監(jiān)控服務器104將剖析信息發(fā)送到管理員終端108。據此,管理員可以執(zhí)行針對目標服務的事務內的全部區(qū)間的監(jiān)控,據此,可以更為準確且迅速地找出事務內的瓶頸區(qū)間。

此外,在s926步驟中,服務裝置102可以執(zhí)行基于用戶終端106的服務請求的響應。

另外,s902步驟至s908步驟可以在執(zhí)行目標服務之前執(zhí)行,s914步驟至s926步驟可以在執(zhí)行目標服務的過程中或者執(zhí)行目標服務之后執(zhí)行。

以上,通過具有代表性的實施例而對本發(fā)明進行了詳細的說明,然而在本發(fā)明所屬的技術領域中具有基本知識的人員可以理解上述的實施例可在不脫離本發(fā)明的范圍的限度內實現(xiàn)多種變形。因此,本發(fā)明的權利范圍不應局限于上述的實施例,本發(fā)明的權利范圍需要根據權利要求書的范圍以及與該權利要求書的范圍均等的范圍來確定。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
西宁市| 新乡县| 肥西县| 万宁市| 浦县| 军事| 洱源县| 凤凰县| 杭州市| 平和县| 黑河市| 博罗县| 淮北市| 通海县| 峨眉山市| 阿荣旗| 五大连池市| 廉江市| 田东县| 镇远县| 呈贡县| 广安市| 巴塘县| 堆龙德庆县| 闻喜县| 合川市| 西安市| 富锦市| 新余市| 灵川县| 新巴尔虎右旗| 亳州市| 和田市| 启东市| 辽宁省| 西盟| 蒲江县| 界首市| 鲜城| 吉首市| 平阳县|