【開源】.net微服務開發引擎Anno 讓複雜的事簡單點- 日誌、鏈路追蹤一目瞭然 (上)

杜燕明發表於2021-03-02

1、Anno簡介?

 Anno是一個微服務框架引擎。入門簡單安全穩定高可用全平臺視覺化監控、依賴第三方框架少。詳情請檢視【開源】.net微服務開發引擎Anno開源啦

   本章主題:.net微服務開發引擎Anno 讓複雜的事簡單點- 日誌、鏈路追蹤一目瞭然

  

1、鏈路追蹤和使用者自定義日誌掛鉤

  在前面我們已經瞭解到Anno 可以監控整個微服務叢集的狀態,包括CPU、記憶體、硬碟、訪問量等等。一個不可監控的微服務平臺是可怕,出了問題 難以準確定位問題的根源。在市面上微服務框架很多都沒有鏈路追蹤功能,或者需要整合第三方的服務外掛。讓整個微服務變的複雜、不可控。我們用微服務的目的是解決問題的,不是讓問題變的更復雜的。因此Anno則有一套自己的鏈路追蹤服務,不依賴地方,簡單好用。好了不吹牛逼了,上圖。

 NewApi 是微服務閘道器的名稱(可以自定義),從上圖我們可以清晰的看到使用者admin 在2020-07-10T15:26:33.155 通過閘道器(NewApi)訪問了微服務PlatformService(名稱可以自定義)的外掛Anno.Plugs.Logic 的模組 Platform 的方法 InvokeTest 總耗時 111毫秒。接下來我們點選詳情去檢視這個請求 PlatformService 是不是又呼叫了其他服務

 在這個呼叫鏈裡面我們清晰的看到,使用者Admin通過NewAPI閘道器呼叫了PlatformService服務的 InvokeTest方法

PlatformService InvokeTest方法又呼叫了 App001微服務的 InvokeTest1 方法。

App001 又同時呼叫了自己(App001) GetList_IndexViewModel方法和 PlatformService服務的CreateSdaNum 方法

從我的文字描述估計看著有點費勁,不過我們通過上圖可以清晰的看到這個呼叫鏈都發生了什麼事。

 此時可能喜歡琢磨的你已經想到,只看到這個鏈路還不行。我還想再鏈路上記錄一些我自己的日誌方便我除錯和日後排查問題。(如果你用了第三方的鏈路追蹤元件可能這個功能做起來就有點費勁了)那麼Anno也已經幫我們處理好了。細心的你估計也已經看到 呼叫鏈上的每一個呼叫都有一個系統日誌的文字按鈕。點選它我們就可以清晰的看到我們再這個呼叫中自己寫的日誌。

 我們開檢視這個呼叫鏈的日誌

 

 點選檢視:

 

 根據呼叫鏈的追蹤Id我們找到了三條日誌。

 

也可以點選日誌裡面的鏈路文字按鈕反向查詢呼叫鏈。 

 至此本章我們要說的東西也已經大概結束了,後面我會寫一下鏈路追蹤和自定義日誌的程式碼怎麼寫。還不瞭解Anno、Viper的小夥伴可以訪問我的Git倉庫關注我瞭解更多內容

文件地址:
https://duyanming.github.io/

 

Anno核心原始碼:https://github.com/duyanming/Anno.Core  

Viper示例專案:https://github.com/duyanming/Viper  

體驗地址:http://140.143.207.244/Home/Login

QQ交流群:478399354 

 

相關文章