【开源】.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

【开源】.net微服务开发引擎Anno 让复杂的事简单点- 日志、链路追踪一目了然 (上)的更多相关文章
- 【开源】.net微服务开发引擎Anno开源啦
1.Anno是什么? Anno是一个微服务框架引擎.入门简单.安全.稳定.高可用.全平台可监控.依赖第三方框架少.底层通讯RPC(Remote Procedure Call)采用稳定可靠经过无数成功项 ...
- .netcore 微服务快速开发框架 Anno&Viper -分布式锁是个什么鬼
1.什么是锁 锁是为了解决多线程或者多进程资源竞争的问题. 同一进程的多个线程资源竞争可以用lock解决. lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临界区. 如果其他线 ...
- 黑少微服务商店之Iron Cloud微服务开发云
近日,由黑少微服务研发团队推出的Iron Cloud微服务开发云已经正式对外提供服务,这是国内第一家基于云端操作的微服务专业开发工具. Iron Cloud 微服务开发云(www.ironz.com) ...
- mPass多租户系统微服务开发平台
目录 项目总体架构图 基于SpringBoot2.x.SpringCloud并采用前后端分离的企业级微服务,多租户系统架构微服务开发平台 mPaaS(Microservice PaaS)为租户业务开发 ...
- python 微服务开发书中几个方便的python框架
python 微服务开发是一本讲python 如果进行微服务开发的实战类书籍,里面包含了几个很不错的python 模块,记录下,方便后期回顾学习 处理并发的模块 greenlet && ...
- 【新书推荐】《ASP.NET Core微服务实战:在云环境中开发、测试和部署跨平台服务》 带你走近微服务开发
<ASP.NET Core 微服务实战>译者序:https://blog.jijiechen.com/post/aspnetcore-microservices-preface-by-tr ...
- 基于 abp vNext 微服务开发的敏捷应用构建平台 - 项目介绍
缘起 目前使用ABP框架已经将近3年了,大大小小的项目也陆陆续续做了很多.由于现有信息系统的架构模式是在底层的技术平台上直接构建信息系统并采用技术主导,使用业务无关的编程工具来开发信息系统的缺陷使得系 ...
- 微服务开发的最大痛点-分布式事务SEATA入门简介
前言 在微服务开发中,存在诸多的开发痛点,例如分布式事务.全链路跟踪.限流降级和服务平滑上下线等.而在这其中,分布式事务是最让开发者头痛的.那分布式事务是什么呢? 分布式事务就是指事务的参与者.支持事 ...
- .netcore 微服务快速开发框架 Anno&Viper 注册中心 (服务上线下线预警通知)
1.微服务时代,服务上线先预警通知 在微服务大行其道的今天,相信很多人都用上了微服务或者是微服务的概念也已经有了一个深刻的了解.今天我们不在这里展开阐述,今天我们要说的是微服务伴侣预警通知. 2.注册 ...
随机推荐
- poj3585 Accumulation Degree(树形dp,换根)
题意: 给你一棵n个顶点的树,有n-1条边,每一条边有一个容量z,表示x点到y点最多能通过z容量的水. 你可以任意选择一个点,然后从这个点倒水,然后水会经过一些边流到叶节点从而流出.问你最多你能倒多少 ...
- hdu3555 Bomb(要49)
Problem Description The counter-terrorists found a time bomb in the dust. But this time the terroris ...
- qmh的测试1
题目:传送门 首先输入一个n,之后输入n个数a(1<=a<=1e7),对这n个数排序后,你需要找到所有的它们连续的长度.把这些连续的长度排序后输出 输入 输入: 8 1 5 2 7 4 5 ...
- 恢复win10 LTSC 2019 图片查看器功能
1.开始–运行–输入"regedit"打开注册表. 2. 在打开的注册表编辑器中,从左侧依次展开:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Win ...
- 敏捷史话(六):也许这个人能拯救你的代码 —— Robert C. Martin
Robert C. Martin( 罗伯特·C·马丁),作为世界级软件开发大师.设计模式和敏捷开发先驱.C++ Report杂志前主编,也是敏捷联盟(Agile Alliance)的第一任主席,我们尊 ...
- windows下的PyCharm设置注释字体的斜体
操作截图如下:File --> Settings --> Editor --> Color Scheme --> Language Defaults --> Commen ...
- vector最最最基础用法(非原创)
在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<in ...
- tensorflow报错:Attempting to fetch value instead of handling error Internal: failed to get device attribute 13 for device 0: CUDA_ERROR_UNKNOWN:
就是在spyder跑上一篇文章的代码然后就报错: Attempting to fetch value instead of handling error Internal: failed to get ...
- POJ 3415 Common Substrings(后缀数组 + 单调栈)题解
题意: 给两个串\(A.B\),问你长度\(>=k\)的有几对公共子串 思路: 先想一个朴素算法: 把\(B\)接在\(A\)后面,然后去跑后缀数组,得到\(height\)数组,那么直接\(r ...
- SVG tada 🎉 animation effects
SVG tada animation effects symbol & use <svg viewBox="0 0 80 20" xmlns="http:/ ...