一種性能監(jiān)控方法、設(shè)備和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及應(yīng)用性能監(jiān)控技術(shù)領(lǐng)域,尤其涉及一種跨應(yīng)用調(diào)用的性能監(jiān)控方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的日益普及,越來(lái)越多的企業(yè)通過(guò)網(wǎng)絡(luò)服務(wù)器以及應(yīng)用服務(wù)器向用戶提供各種產(chǎn)品和服務(wù)。與傳統(tǒng)的企業(yè)內(nèi)使用的專業(yè)軟件不同,現(xiàn)在的系統(tǒng)采用分布式、虛擬化的架構(gòu)。例如企業(yè)會(huì)采用分布式的架構(gòu)部署其應(yīng)用服務(wù)器,多個(gè)不同的應(yīng)用部署在不同的應(yīng)用服務(wù)器處,因此通常需要調(diào)用在不同應(yīng)用服務(wù)器中的不同應(yīng)用來(lái)執(zhí)行一個(gè)事務(wù)。對(duì)于軟件的開發(fā)者和運(yùn)營(yíng)者來(lái)說(shuō),監(jiān)控這種涉及到多個(gè)應(yīng)用服務(wù)器上多個(gè)應(yīng)用的事務(wù)的性能更加困難。而且,開發(fā)者一般僅僅在發(fā)布產(chǎn)品前做有限的模擬性能測(cè)試,但這種測(cè)試的環(huán)境與實(shí)際商業(yè)運(yùn)行的環(huán)境相去甚遠(yuǎn),難以反映真實(shí)環(huán)境下可能出現(xiàn)的問(wèn)題。例如,在繁忙時(shí)段用戶可能在網(wǎng)站購(gòu)物時(shí)嘗試多次支付仍不能成功,或者在智能手機(jī)的應(yīng)用使用過(guò)程中出現(xiàn)沒有響應(yīng)的情況。然而,開發(fā)者卻不能及時(shí)獲得關(guān)于代碼性能的反饋,更無(wú)法了解問(wèn)題的起源并做出相應(yīng)修正。結(jié)果,性能體驗(yàn)的問(wèn)題會(huì)造成用戶滿意度下降,給企業(yè)營(yíng)收造成巨大損失。
[0003]在目前的性能監(jiān)控方式中,可通過(guò)分析用戶客戶端上報(bào)的日志來(lái)監(jiān)控系統(tǒng)性能數(shù)據(jù),但客戶端通常在故障時(shí)才上報(bào)日志,缺乏實(shí)時(shí)性,并且日志數(shù)據(jù)不夠精確,無(wú)法進(jìn)行代碼級(jí)別的追蹤。此外,也無(wú)法實(shí)現(xiàn)對(duì)執(zhí)行某個(gè)需要調(diào)用分布在不同應(yīng)用服務(wù)器上的不同應(yīng)用的事務(wù)的性能監(jiān)控。
[0004]因此,需要一種可更好地應(yīng)對(duì)用戶使用時(shí)的復(fù)雜場(chǎng)景的技術(shù)方案。
【發(fā)明內(nèi)容】
[0005]鑒于此,本發(fā)明提供了一種性能監(jiān)控方法,以力圖解決或至少緩解上面存在的問(wèn)題。
[0006]根據(jù)本發(fā)明的一個(gè)方面,提供了一種性能監(jiān)控方法,該方法包括:在第一應(yīng)用服務(wù)器處接收第一訪問(wèn)請(qǐng)求,該第一訪問(wèn)請(qǐng)求請(qǐng)求訪問(wèn)第一應(yīng)用服務(wù)器中的一個(gè)或者多個(gè)第一應(yīng)用;在第一應(yīng)用服務(wù)器處理第一訪問(wèn)請(qǐng)求之前,在第一應(yīng)用中插入第一監(jiān)控對(duì)象,以便在第一應(yīng)用處理第一訪問(wèn)請(qǐng)求時(shí),執(zhí)行該第一監(jiān)控對(duì)象以獲取第一應(yīng)用的執(zhí)行性能信息;當(dāng)?shù)谝粦?yīng)用服務(wù)器中的一個(gè)或者多個(gè)第一應(yīng)用在處理第一訪問(wèn)請(qǐng)求期間需要調(diào)用第二應(yīng)用服務(wù)器中的一個(gè)或者多個(gè)第二應(yīng)用時(shí),根據(jù)第一訪問(wèn)請(qǐng)求生成第二訪問(wèn)請(qǐng)求,并且將第二訪問(wèn)請(qǐng)求發(fā)送到第二應(yīng)用服務(wù)器,該第二訪問(wèn)請(qǐng)求包括第一訪問(wèn)請(qǐng)求的標(biāo)識(shí);將所獲取的第一應(yīng)用的執(zhí)行性能信息連同第一訪問(wèn)請(qǐng)求的標(biāo)識(shí)一起發(fā)送到性能統(tǒng)計(jì)服務(wù)器,以便性能統(tǒng)計(jì)服務(wù)器根據(jù)來(lái)自第一應(yīng)用服務(wù)器的執(zhí)行性能信息以及第二應(yīng)用服務(wù)器的執(zhí)行性能信息來(lái)對(duì)處理該第一訪問(wèn)請(qǐng)求的性能進(jìn)行分析。
[0007]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,還包括步驟:在第二應(yīng)用服務(wù)器處接收第二訪問(wèn)請(qǐng)求;在第二應(yīng)用服務(wù)器處理第二訪問(wèn)請(qǐng)求之前,在第二應(yīng)用中插入第二監(jiān)控對(duì)象,以便在第二應(yīng)用處理第二訪問(wèn)請(qǐng)求時(shí),執(zhí)行第二監(jiān)控對(duì)象以獲取第二應(yīng)用的執(zhí)行性能信息,該第二監(jiān)控對(duì)象包括第一訪問(wèn)請(qǐng)求的標(biāo)識(shí),以及所獲取的第二應(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ù)器。
[0008]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,在第一應(yīng)用中插入第一監(jiān)控對(duì)象的步驟之前還包括:根據(jù)預(yù)置的配置文件,判斷是否需要在第一應(yīng)用中插入第一監(jiān)控對(duì)象。
[0009]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,在第二應(yīng)用中插入第二監(jiān)控對(duì)象的步驟之前還包括:根據(jù)預(yù)置的配置文件,判斷是否需要在第二應(yīng)用中插入第二監(jiān)控對(duì)象。
[0010]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,在第一應(yīng)用中插入第一監(jiān)控對(duì)象的步驟還包括:檢測(cè)第一訪問(wèn)請(qǐng)求中是否包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí);若是,在第一應(yīng)用中插入第一監(jiān)控對(duì)象,以便在第一應(yīng)用處理第一訪問(wèn)請(qǐng)求時(shí),執(zhí)行第一監(jiān)控對(duì)象以獲取第一應(yīng)用的執(zhí)行性能信息,該第一監(jiān)控對(duì)象包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí),以及所獲取的第一應(yīng)用的執(zhí)行性能信息中包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)。
[0011]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求為http訪問(wèn)請(qǐng)求,其中標(biāo)識(shí)位于對(duì)應(yīng)訪問(wèn)請(qǐng)求的header字段中。
[0012]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求均包括時(shí)間戳。
[0013]可選地,在根據(jù)本發(fā)明的性能監(jiān)控方法中,第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)均包括該訪問(wèn)請(qǐng)求對(duì)應(yīng)的應(yīng)用服務(wù)器的標(biāo)識(shí)。
[0014]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種性能監(jiān)控裝置,駐留在第一應(yīng)用服務(wù)器中,該裝置包括:插裝對(duì)象模塊,適于在其所駐留的第一應(yīng)用服務(wù)器處接收第一訪問(wèn)請(qǐng)求,該第一訪問(wèn)請(qǐng)求請(qǐng)求訪問(wèn)第一應(yīng)用服務(wù)器中的一個(gè)或者多個(gè)第一應(yīng)用;還適于在第一應(yīng)用服務(wù)器處理第一訪問(wèn)請(qǐng)求之前,在第一應(yīng)用中插入第一監(jiān)控對(duì)象,以便在第一應(yīng)用處理第一訪問(wèn)請(qǐng)求時(shí),執(zhí)行該第一監(jiān)控對(duì)象以獲取第一應(yīng)用的執(zhí)行性能信息;請(qǐng)求生成模塊,適于當(dāng)?shù)谝粦?yīng)用服務(wù)器中的一個(gè)或者多個(gè)第一應(yīng)用在處理第一訪問(wèn)請(qǐng)求期間需要調(diào)用耦接到第一應(yīng)用服務(wù)器的第二應(yīng)用服務(wù)器中的一個(gè)或者多個(gè)第二應(yīng)用時(shí),根據(jù)第一訪問(wèn)請(qǐng)求生成第二訪問(wèn)請(qǐng)求,并且將第二訪問(wèn)請(qǐng)求發(fā)送到第二應(yīng)用服務(wù)器,該第二訪問(wèn)請(qǐng)求包括第一訪問(wèn)請(qǐng)求的標(biāo)識(shí);以及上傳數(shù)據(jù)模塊,適于將所獲取的第一應(yīng)用的執(zhí)行性能信息連同第一訪問(wèn)請(qǐng)求的標(biāo)識(shí)一起發(fā)送到性能統(tǒng)計(jì)服務(wù)器,以便性能統(tǒng)計(jì)服務(wù)器根據(jù)來(lái)自第一應(yīng)用服務(wù)器的執(zhí)行性能信息以及第二應(yīng)用服務(wù)器的執(zhí)行性能信息來(lái)對(duì)處理該第一訪問(wèn)請(qǐng)求的性能進(jìn)行分析。
[0015]可選地,在根據(jù)本發(fā)明的性能監(jiān)控裝置中,插裝對(duì)象模塊還包括檢測(cè)模塊,該檢測(cè)模塊適于根據(jù)預(yù)置的配置文件,判斷是否需要在第一應(yīng)用中插入第一監(jiān)控對(duì)象。
[0016]可選地,在根據(jù)本發(fā)明的性能監(jiān)控裝置中,檢測(cè)模塊適于檢測(cè)第一訪問(wèn)請(qǐng)求中是否包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí),若是,則在第一應(yīng)用中插入第一監(jiān)控對(duì)象,以便在第一應(yīng)用處理第一訪問(wèn)請(qǐng)求時(shí),執(zhí)行第一監(jiān)控對(duì)象以獲取第一應(yīng)用的執(zhí)行性能信息,該第一監(jiān)控對(duì)象包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí),以及所獲取的第一應(yīng)用的執(zhí)行性能信息中包括第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)。
[0017]可選地,在根據(jù)本發(fā)明的性能監(jiān)控裝置中,第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求為http訪問(wèn)請(qǐng)求,其中標(biāo)識(shí)位于對(duì)應(yīng)訪問(wèn)請(qǐng)求的header字段中。
[0018]可選地,在根據(jù)本發(fā)明的性能監(jiān)控裝置中,第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求均包括時(shí)間戳。
[0019]可選地,在根據(jù)本發(fā)明的性能監(jiān)控裝置中,第一訪問(wèn)請(qǐng)求、第二訪問(wèn)請(qǐng)求和第三訪問(wèn)請(qǐng)求的標(biāo)識(shí)均包括該訪問(wèn)請(qǐng)求對(duì)應(yīng)的應(yīng)用服務(wù)器的標(biāo)識(shí)。
[0020]根據(jù)本發(fā)明的還有一個(gè)方面,提供了一種性能監(jiān)控系統(tǒng),該系統(tǒng)包括:一個(gè)或多個(gè)應(yīng)用服務(wù)器,該一個(gè)或多個(gè)應(yīng)用服務(wù)器中駐留有根據(jù)本發(fā)明的性能監(jiān)控裝置;以及性能監(jiān)控服務(wù)器,適于接收一個(gè)或多個(gè)應(yīng)用服務(wù)器中性能監(jiān)控裝置上傳的執(zhí)行性能信息,并根據(jù)來(lái)自一個(gè)或多個(gè)應(yīng)用服務(wù)器的執(zhí)行性能信息對(duì)處理訪問(wèn)請(qǐng)求的性能進(jìn)行分析。
[0021]根據(jù)本發(fā)明的性能監(jiān)控方案,通過(guò)在處理跨應(yīng)用訪問(wèn)請(qǐng)求過(guò)程中調(diào)用的多個(gè)不同應(yīng)用服務(wù)器上的多個(gè)應(yīng)用中插裝監(jiān)控對(duì)象,在該應(yīng)用處理其接收的訪問(wèn)請(qǐng)求時(shí)執(zhí)行監(jiān)控對(duì)象獲得對(duì)應(yīng)應(yīng)用的執(zhí)行性能信息,從而實(shí)現(xiàn)了代碼級(jí)別的性能追蹤。同時(shí),通過(guò)將訪問(wèn)請(qǐng)求的標(biāo)識(shí)插裝至對(duì)應(yīng)應(yīng)用的監(jiān)控對(duì)象中,獲得包含該訪問(wèn)請(qǐng)求標(biāo)識(shí)的執(zhí)行性能信息,并將其上傳至性能統(tǒng)計(jì)服務(wù)器,以便性能統(tǒng)計(jì)服務(wù)器根據(jù)來(lái)自多個(gè)應(yīng)用服務(wù)器的執(zhí)行性能信息及其標(biāo)識(shí)來(lái)對(duì)處理跨應(yīng)用訪問(wèn)請(qǐng)求的性能進(jìn)行分析,實(shí)現(xiàn)了對(duì)跨應(yīng)用調(diào)用訪問(wèn)請(qǐng)求的性能監(jiān)控。
【附圖說(shuō)明】
[0022]為了實(shí)現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來(lái)描述某些說(shuō)明性方面,這些方面指示了可以實(shí)踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護(hù)的主題的范圍內(nèi)。通過(guò)結(jié)合附圖閱讀下面的詳細(xì)描述,本公開的上述以及其它目的、特征和優(yōu)勢(shì)將變得