// Thismethodgetscalledbytheruntime. UsethismethodtoconfiguretheHTTPrequestpipeline. publicvoidConfigure( IApplicationBuilder app) {app. UseRouting; app. UseEndpoints( endpoints ={endpoints.MapControl...
// Thismethodgetscalledbytheruntime. UsethismethodtoconfiguretheHTTPrequestpipeline. publicvoidConfigure( IApplicationBuilder app) {app. UseRouting; app. UseEndpoints( endpoints =>{endpoints.MapControllerRoute( name: " default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); }}}
这样不同的进程各种都可以实现追踪 。
OpenTracing API 和 Jaeger
OpenTracing 是开放式分布式追踪规范 , OpenTracing API 是一致 , 可表达 , 与供应商无关的API , 用于分布式跟踪和上下文传播 。
Jaeger 是 Uber 开源的分布式跟踪系统 。
OpenTracing 的客户端库以及规范 , 可以到 Github 中查看:https://github.com/opentracing/
详细的介绍可以自行查阅资料 。
这里我们需要部署一个 Jaeger 实例 , 以供微服务以及事务跟踪学习需要 。
使用 Docker 部署很简单 , 只需要执行下面一条命令即可:
文章图片
Jaeger 的端口作用如下:
链路追踪实践
要注意 , 数据上传到 Jaeger, 上传的是 Span , 是不会上传日志内容的 。
继续使用上面的控制台程序 , Nuget 中添加 Jaeger.Senders.Grpc 包 。
我们可以通过 UDP (6831端口)和 gRPC(14250) 端口将数据上传到 Jaeger 中 , 这里我们使用 gRPC 。
修改控制台程序的 InitTracer 方法 , 其代码如下:
vartracer = newTracer.Builder(serviceName) .WithLoggerFactory(loggerFactory).WithSampler( newConstSampler( true)) .WithReporter(reporter);
returntracer.Build; }
分别启动 Web 和 控制台程序 , 然后打开 Jaeger 界面 , 在 ”Service“ 中选择 hello-world , 然后点击底下的 Find Traces 。
文章图片
通过 Jaeger, 我们可以分析链路中函数的执行速度以及服务器性能情况 。
总结
在实验中 , 我们探究了 .NET Core 中日志和链路追踪的使用方法 , 通过在链路追踪中合理携带日志 , 以便使用分析平台分析链路的性能和状态 , 查找每个服务的性能情况和请求状态 。
微软最有 价值专家(MVP)
微软最有价值专家是微软公司授予第三方技术专业人士的一个全球奖项 。 28年来 , 世界各地的技术社区领导者 , 因其在线上和线下的技术社区中分享专业知识和经验而获得此奖项 。
MVP是经过严格挑选的专家团队 , 他们代表着技术最精湛且最具智慧的人 , 是对社区投入极大的热情并乐于助人的专家 。 MVP致力于通过演讲、论坛问答、创建网站、撰写博客、分享视频、开源项目、组织会议等方式来帮助他人 , 并最大程度地帮助微软技术社区用户使用Microsoft技术 。
更多详情请登录官方网站:
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
