[發明專利]一種方法級鏈路追蹤方法在審
| 申請號: | 202211213608.3 | 申請日: | 2022-09-29 |
| 公開(公告)號: | CN115576786A | 公開(公告)日: | 2023-01-06 |
| 發明(設計)人: | 彭樂樂;張磊敏;劉冉;劉佳利 | 申請(專利權)人: | 上海浦東發展銀行股份有限公司 |
| 主分類號: | G06F11/34 | 分類號: | G06F11/34 |
| 代理公司: | 上海科盛知識產權代理有限公司 31225 | 代理人: | 嚴玉丹 |
| 地址: | 200002 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 方法 級鏈路 追蹤 | ||
本發明涉及一種方法級鏈路追蹤方法,所述鏈路追蹤方法包含以下步驟:請求發往服務,服務接收到請求后記錄服務級的鏈路信息;服務內部業務邏輯方法執行時會進入加載好的攔截器,并在攔截器中生成含有方法信息的方法級鏈路span;所述攔截器的加載過程包括以下步驟:從配置中心獲取鏈路配置項;在鏈路開關打開的情況下,通過字節碼增強創建一個的類轉換器添加到埋點庫組件中;注冊用于記錄方法執行過程鏈路數據的攔截器;在類的加載過程中將類的字節碼交給所述類轉換器,對需要增強的方法增加攔截器。與現有技術相比,本發明具有鏈路信息采集粒度更細,獲取到更詳細的服務調用信息等優點。
技術領域
本發明涉及鏈路追蹤技術領域,尤其是涉及一種方法級鏈路追蹤方法。
背景技術
主流的數據采集形式有兩大實現。一種是網絡旁聽,比如掛載邊車方式,在網絡層抓取inbound、outbound流量。網絡旁聽抓取流量的方式,對應用侵入性小,但是采集顆粒比較大,無法區分協議及定位代碼級的問題,并且需要網絡和運維多方改造,目前使用的并不算多。
另一種是數據埋點比如Zipkin,同樣也是基于brave作為埋點,結合原有框架做代碼攔截,基于servlet、spring MVC、多種HttpClient以及通用的數據庫中間件實現的SDK,在關鍵的請求與響應的位置設置埋點。
中國專利CN111797014A公開了一種跨應用的案例追蹤方法及裝置。所述方法包括:獲取分布式應用唯一標識符;根據所述分布式應用唯一標識符,利用字節碼增強技術,將鏈路追蹤代碼注入到分布式應用的程序中;利用所述鏈路追蹤代碼,采集各分布式應用的程序、鏈路調用過程以及調用棧信息;根據各分布式應用的程序、鏈路調用過程以及調用棧信息,區分各分布式應用之間的調用關系,以形成鏈路調用完整過程。
數據埋點代碼攔截的方式抓取顆粒適中,有不同層度的代碼侵入。但是現有技術需要依賴原有框架本身定制不同的插件,并且仍然是服務級的鏈路采集粒度,如果服務內部業務邏輯程序出錯,調用鏈并不能獲取到關鍵信息。
發明內容
本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種方法級鏈路追蹤方法。
本發明的目的可以通過以下技術方案來實現:
作為本發明的一個方面,提供一種方法級鏈路追蹤方法,所述鏈路追蹤方法包含以下步驟:
請求發往服務,服務接收到請求后記錄服務級的鏈路信息;
服務內部業務邏輯方法執行時會進入加載好的攔截器,所述攔截器生成含有方法信息的方法級鏈路span,所述方法級鏈路span擁有服務級鏈路相同的鏈路Id;
所述攔截器的加載過程包括以下步驟:
從配置中心獲取鏈路配置項,所述配置項包括鏈路開關配置和加載對象信息;
判斷鏈路開關是否打開,在鏈路開關打開的情況下,以brave作為埋點庫,通過字節碼增強庫ByteBuddy創建一個的類轉換器添加到Instrumentation組件中;注冊用于記錄方法執行過程鏈路數據的攔截器;
在類的加載過程中將類的字節碼交給所述類轉換器,所述類轉換器通過配置項的加載對象信息決定類的方法是否需要增強;對需要增強的方法增加攔截器。
作為優選技術方案,所述方法信息包括方法名、執行時間和執行錯誤后的堆棧。
作為優選技術方案,所述方法級鏈路span還記錄有一個用于區分鏈路類型的標識。
作為優選技術方案,所述配置中心存儲有多種配置項,通過使用不同配置項可以做到動態調整開關控制。
作為優選技術方案,所述類轉換器為ClassFileTransformer類型的類轉換器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海浦東發展銀行股份有限公司,未經上海浦東發展銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211213608.3/2.html,轉載請聲明來源鉆瓜專利網。





