.netcore 2.1 应用程序上的 OpenRacing 和 Jaeger?



我们的应用程序由用于UI的angular 6和用于后端的.netcore 2.0组成,希望实现对它的跟踪,到目前为止,openttrace似乎是最突出的,但我似乎找不到任何好的.netcore 2.0应用程序的帮助文档。

有几个组件可以协同工作,可以完全满足您的要求。

  1. 常见的开放跟踪库,由跨度、示踪剂、注入器和提取器等的抽象层组成。

  2. 官方积家客户。完整的客户端列表可以在这里找到,它们实现了前面提到的开放跟踪抽象层。

  3. 最后一块是 .NET 的 OpenTracing API,它是 dotnet 中 opentracing 库和 DiagnosticSource 概念之间的粘合剂。

实际上,最终库有一个示例,它使用ITracer的jaeger csharp实现并将其配置为默认的GlobalTracer。

在 Startup.cs 的其余部分,您最终会得到类似该示例的内容(服务是 IServiceCollection(:

services.AddSingleton<ITracer>(serviceProvider =>
{
string serviceName = Assembly.GetEntryAssembly().GetName().Name;
ILoggerFactory loggerFactory = serviceProvider.GetRequiredService<ILoggerFactory>();
ISampler sampler = new ConstSampler(sample: true);
ITracer tracer = new Tracer.Builder(serviceName)
.WithLoggerFactory(loggerFactory)
.WithSampler(sampler)
.Build();
GlobalTracer.Register(tracer);
return tracer;
});
// Prevent endless loops when OpenTracing is tracking HTTP requests to Jaeger.
services.Configure<HttpHandlerDiagnosticOptions>(options =>
{
options.IgnorePatterns.Add(request => _jaegerUri.IsBaseOf(request.RequestUri));
});

相关内容

  • 没有找到相关文章

最新更新