如何不依赖ASP实现基于C#的Opentracing客户端搭建?
完全可以脱离ASP技术栈使用C# OpenTracing客户端
- 核心库本身没有ASP绑定:OpenTracing的C#官方实现以及Jaeger、Zipkin等主流厂商的C#客户端核心包,都没有依赖任何ASP组件,可直接在控制台应用、类库、桌面应用等任意.NET运行环境中使用。
- 依赖选择要点:无需引入任何带
AspNet后缀的OpenTracing扩展包,以Jaeger实现为例,仅需安装OpenTracing、Jaeger.Core两个NuGet包即可满足基础埋点需求。 - 最小实现代码示例:
using OpenTracing; using Jaeger; using Jaeger.Samplers; // 初始化链路追踪实例,无任何ASP相关逻辑 ITracer tracer = new Tracer.Builder("自定义服务标识") .WithSampler(new ConstSampler(true)) .Build(); // 手动创建操作埋点 using (IScope scope = tracer.BuildSpan("自定义业务操作名").StartActive(finishSpanOnDispose: true)) { // 写入自定义标签、日志 scope.Span.SetTag("请求参数", "xxx"); scope.Span.Log("业务步骤执行完成"); // 此处放入你的业务逻辑 } // 程序退出前完成剩余埋点数据上报 tracer.CloseAsync().Wait();
- 示例附带ASP依赖的原因:公开资料中多数示例引入ASP相关依赖,是因为Web服务是链路追踪的最高频使用场景,相关ASP扩展包仅用于实现HTTP请求自动埋点、MVC动作自动采集等增强能力,属于可选组件,并非运行必须。
内容的提问来源于stack exchange,提问作者Jonas Lindahl
相关产品推荐
相关产品推荐

