【開源】.net微服務開發引擎Anno 讓複雜的事簡單點- 日誌、鏈路追蹤一目了然 (上)
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倉庫關注我了解更多內容
Anno核心源碼://github.com/duyanming/Anno.Core
Viper示例項目://github.com/duyanming/Viper
體驗地址://140.143.207.244/Home/Login
QQ交流群:478399354