本發(fā)明涉及計算機(jī)領(lǐng)域,尤其涉及一種信息監(jiān)控方法及裝置。
背景技術(shù):
分布式系統(tǒng)是個由多個互相連接的處理資源組成的計算機(jī)系統(tǒng),它們在整個系統(tǒng)的控制下協(xié)同執(zhí)行同一個任務(wù),最少依賴于集中的程序、數(shù)據(jù)或硬件。這些處理資源稱為節(jié)點(diǎn),所述節(jié)點(diǎn)可以是客戶端,也可以是服務(wù)器。
分布式監(jiān)控系統(tǒng)是對所述分布式系統(tǒng)中的各個節(jié)點(diǎn)進(jìn)行監(jiān)控的系統(tǒng)。所述分布式監(jiān)控系統(tǒng)一般包括信息采集系統(tǒng)和信息分析系統(tǒng)。所述信息采集系統(tǒng)布置在各個節(jié)點(diǎn)中,用于對各個節(jié)點(diǎn)內(nèi)部的方法之間的調(diào)用關(guān)系狀態(tài)信息進(jìn)行采集,并以日志的形式發(fā)送到信息分析系統(tǒng)中進(jìn)行分析。所述采集所述調(diào)用關(guān)系的代碼稱為監(jiān)控代碼,所述節(jié)點(diǎn)內(nèi)部的方法稱為被監(jiān)控代碼。
傳統(tǒng)的信息采集系統(tǒng)是將監(jiān)控代碼手動加入到節(jié)點(diǎn)的被監(jiān)控代碼中,當(dāng)節(jié)點(diǎn)的被監(jiān)控代碼數(shù)量較多,和/或節(jié)點(diǎn)的數(shù)量較多時,這種方式顯然效率非常低下。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明提供了一種信息監(jiān)控方法和裝置,提高了監(jiān)控代碼的植入效率。
本發(fā)明實施例提供了一種信息監(jiān)控方法,所述方法包括:
預(yù)先設(shè)置配置文件,所述配置文件中包括被監(jiān)控代碼的名稱和路徑;
根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中;
若所述被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
優(yōu)選的,所述將監(jiān)控代碼植入到所述被監(jiān)控代碼中包括:
將監(jiān)控代碼的起始語句插到所述被監(jiān)控代碼的首句之前,將所述監(jiān)控代碼的結(jié)束語句插到所述被監(jiān)控代碼的尾句之后。
優(yōu)選的,所述若所述被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息包括:
若所述被監(jiān)控代碼被調(diào)用,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被調(diào)用信息。
優(yōu)選的,所述被監(jiān)控代碼包括第一被監(jiān)控代碼和第二被監(jiān)控代碼;
所述若所述被監(jiān)控代碼被調(diào)用,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被調(diào)用信息包括:若所述第一被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述第一被監(jiān)控代碼的監(jiān)控代碼,以生成所述第一被監(jiān)控代碼的監(jiān)控日志,所述第一被監(jiān)控代碼的監(jiān)控日志中包括所述第一被監(jiān)控代碼的唯一標(biāo)識、所述第一被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間;
若所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調(diào)用,則運(yùn)行所述第二被監(jiān)控代碼的監(jiān)控代碼,以生成所述第二被監(jiān)控代碼的監(jiān)控日志,所述第二被監(jiān)控代碼的監(jiān)控日志中包括所述第二被監(jiān)控代碼的唯一標(biāo)識、所述第二被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間以及所述第一被監(jiān)控代碼的唯一標(biāo)識。
優(yōu)選的,所述方法還包括:
根據(jù)所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志建立所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼之間的調(diào)用關(guān)系。
優(yōu)選的,所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設(shè)備中或在不同的被監(jiān)控設(shè)備中。
優(yōu)選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設(shè)備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個線程執(zhí)行;
所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:與所述同一個線程對應(yīng)的線程標(biāo)識。
優(yōu)選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的被監(jiān)控設(shè)備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的線程中執(zhí)行;
所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:與所述不同的線程對應(yīng)的相同的線程標(biāo)識。
優(yōu)選的,所述被監(jiān)控代碼的路徑包括:
所述被監(jiān)控代碼的包路徑和/或所述被監(jiān)控代碼的類路徑。
本發(fā)明實施例還提供了一種信息監(jiān)控裝置,所述裝置包括:配置文件設(shè)置單元、代碼植入單元和被監(jiān)控信息生成單元;
其中,所述配置文件設(shè)置單元,用于預(yù)先設(shè)置配置文件,所述配置文件中包括被監(jiān)控代碼的名稱和路徑;
所述代碼植入單元,用于根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中;
所述被監(jiān)控信息生成單元,用于若所述被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
相對于現(xiàn)有技術(shù)手動將監(jiān)控代碼一個一個植入到被監(jiān)控代碼中的方式,本實施例只要在配置文件中配置了被監(jiān)控代碼的名稱和路徑,就能實現(xiàn)自動將監(jiān)控代碼植入到所述被監(jiān)控代碼中的目的,提高監(jiān)控代碼的植入效率。
附圖說明
為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明提供的一種信息監(jiān)控方法實施例一的流程圖;
圖2為本發(fā)明提供的一種信息監(jiān)控裝置實施例一的結(jié)構(gòu)框圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
方法實施例一:
參見圖1,該圖為本發(fā)明提供的一種信息監(jiān)控方法實施例一的流程圖。
本實施例提供的信息監(jiān)控方法包括如下步驟:
步驟S101:預(yù)先設(shè)置配置文件,所述配置文件中包括被監(jiān)控代碼的路徑。
所述配置文件中設(shè)置有被監(jiān)控代碼的名稱和路徑,所述被監(jiān)控代碼的路徑是指所述被監(jiān)控代碼在被監(jiān)控系統(tǒng)中存放的地方。若所述被監(jiān)控代碼是由java程序?qū)懙?,那么所述被監(jiān)控代碼的路徑可以是所述被監(jiān)控代碼的包路徑和/或所述被監(jiān)控代碼的類路徑。
例如,所述配置文件中包括的被監(jiān)控代碼的類路徑可以是:
regClazz=com.sohu.ott.api.service.AlbumService,com.sohu.ott.*
所述配置文件中包括的被監(jiān)控代碼名稱可以為:
regMethod=com.sohu.ott.solr.provider.service.impl.SolrV3ServiceImpl.queryByAlbumId
步驟S102:根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中。
在本實施例中,根據(jù)所述被監(jiān)控代碼的路徑和名稱就可以獲取到所述被監(jiān)控代碼。當(dāng)獲取到所述被監(jiān)控代碼后,將監(jiān)控代碼自動植入到被監(jiān)控代碼中。
具體的,在實際應(yīng)用中,所述監(jiān)控代碼可以具有起始語句和結(jié)束語句,即Start語句和end語句,那么在植入的過程中,可以將所述監(jiān)控代碼的起始語句插入到所述被監(jiān)控代碼的首句之前,將所述監(jiān)控代碼的結(jié)束語句插入到所述被監(jiān)控代碼的尾句之后,這樣,所述監(jiān)控代碼就可以監(jiān)控到所述被監(jiān)控代碼執(zhí)行的全部狀況。
相對于現(xiàn)有技術(shù)手動將監(jiān)控代碼一個一個植入到被監(jiān)控代碼中的方式,本實施例只要在配置文件中配置了被監(jiān)控代碼的名稱和路徑,就能實現(xiàn)自動將監(jiān)控代碼植入到所述被監(jiān)控代碼中的目的,提高監(jiān)控代碼的植入效率。
步驟S103:若所述被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
在本實施例中,若所述被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息。所述對所述被監(jiān)控代碼的被監(jiān)控信息可以有很多種。例如,可以監(jiān)控所述被監(jiān)控代碼是否成功執(zhí)行;或者,可以通過監(jiān)控所述被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間,得到二者之間的時間差,從而判斷所述被監(jiān)控代碼是否出現(xiàn)執(zhí)行超時情況;亦或者,還可以監(jiān)控所述被監(jiān)控代碼在執(zhí)行過程中出現(xiàn)的其他異常情況,例如網(wǎng)絡(luò)異常,數(shù)據(jù)庫異常,空指針異常,自定義異常等等。
當(dāng)所述被監(jiān)控代碼為多個時,還可以通過所述監(jiān)控代碼監(jiān)控所述被監(jiān)控代碼之間的相互調(diào)用關(guān)系。
具體的,假設(shè)所述被監(jiān)控代碼包括第一被監(jiān)控代碼和第二被監(jiān)控代碼。當(dāng)所述第一被監(jiān)控代碼被執(zhí)行時,運(yùn)行所述第一被監(jiān)控代碼的監(jiān)控代碼,以生成所述第一被監(jiān)控代碼的監(jiān)控日志,所述第一被監(jiān)控代碼的監(jiān)控日志中包括所述第一被監(jiān)控代碼的唯一標(biāo)識、所述第一被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間。
若所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調(diào)用,則運(yùn)行所述第二被監(jiān)控代碼的監(jiān)控代碼,以生成所述第二被監(jiān)控代碼的監(jiān)控日志,所述第二被監(jiān)控代碼的監(jiān)控日志中包括所述第二被監(jiān)控代碼的唯一標(biāo)識、所述第二被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間以及所述第一被監(jiān)控代碼的唯一標(biāo)識。
然后,可以根據(jù)所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志建立所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼之間的調(diào)用關(guān)系。
具體的,因為所述第一被監(jiān)控代碼調(diào)用了所述第二被監(jiān)控代碼,因此所述第一被監(jiān)控代碼的起始執(zhí)行時間早于所述第二被監(jiān)控代碼的起始執(zhí)行時間,且所述第一被監(jiān)控代碼的結(jié)束執(zhí)行時間晚于所述第二被監(jiān)控代碼的結(jié)束執(zhí)行時間。根據(jù)這個規(guī)律以及所述第二被監(jiān)控代碼的監(jiān)控日志中存儲的第一被監(jiān)控代碼的唯一標(biāo)識,確定所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調(diào)用的調(diào)用關(guān)系。
假設(shè)所述被監(jiān)控代碼還包括第三被監(jiān)控代碼,且所述第三被監(jiān)控代碼被所述第二被監(jiān)控代碼調(diào)用,則根據(jù)第二被監(jiān)控代碼的起始執(zhí)行時間早于所述第三被監(jiān)控代碼的起始執(zhí)行時間,且所述第二被監(jiān)控代碼的結(jié)束執(zhí)行時間晚于所述第三被監(jiān)控代碼的結(jié)束執(zhí)行時間的規(guī)律,以及所述第三被監(jiān)控代碼的監(jiān)控日志中存儲的第二被監(jiān)控代碼的唯一標(biāo)識,確定所述第三被監(jiān)控代碼被所述第二被監(jiān)控代碼調(diào)用的調(diào)用關(guān)系。
以此類推。
在實際應(yīng)用中,所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼可以在同一個被監(jiān)控設(shè)備中,也可以在不同的被監(jiān)控設(shè)備中。
若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設(shè)備X中,且由于所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼所調(diào)用,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼可以在同一個線程執(zhí)行,在該線程中,首先執(zhí)行所述第一被監(jiān)控代碼,然后執(zhí)行所述第二被監(jiān)控代碼。
一條調(diào)用鏈可以對應(yīng)一個線程,所述調(diào)用鏈?zhǔn)侵妇哂姓{(diào)用關(guān)系的各個被監(jiān)控代碼形成的鏈條。例如,在第一線程中,所述第一被監(jiān)控代碼在執(zhí)行的過程中調(diào)用了所述第二被監(jiān)控代碼,所述第二被監(jiān)控代碼在執(zhí)行的過程中調(diào)用了第三被監(jiān)控代碼,那么所述第一被監(jiān)控代碼、所述第二被監(jiān)控代碼和所述第三被監(jiān)控代碼形成一條調(diào)用鏈。
再例如,在第二線程中,所述第一被監(jiān)控代碼在執(zhí)行的過程中先后調(diào)用了所述第二被監(jiān)控代碼和第四被監(jiān)控代碼,那么所述第一被監(jiān)控代碼、所述第二被監(jiān)控代碼和所述第四被監(jiān)控代碼形成一條調(diào)用鏈。
為了區(qū)分不同的調(diào)用鏈,每條調(diào)用鏈均分別對應(yīng)一個自己的、獨(dú)特的線程標(biāo)識。所述線程標(biāo)識可以由線程建立的第一個被監(jiān)控代碼對應(yīng)的監(jiān)控代碼執(zhí)行時生成。
例如,在上兩個例子中,所述第一線程中第一個執(zhí)行的被監(jiān)控代碼為所述第一被監(jiān)控代碼,那么可以由所述第一被監(jiān)控代碼對應(yīng)的監(jiān)控代碼執(zhí)行生成與所述第一線程對應(yīng)的線程標(biāo)識A。
除了在所述第一被監(jiān)控代碼的與所述第一線程對應(yīng)的監(jiān)控日志M1中存儲有所述線程標(biāo)識A,在所述第一被監(jiān)控代碼調(diào)用所述第二被監(jiān)控代碼,進(jìn)而生成所述第二被監(jiān)控代碼的、與所述第一線程對應(yīng)的監(jiān)控日志N1時,可以將所述線程標(biāo)識A存儲在所述第二被監(jiān)控對象的監(jiān)控日志N1中。同理,所述第三被監(jiān)控代碼的監(jiān)控日志中也可以存儲有所述線程標(biāo)識A。
所述第二線程中第一個執(zhí)行的被監(jiān)控代碼也為所述第一被監(jiān)控代碼,那么可以由所述第一被監(jiān)控代碼對應(yīng)的監(jiān)控代碼執(zhí)行生成與所述第二線程對應(yīng)的線程標(biāo)識B。
除了在所述第一被監(jiān)控代碼的、與所述第二線程對應(yīng)的監(jiān)控日志M2中存儲有所述線程標(biāo)識B,在所述第一被監(jiān)控代碼調(diào)用所述第二被監(jiān)控代碼,進(jìn)而生成所述第二被監(jiān)控代碼的、與所述第二線程對應(yīng)的監(jiān)控日志N2時,可以將所述線程標(biāo)識B存儲在所述第二被監(jiān)控對象的監(jiān)控日志N2中。同理,所述第四被監(jiān)控代碼的監(jiān)控日志中也可以存儲有所述線程標(biāo)識B。
這樣,在對所述被監(jiān)控設(shè)備X的所有監(jiān)控日志進(jìn)行整理時,就可以根據(jù)所述線程標(biāo)識進(jìn)行分類,具有相同線程標(biāo)識的監(jiān)控日志為一類,然后再根據(jù)所述監(jiān)控日志中記錄的被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間形成所述調(diào)用鏈。
若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的被監(jiān)控設(shè)備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的線程中執(zhí)行。為了獲得所述第一被監(jiān)控代碼調(diào)用所述第二被監(jiān)控代碼的調(diào)用信息,可以通過同一個線程標(biāo)識將所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼“串聯(lián)”起來。
具體的,假設(shè)所述第一被監(jiān)控代碼在被監(jiān)控設(shè)備Y1的線程執(zhí)行,所述第二被監(jiān)控代碼在被監(jiān)控設(shè)備Y2的線程執(zhí)行。當(dāng)所述第一被監(jiān)控代碼執(zhí)行時,所述第一被監(jiān)控代碼的監(jiān)控代碼執(zhí)行,生成所述第一被監(jiān)控代碼的唯一標(biāo)識、所述被監(jiān)控設(shè)備Y1的線程的線程標(biāo)識C以及所述第一被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間。
當(dāng)所述第一被監(jiān)控代碼在執(zhí)行過程中需要調(diào)用第二被監(jiān)控代碼時,所述被監(jiān)控設(shè)備Y1將所述第一被監(jiān)控代碼對應(yīng)的線程標(biāo)識C發(fā)送到所述被監(jiān)控設(shè)備Y2,以使所述第二被監(jiān)控代碼在所述被監(jiān)控設(shè)備Y2的線程中執(zhí)行時,將所述線程標(biāo)識C存儲在所述第二被監(jiān)控代碼的監(jiān)控日志中。所述第一被監(jiān)控設(shè)備Y1和所述第二被監(jiān)控設(shè)備Y2之間可以之間進(jìn)行通訊,也可以借助于中間件進(jìn)行通信。
這樣,在對所述被監(jiān)控設(shè)備Y1和Y2的所有監(jiān)控日志進(jìn)行整理時,就可以根據(jù)所述線程標(biāo)識C將所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼關(guān)聯(lián)起來,然后再根據(jù)所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼各自的監(jiān)控日志中記錄的起始執(zhí)行時間和結(jié)束執(zhí)行時間得到所述第一被監(jiān)控代碼調(diào)用所述第二被監(jiān)控代碼的調(diào)用鏈。
在被監(jiān)控設(shè)備生成調(diào)用鏈之后,可以將所述調(diào)用鏈上傳到數(shù)據(jù)分析設(shè)備,所述數(shù)據(jù)分析設(shè)備可以統(tǒng)計在一定時間段內(nèi)相同調(diào)用鏈對應(yīng)的請求產(chǎn)生的次數(shù)和/或每條調(diào)用鏈的平均執(zhí)行時間,以進(jìn)行進(jìn)一步分析。
除了以調(diào)用鏈為維度進(jìn)行統(tǒng)計,還可以以被監(jiān)控代碼為維度進(jìn)行統(tǒng)計,即可以統(tǒng)計被監(jiān)控代碼被調(diào)用執(zhí)行的次數(shù)、非被調(diào)用執(zhí)行的次數(shù)等等。
基于以上實施例提供的一種信息監(jiān)控方法,本發(fā)明實施例還提供了一種信息監(jiān)控裝置,下面結(jié)合附圖來詳細(xì)說明其工作原理。
裝置實施例一
參見圖2,該圖為本發(fā)明提供的一種信息監(jiān)控裝置實施例一的結(jié)構(gòu)框圖。
本實施例提供的信息監(jiān)控裝置包括:
配置文件設(shè)置單元101、代碼植入單元102和被監(jiān)控信息生成單元103;
其中,所述配置文件設(shè)置單元101,用于預(yù)先設(shè)置配置文件,所述配置文件中包括被監(jiān)控代碼的名稱和路徑;
所述代碼植入單元102,用于根據(jù)所述被監(jiān)控代碼的名稱和路徑獲取所述被監(jiān)控代碼,并將監(jiān)控代碼植入到所述被監(jiān)控代碼中;
所述被監(jiān)控信息生成單元103,用于若所述被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被監(jiān)控信息,實現(xiàn)對所述被監(jiān)控代碼的監(jiān)控。
相對于現(xiàn)有技術(shù)手動將監(jiān)控代碼一個一個植入到被監(jiān)控代碼中的方式,本實施例只要在配置文件中配置了被監(jiān)控代碼的名稱和路徑,就能實現(xiàn)自動將監(jiān)控代碼植入到所述被監(jiān)控代碼中的目的,提高監(jiān)控代碼的植入效率。
可選的,所述代碼植入單元102,具體用于將監(jiān)控代碼的起始語句插到所述被監(jiān)控代碼的首句之前,將所述監(jiān)控代碼的結(jié)束語句插到所述被監(jiān)控代碼的尾句之后。
可選的,所述被監(jiān)控信息生成單元103,具體用于若所述被監(jiān)控代碼被調(diào)用,則運(yùn)行所述監(jiān)控代碼,以生成所述被監(jiān)控代碼的被調(diào)用信息。
可選的,所述被監(jiān)控代碼包括第一被監(jiān)控代碼和第二被監(jiān)控代碼;
所述若所述被監(jiān)控代碼被調(diào)用,則所述被監(jiān)控信息生成單元103,具體用于:
若所述第一被監(jiān)控代碼被執(zhí)行,則運(yùn)行所述第一被監(jiān)控代碼的監(jiān)控代碼,以生成所述第一被監(jiān)控代碼的監(jiān)控日志,所述第一被監(jiān)控代碼的監(jiān)控日志中包括所述第一被監(jiān)控代碼的唯一標(biāo)識、所述第一被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間;
若所述第二被監(jiān)控代碼被所述第一被監(jiān)控代碼調(diào)用,則運(yùn)行所述第二被監(jiān)控代碼的監(jiān)控代碼,以生成所述第二被監(jiān)控代碼的監(jiān)控日志,所述第二被監(jiān)控代碼的監(jiān)控日志中包括所述第二被監(jiān)控代碼的唯一標(biāo)識、所述第二被監(jiān)控代碼的起始執(zhí)行時間和結(jié)束執(zhí)行時間以及所述第一被監(jiān)控代碼的唯一標(biāo)識。
可選的,所述裝置還包括:調(diào)用關(guān)系建立單元,用于根據(jù)所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志建立所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼之間的調(diào)用關(guān)系。
可選的,所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設(shè)備中或在不同的被監(jiān)控設(shè)備中。
可選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個被監(jiān)控設(shè)備中,則所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在同一個線程執(zhí)行;
所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:與所述同一個線程對應(yīng)的線程標(biāo)識。
可選的,若所述第一被監(jiān)控代碼和所述第二被監(jiān)控代碼在不同的被監(jiān)控設(shè)備中,則所述第一被監(jiān)控代碼的監(jiān)控日志和所述第二被監(jiān)控代碼的監(jiān)控日志中還包括:全局標(biāo)識。
可選的,所述被監(jiān)控代碼的路徑包括:
所述被監(jiān)控代碼的包路徑和/或所述被監(jiān)控代碼的類路徑。
當(dāng)介紹本發(fā)明的各種實施例的元件時,冠詞“一”、“一個”、“這個”和“所述”都意圖表示有一個或多個元件。詞語“包括”、“包含”和“具有”都是包括性的并意味著除了列出的元件之外,還可以有其它元件。
需要說明的是,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法實施例的流程。其中,所述存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機(jī)存儲記憶體(Random Access Memory,RAM)等。
本說明書中的各個實施例均采用遞進(jìn)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點(diǎn)說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元及模塊可以是或者也可以不是物理上分開的。另外,還可以根據(jù)實際的需要選擇其中的部分或者全部單元和模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅是本發(fā)明的具體實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。