監(jiān)控系統(tǒng)和業(yè)務(wù)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體上涉及計算機(jī)系統(tǒng),更具體地,涉及業(yè)務(wù)系統(tǒng)和對該業(yè)務(wù)系統(tǒng)進(jìn)行監(jiān)控的監(jiān)控系統(tǒng)。
【背景技術(shù)】
[0002]隨著計算機(jī)系統(tǒng)在越來越復(fù)雜的應(yīng)用領(lǐng)域中的使用,一個業(yè)務(wù)流程往往要同時跨越多個業(yè)務(wù)系統(tǒng)才能完成。例如,消費(fèi)者在電商平臺的一個購買業(yè)務(wù)流程,就可能涉及到商品展示業(yè)務(wù)系統(tǒng)、訂單業(yè)務(wù)系統(tǒng)、付費(fèi)業(yè)務(wù)系統(tǒng)、庫存管理業(yè)務(wù)系統(tǒng)、物流業(yè)務(wù)系統(tǒng)等,每個業(yè)務(wù)系統(tǒng)對應(yīng)于業(yè)務(wù)流程中涉及的一項業(yè)務(wù)。為了實現(xiàn)對業(yè)務(wù)流程的全面高效監(jiān)控,需要跨越多個系統(tǒng),追蹤整個業(yè)務(wù)調(diào)用鏈數(shù)據(jù),綜合分析并及時預(yù)警,并高效精準(zhǔn)地定位各業(yè)務(wù)系統(tǒng)的線上問題。
[0003]現(xiàn)有技術(shù)使用統(tǒng)一監(jiān)控系統(tǒng)解決該問題,在每個業(yè)務(wù)系統(tǒng)服務(wù)器上安裝日志搜集器,并在每個業(yè)務(wù)系統(tǒng)中嵌入監(jiān)控系統(tǒng)的客戶端,在該業(yè)務(wù)系統(tǒng)的接口被調(diào)用時生成接口調(diào)用日志,存儲在本地。每個業(yè)務(wù)系統(tǒng)服務(wù)器上的日志搜集器定時將本地日志上傳監(jiān)控中心。監(jiān)控中心實時分析日志數(shù)據(jù),并作出相應(yīng)閾值預(yù)警。這種系統(tǒng)監(jiān)控沒有整體概念,無法監(jiān)控每個業(yè)務(wù)流程跨越的多個系統(tǒng)之間的調(diào)用鏈。由于監(jiān)控平臺上的配置缺失,只要客戶端生成日志,日志搜集器都會將其推送到監(jiān)控中心,浪費(fèi)帶寬資源和存儲資源。業(yè)務(wù)系統(tǒng)出現(xiàn)問題后,報警的業(yè)務(wù)系統(tǒng)不一定是真正產(chǎn)生錯誤的業(yè)務(wù)系統(tǒng),有很多情況是一些被依賴的其他業(yè)務(wù)系統(tǒng)產(chǎn)生了問題,而在這個業(yè)務(wù)系統(tǒng)中暴露的出來,所以,還要靠人工逐一排查這個業(yè)務(wù)系統(tǒng)所依賴的其他業(yè)務(wù)系統(tǒng),問題定位速度緩慢。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的一個方面提供了一種監(jiān)控系統(tǒng),包括:調(diào)用鏈模型存儲單元,存儲一個或多個業(yè)務(wù)調(diào)用鏈模型,每個業(yè)務(wù)調(diào)用鏈模型按照相應(yīng)的一個業(yè)務(wù)流程中涉及的各業(yè)務(wù)系統(tǒng)中被調(diào)用的接口的上下游關(guān)系記載了所述被調(diào)用的接口;以及日志存儲單元,存儲業(yè)務(wù)調(diào)用鏈模型中的接口的接口調(diào)用日志。
[0005]本發(fā)明的另一個方面提供了一種業(yè)務(wù)系統(tǒng),包括:調(diào)用鏈模型片段存儲單元,存儲與該業(yè)務(wù)系統(tǒng)有關(guān)的一個或多個業(yè)務(wù)調(diào)用鏈模型片段,其中每個業(yè)務(wù)調(diào)用鏈模型按照相應(yīng)的一個業(yè)務(wù)流程中涉及的各業(yè)務(wù)系統(tǒng)中被調(diào)用的接口的上下游關(guān)系記載了所述被調(diào)用的接口,每個業(yè)務(wù)調(diào)用鏈模型片段是相應(yīng)的業(yè)務(wù)調(diào)用鏈模型中記載了該業(yè)務(wù)系統(tǒng)的被調(diào)用接口的部分;日志生成單元,在業(yè)務(wù)系統(tǒng)的接口被調(diào)用時,生成接口調(diào)用日志;以及日志上傳單元,將包含于業(yè)務(wù)調(diào)用鏈模型片段中的接口的接口調(diào)用日志上傳到監(jiān)控系統(tǒng)。
【附圖說明】
[0006]為了更完整地理解本發(fā)明及其優(yōu)勢,現(xiàn)在將參考結(jié)合附圖的以下描述,其中:
[0007]圖1示意性示出了根據(jù)本發(fā)明實施例的監(jiān)控系統(tǒng)和業(yè)務(wù)系統(tǒng)的框圖。
[0008]圖2示意性示出了根據(jù)本發(fā)明實施例的業(yè)務(wù)監(jiān)控流程圖。
【具體實施方式】
[0009]根據(jù)結(jié)合附圖對本發(fā)明示例性實施例的以下詳細(xì)描述,本發(fā)明的其它方面、優(yōu)勢和突出特征對于本領(lǐng)域技術(shù)人員將變得顯而易見。
[0010]在本發(fā)明中,術(shù)語“包括”和“含有”及其派生詞意為包括而非限制;術(shù)語“或”是包含性的,意為和/或。
[0011]在本說明書中,下述用于描述本發(fā)明原理的各種實施例只是說明,不應(yīng)該以任何方式解釋為限制發(fā)明的范圍。參照附圖的下述描述用于幫助全面理解由權(quán)利要求及其等同物限定的本發(fā)明的示例性實施例。下述描述包括多種具體細(xì)節(jié)來幫助理解,但這些細(xì)節(jié)應(yīng)認(rèn)為僅僅是示例性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)認(rèn)識到,在不背離本發(fā)明的范圍和精神的情況下,可以對本文中描述的實施例進(jìn)行多種改變和修改。此外,為了清楚和簡潔起見,省略了公知功能和結(jié)構(gòu)的描述。此外,貫穿附圖,相同參考數(shù)字用于相似功能和操作。
[0012]圖1示意性示出了根據(jù)本發(fā)明實施例的監(jiān)控系統(tǒng)100和業(yè)務(wù)系統(tǒng)200的框圖。
[0013]如圖1所示,監(jiān)控系統(tǒng)100包括調(diào)用鏈模型存儲單元110和日志存儲單元120。
[0014]調(diào)用鏈模型存儲單元110存儲一個或多個業(yè)務(wù)調(diào)用鏈模型,每個業(yè)務(wù)調(diào)用鏈模型按照相應(yīng)的一個業(yè)務(wù)流程中涉及的各業(yè)務(wù)系統(tǒng)中被調(diào)用的接口的上下游關(guān)系記載了所述被調(diào)用的接口。例如,調(diào)用鏈模型存儲單元110可以存儲購物業(yè)務(wù)流程的調(diào)用鏈模型,購物業(yè)務(wù)流程所涉及的各業(yè)務(wù)系統(tǒng)(例如包括商品展示業(yè)務(wù)系統(tǒng)、訂單業(yè)務(wù)系統(tǒng)、付費(fèi)業(yè)務(wù)系統(tǒng)、庫存管理業(yè)務(wù)系統(tǒng)、物流業(yè)務(wù)系統(tǒng)等)中被調(diào)用的接口按照上下游關(guān)系被記載在該模型中。這樣,基于購物業(yè)務(wù)流程的調(diào)用鏈模型,可以知道所涉及的每個業(yè)務(wù)系統(tǒng)中的哪些接口被調(diào)用。
[0015]日志存儲單元120存儲業(yè)務(wù)調(diào)用鏈模型中的接口的接口調(diào)用日志。
[0016]根據(jù)本發(fā)明的實施例,監(jiān)控系統(tǒng)100還可以包括調(diào)用鏈模型存取單元130。系統(tǒng)負(fù)責(zé)人可以經(jīng)由該調(diào)用鏈模型存取單元130對調(diào)用鏈模型存儲單元110中存儲的調(diào)用鏈模型進(jìn)行添加、刪除、或修改。當(dāng)調(diào)用鏈模型被添加、刪除、或修改時,監(jiān)控系統(tǒng)100將反映了該添加、刪除、或修改的相應(yīng)變更消息經(jīng)由該調(diào)用鏈模型存取單元130發(fā)送到業(yè)務(wù)系統(tǒng)200。在業(yè)務(wù)系統(tǒng)200啟動時,業(yè)務(wù)系統(tǒng)200可以經(jīng)由該調(diào)用鏈模型存取單元130獲取與自身接口有關(guān)的業(yè)務(wù)調(diào)用鏈模型片段。由于一個業(yè)務(wù)調(diào)用鏈模型可能涉及幾個業(yè)務(wù)系統(tǒng),每個業(yè)務(wù)系統(tǒng)只需獲取記載了其自身的被調(diào)用接口的片段,而無需獲取其他業(yè)務(wù)系統(tǒng)的片段。當(dāng)然,每個業(yè)務(wù)系統(tǒng)也可以獲取并存儲與該業(yè)務(wù)系統(tǒng)有關(guān)的整個業(yè)務(wù)調(diào)用模型。根據(jù)本發(fā)明的實施例,業(yè)務(wù)系統(tǒng)200可以根據(jù)以下方式中的任一種獲取與自身接口有關(guān)的業(yè)務(wù)調(diào)用鏈模型片段:監(jiān)控系統(tǒng)100定期推送、回調(diào)機(jī)制、各業(yè)務(wù)系統(tǒng)輪詢、或分布式應(yīng)用程序協(xié)調(diào)服務(wù)(“zookeeper”)。
[0017]根據(jù)本發(fā)明的實施例,監(jiān)控系統(tǒng)100還可以包括日志存取單元140,將來自業(yè)務(wù)系統(tǒng)的接口調(diào)用日志存儲在日志存儲單元中。根據(jù)本發(fā)明的實施例,接口調(diào)用日志可以包含在該接口被調(diào)用時,相應(yīng)業(yè)務(wù)調(diào)用鏈中生成的表示該次業(yè)務(wù)流程的唯一調(diào)用日志key,該調(diào)用日志key對于該業(yè)務(wù)鏈中的所有被調(diào)用接口是相同的。根據(jù)本發(fā)明的實施例,該調(diào)用日志key可以由調(diào)用鏈中的第一個業(yè)務(wù)系統(tǒng)生成,并依次傳遞到調(diào)用鏈中的各個業(yè)務(wù)系統(tǒng)。根據(jù)本發(fā)明的實施例,接口調(diào)用日志還可以包括產(chǎn)生該次調(diào)用的業(yè)務(wù)調(diào)用鏈模型的標(biāo)識信息,例如業(yè)務(wù)調(diào)用鏈模型ID,該模型標(biāo)識信息可以用于區(qū)分不同業(yè)務(wù)調(diào)用鏈模型。日志存取單元140將業(yè)務(wù)調(diào)用鏈模型相同且調(diào)用日志key相同的接口調(diào)用日志(即來自同一調(diào)用鏈模型中的業(yè)務(wù)系統(tǒng)且屬于于同一次業(yè)務(wù)流程的接口調(diào)用日志)在日志存儲單元120中存為一個接口調(diào)用日志組,基于該接口調(diào)用日志組進(jìn)行后續(xù)的報表、查詢和/或報警操作。根據(jù)本發(fā)明的實施例,接口調(diào)用日志包括當(dāng)該接口被調(diào)用時,該接口的入?yún)?、返回值、與該調(diào)用相關(guān)的調(diào)用鏈模型標(biāo)識信息、以及表示該次業(yè)務(wù)流程的唯一調(diào)用日志key。當(dāng)該接口出現(xiàn)調(diào)用異常時,接口調(diào)用日志還包括該接口的異常信息。
[0018]根據(jù)本發(fā)明的實施例,監(jiān)控系統(tǒng)100還可以包括業(yè)務(wù)監(jiān)控單元150,通過日志存取單元140獲取日志存儲單元120中存儲的日志。業(yè)務(wù)監(jiān)控單元150基于接口調(diào)用日志組,執(zhí)行以下至少一項操作:將接口調(diào)用日志組作為報表信息定期推送到系統(tǒng)負(fù)責(zé)人;在接口調(diào)用日志中存在異常信息時,將接口調(diào)用異常和整個調(diào)用鏈上的所有接口調(diào)用日志一并推送到系統(tǒng)負(fù)責(zé)人;或者在接收到對接口調(diào)用日志的查詢請求時,以包含相應(yīng)接口的調(diào)用鏈模型標(biāo)識信息加該接口的調(diào)用日志key兩個條件確定一個接口調(diào)用日志組的方式呈現(xiàn)查詢結(jié)果,或者根據(jù)包含相應(yīng)接口的不同調(diào)用鏈模型分頁呈現(xiàn)查詢結(jié)果。
[0019]業(yè)務(wù)系統(tǒng)200包括調(diào)用鏈模型片段存儲單元210、日志生成單元220、和日志上傳單元230。
[0020]調(diào)用鏈模型片段存儲單元210存儲與該業(yè)務(wù)系統(tǒng)200有關(guān)的一個或多個業(yè)務(wù)調(diào)用鏈模型片段,其中每個業(yè)務(wù)調(diào)用鏈模型按照相應(yīng)的一個業(yè)務(wù)流程中涉及的各業(yè)務(wù)系統(tǒng)中被調(diào)用的接口的上下游關(guān)系記載了所述被調(diào)用的接口,每個業(yè)務(wù)調(diào)用鏈模型片段是相應(yīng)的業(yè)務(wù)調(diào)用鏈模型中記載了該業(yè)務(wù)系統(tǒng)的被調(diào)用接口的部分。根據(jù)本發(fā)明的實施例,業(yè)務(wù)系統(tǒng)200也可以獲取或存儲與自身有關(guān)的整個調(diào)用鏈模型。
[0021 ]日志生成單元220,在業(yè)務(wù)系統(tǒng)200的接口被調(diào)用時,生成接口調(diào)用日志。例如,在業(yè)務(wù)系統(tǒng)200的接口被調(diào)用時,日志生成單元220判斷該接口是否記載于某個調(diào)用鏈模型或調(diào)用鏈模型片段中,如果是,則生成該接口的接口調(diào)用日志。根據(jù)本發(fā)明的實施例,接口調(diào)用日志包括當(dāng)該接口被調(diào)用時,該接口的入?yún)?、返回值、與該調(diào)用相關(guān)的調(diào)用鏈模型標(biāo)識信息(例如調(diào)用鏈模型ID)、以及表示該次業(yè)務(wù)流程的唯一調(diào)用日志key。當(dāng)該接口出現(xiàn)調(diào)用異常時,接口調(diào)用日志還包括該接口的異常信息。
[0022]日志上傳單元230將包含于業(yè)務(wù)調(diào)用鏈模型片段中的接口的接口調(diào)用日志上傳到監(jiān)控系統(tǒng)。根據(jù)本發(fā)明的實施例,可以由日志生成單元220或日志上傳單元230判斷被調(diào)用的接口是否記載于某個調(diào)用鏈模型或調(diào)用鏈模型片段中。如果日志生成單元220進(jìn)行該判斷,則日志上傳單元230不再進(jìn)行該判斷,而是直接上傳接口調(diào)用日志。另一方面,日志生成單元220也可以不進(jìn)行該判斷而是針對所有被調(diào)用接口生成接口調(diào)用日志,而日志上傳單元230僅上傳記載于某個調(diào)用鏈模型或調(diào)用鏈模型片段中的接口的接口調(diào)用日志。在此情況下,日志上傳單元230可以負(fù)責(zé)向接口調(diào)用日志添加調(diào)用鏈模型ID和調(diào)用日志key。
[0023]根據(jù)本發(fā)明的實施例,業(yè)務(wù)系統(tǒng)200還可以包括調(diào)用鏈模型片段存取單元240,在業(yè)務(wù)系統(tǒng)啟動時從監(jiān)控系統(tǒng)獲取與該業(yè)務(wù)系統(tǒng)的接口有關(guān)的所述一個或多個業(yè)務(wù)調(diào)用鏈模型片段并存儲在調(diào)用鏈模型片段存儲單元中。調(diào)用鏈模型片段存取單元240可以向監(jiān)控系統(tǒng)100請求僅發(fā)送與自身有關(guān)的業(yè)務(wù)調(diào)用鏈模型片段,也可以將整個模型拉取到本地后截取與自身有關(guān)的業(yè)務(wù)調(diào)用鏈模型片段。當(dāng)調(diào)用鏈模型片段存取單元240在業(yè)務(wù)系統(tǒng)200啟動后收到來自監(jiān)控系統(tǒng)100的調(diào)用鏈模型變更消息時,根據(jù)與本系統(tǒng)相關(guān)的調(diào)用鏈模型變更消息,更新調(diào)用鏈模型片段