更加明顯。遍及本公開(kāi),相同的附圖標(biāo)記通常指代相同的部件或元素。
[0023]圖1示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的性能監(jiān)控系統(tǒng)100的結(jié)構(gòu)框圖;
[0024]圖2示出了根據(jù)本發(fā)明的另一個(gè)示例性實(shí)施例的性能監(jiān)控系統(tǒng)100的結(jié)構(gòu)框圖;
[0025]圖3示出了根據(jù)本發(fā)明的還有一個(gè)示例性實(shí)施例的性能監(jiān)控系統(tǒng)100的結(jié)構(gòu)框圖;
[0026]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的性能監(jiān)控裝置200的結(jié)構(gòu)示意圖;以及
[0027]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的性能監(jiān)控方法的流程圖;以及
[0028]圖6示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的性能監(jiān)控方法的流程圖。
【具體實(shí)施方式】
[0029]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0030]圖1是根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的性能監(jiān)控系統(tǒng)100的結(jié)構(gòu)框圖。性能監(jiān)控系統(tǒng)100可以包括性能監(jiān)控服務(wù)器110以及一個(gè)或多個(gè)應(yīng)用服務(wù)器120。其中,應(yīng)用服務(wù)器上駐留有根據(jù)本發(fā)明的性能監(jiān)控裝置200。性能監(jiān)控服務(wù)器110以及一個(gè)或多個(gè)應(yīng)用服務(wù)器120之間通過(guò)網(wǎng)絡(luò)連接。
[0031]圖2示出了根據(jù)本發(fā)明的性能監(jiān)控系統(tǒng)100的又一個(gè)實(shí)施例結(jié)構(gòu)框圖。如圖2所示,性能監(jiān)控系統(tǒng)100可以包括性能監(jiān)控服務(wù)器110、第一應(yīng)用服務(wù)器120以及第二應(yīng)用服務(wù)器120。性能監(jiān)控服務(wù)器110、第一應(yīng)用服務(wù)器120和第二應(yīng)用服務(wù)器120之間通過(guò)網(wǎng)絡(luò)連接。其中,第一應(yīng)用服務(wù)器120上存儲(chǔ)有一個(gè)或多個(gè)第一應(yīng)用,第二應(yīng)用服務(wù)器120上存儲(chǔ)有一個(gè)或多個(gè)第二應(yīng)用,以便應(yīng)用服務(wù)器接收到用戶(hù)的訪問(wèn)請(qǐng)求時(shí)調(diào)用相應(yīng)的應(yīng)用進(jìn)行處理。第一應(yīng)用服務(wù)器120和第二應(yīng)用服務(wù)器120上均駐留有根據(jù)本發(fā)明的性能監(jiān)控裝置200。
[0032]圖4示出了根據(jù)本發(fā)明一個(gè)示例性實(shí)施例的性能監(jiān)控裝置200的結(jié)構(gòu)框圖,性能監(jiān)控裝置200可以包括插裝對(duì)象模塊220、生成請(qǐng)求模塊240以及上傳數(shù)據(jù)模塊260。
[0033]用戶(hù)可以通過(guò)web瀏覽器或應(yīng)用客戶(hù)端經(jīng)由網(wǎng)絡(luò)訪問(wèn)第一應(yīng)用服務(wù)器120。性能監(jiān)控裝置200包含在第一應(yīng)用服務(wù)器120中,其中的插裝對(duì)象模塊220接收第一訪問(wèn)請(qǐng)求,并確定為了響應(yīng)和處理該第一訪問(wèn)請(qǐng)求,需要調(diào)用第一應(yīng)用服務(wù)器中的那些第一應(yīng)用。第一訪問(wèn)請(qǐng)求可以是經(jīng)由http (s)協(xié)議而傳輸?shù)降谝粦?yīng)用服務(wù)器120。
[0034]插裝對(duì)象模塊220在第一應(yīng)用服務(wù)器120處理第一訪問(wèn)請(qǐng)求之前,在第一應(yīng)用中插入第一監(jiān)控對(duì)象,以便在第一應(yīng)用處理第一訪問(wèn)請(qǐng)求時(shí),執(zhí)行第一監(jiān)控對(duì)象以獲取第一應(yīng)用的執(zhí)行性能信息。
[0035]其中插裝對(duì)象模塊220還可以包括檢測(cè)模塊。在第一應(yīng)用服務(wù)器處理第一訪問(wèn)請(qǐng)求之前,檢測(cè)模塊根據(jù)預(yù)置的配置文件,判斷是否需要在第一應(yīng)用中插入第一監(jiān)控對(duì)象。具體來(lái)說(shuō),當(dāng)檢測(cè)模塊檢測(cè)到第一訪問(wèn)請(qǐng)求請(qǐng)求訪問(wèn)的第一應(yīng)用中的需要被監(jiān)控的某些類(lèi)或方法要被加載時(shí),插裝對(duì)象模塊220在該第一應(yīng)用中插入第一監(jiān)控對(duì)象。該第一監(jiān)控對(duì)象通常是一些監(jiān)控代碼。當(dāng)?shù)谝粦?yīng)用為了處理第一訪問(wèn)請(qǐng)求,執(zhí)行第一應(yīng)用中的某些類(lèi)或方法時(shí),同時(shí)也執(zhí)行了插裝在其中的第一監(jiān)控對(duì)象,第一監(jiān)控對(duì)象從而可以獲取該第一應(yīng)用的執(zhí)行性能信息,例如執(zhí)行時(shí)間、線程信息、錯(cuò)誤信息等。需要被監(jiān)控的某些類(lèi)或方法可以存儲(chǔ)在預(yù)置的配置文件中,該配置文件一般為XML或者YML格式。應(yīng)當(dāng)注意的是,需要被監(jiān)控的對(duì)象還可以是接口、過(guò)濾器或其定義的方法,還可以由用戶(hù)根據(jù)根據(jù)實(shí)際情況配置,本發(fā)明對(duì)此不做限制。
[0036]如圖2所示,性能監(jiān)控系統(tǒng)100還可以包括第三應(yīng)用服務(wù)器120,與第一應(yīng)用服務(wù)器120和第二應(yīng)用服務(wù)器120相同,第三應(yīng)用服務(wù)器上存儲(chǔ)有一個(gè)或多個(gè)第三應(yīng)用,并同樣駐留有性能監(jiān)控裝置200。
[0037]插裝對(duì)象模塊220在第一應(yīng)用中插入第一監(jiān)控對(duì)象時(shí),檢測(cè)模塊檢測(cè)第一訪問(wèn)請(qǐng)求中是否包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí),該標(biāo)識(shí)可以是應(yīng)用id或sess1n id等信息,通??捎糜谖ㄒ坏刈R(shí)別其對(duì)應(yīng)的應(yīng)用以及應(yīng)用服務(wù)器。例如當(dāng)應(yīng)用接收到基于http (S)協(xié)議的請(qǐng)求時(shí),可以檢查請(qǐng)求的header字段中是否存在先前應(yīng)用的id。
[0038]若第一訪問(wèn)請(qǐng)求中包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí),則插裝對(duì)象模塊220在將要插入第一應(yīng)用的第一監(jiān)控對(duì)象中寫(xiě)入第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)。而后,第一應(yīng)用處理第一訪問(wèn)請(qǐng)求、執(zhí)行第一監(jiān)控對(duì)象,插裝對(duì)象模塊220獲取第一應(yīng)用的執(zhí)行性能信息,所獲取的第一應(yīng)用的執(zhí)行性能信息中也包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)。
[0039]通常地,企業(yè)會(huì)采用分布式的架構(gòu)部署其應(yīng)用服務(wù)器,多個(gè)不同的應(yīng)用部署在不同的應(yīng)用服務(wù)器。因此通常需要調(diào)用在不同應(yīng)用服務(wù)器中的不同應(yīng)用來(lái)處理一個(gè)訪問(wèn)請(qǐng)求。當(dāng)?shù)谝粦?yīng)用服務(wù)器120中的一個(gè)或者多個(gè)第一應(yīng)用在處理第一訪問(wèn)請(qǐng)求期間需要調(diào)用第二應(yīng)用服務(wù)器120中的一個(gè)或者多個(gè)第二應(yīng)用時(shí),生成請(qǐng)求模塊240根據(jù)第一訪問(wèn)請(qǐng)求生成第二訪問(wèn)請(qǐng)求,并且將第二訪問(wèn)請(qǐng)求發(fā)送到第二應(yīng)用服務(wù)器120。第二訪問(wèn)請(qǐng)求包括第一訪問(wèn)請(qǐng)求的標(biāo)識(shí)。第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求通常是基于http (s)協(xié)議的請(qǐng)求,生成請(qǐng)求模塊240將第一訪問(wèn)請(qǐng)求的標(biāo)識(shí)寫(xiě)入第三訪問(wèn)請(qǐng)求的header字段中。第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)可以是應(yīng)用id或sess1n id等信息,通常可用于唯一地識(shí)別其對(duì)應(yīng)的應(yīng)用以及應(yīng)用服務(wù)器。該標(biāo)識(shí)還可以包括訪問(wèn)請(qǐng)求對(duì)應(yīng)的應(yīng)用服務(wù)器的標(biāo)識(shí)和時(shí)間戳。
[0040]第二應(yīng)用服務(wù)器120接收來(lái)自第一應(yīng)用服務(wù)器120的第二訪問(wèn)請(qǐng)求,駐留在第二應(yīng)用服務(wù)器120中的性能監(jiān)控裝置200在第二應(yīng)用服務(wù)器120處理第二訪問(wèn)請(qǐng)求之前,在第二應(yīng)用中插入第二監(jiān)控對(duì)象,以便在第二應(yīng)用處理第二訪問(wèn)請(qǐng)求時(shí),執(zhí)行所述第二監(jiān)控對(duì)象以獲取第二應(yīng)用的執(zhí)行性能信息??芍摰诙O(jiān)控對(duì)象包括第一訪問(wèn)請(qǐng)求的標(biāo)識(shí),以及所獲取的第二應(yīng)用的執(zhí)行性能信息中包括第一訪問(wèn)請(qǐng)求的標(biāo)識(shí)。第二應(yīng)用服務(wù)器120結(jié)構(gòu)同第一應(yīng)用服務(wù)器相同,在結(jié)合圖3對(duì)第一應(yīng)用服務(wù)器120中性能監(jiān)控裝置200的具體描述中已經(jīng)對(duì)處理訪問(wèn)請(qǐng)求的各步驟進(jìn)行了詳細(xì)說(shuō)明,此處不再贅述。
[0041]第一應(yīng)用和第二應(yīng)用處理完相應(yīng)的訪問(wèn)請(qǐng)求后,第一應(yīng)用服務(wù)器120中的上傳數(shù)據(jù)模塊260和第二應(yīng)用服務(wù)器120中的上傳數(shù)據(jù)模塊260將所獲取到的第一應(yīng)用的執(zhí)行性能信息連同第一訪問(wèn)請(qǐng)求的標(biāo)識(shí)、以及第二應(yīng)用的執(zhí)行性能信息連同第二訪問(wèn)請(qǐng)求的標(biāo)識(shí)一起發(fā)送至性能統(tǒng)計(jì)服務(wù)器110。
[0042]性能統(tǒng)計(jì)服務(wù)器110接收來(lái)自第一應(yīng)用服務(wù)器120的執(zhí)行性能信息和第一訪問(wèn)請(qǐng)求的標(biāo)識(shí),以及來(lái)自第二應(yīng)用服務(wù)器120的執(zhí)行性能信息和第二訪問(wèn)請(qǐng)求的標(biāo)識(shí),并根據(jù)標(biāo)識(shí)結(jié)合來(lái)自第一應(yīng)用服務(wù)器120的執(zhí)行性能信息和第二應(yīng)用服務(wù)器120的執(zhí)行性能信息來(lái)對(duì)處理第一訪問(wèn)請(qǐng)求的性能進(jìn)行分析。
[0043]圖3示出了根據(jù)本發(fā)明的性能監(jiān)控系統(tǒng)100的還有一個(gè)實(shí)施例的示意圖。該性能監(jiān)控系統(tǒng)100包括性能監(jiān)控服務(wù)器110、由企業(yè)部署和運(yùn)營(yíng)的企業(yè)服務(wù)器和多個(gè)用戶(hù)計(jì)算終端。其中,企業(yè)服務(wù)器可以向用戶(hù)計(jì)算終端提供各種服務(wù),如Web和應(yīng)用服務(wù)。對(duì)于企業(yè)而言,其可能會(huì)具有多個(gè)不同的應(yīng)用部署在不同的應(yīng)用服務(wù)器,甚至部署在不同的企業(yè)服務(wù)器中,對(duì)于企業(yè)的某個(gè)業(yè)務(wù)而言,在業(yè)務(wù)處理期間,需要調(diào)用不同的應(yīng)用。
[0044]用戶(hù)計(jì)算終端上安裝有web瀏覽器和/或app應(yīng)用客戶(hù)端,通過(guò)網(wǎng)絡(luò)訪問(wèn)一個(gè)或者多個(gè)企業(yè)服務(wù)器,一個(gè)或者多個(gè)企業(yè)服務(wù)器的web服務(wù)器接收到用戶(hù)計(jì)算終端的http(s)請(qǐng)求后,在該企業(yè)服務(wù)器上的應(yīng)用服務(wù)器120執(zhí)行相應(yīng)的業(yè)務(wù)并將結(jié)果通過(guò)web服務(wù)器返回給用戶(hù)計(jì)算終端。
[0045]各企業(yè)服務(wù)器的應(yīng)用服務(wù)器120中均嵌入有性能監(jiān)控裝置200,該裝