【开源】.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仓库关注我了解更多内容
文档地址:
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