中国制造网外贸平台网址,扬州百度seo公司,阳春建设局网站,做网站全程指导OpenTelemetry介绍OpenTelemetry是一组标准和工具的集合#xff0c;旨在管理观测类数据#xff0c;如 trace、metrics、logs 等。通过标准化不同的应用程序和框架如何收集和发出可观察性遥测数据#xff0c;OpenTelemetry旨在解决这些环境带来的一些挑战。OpenTelemetry包括… OpenTelemetry介绍OpenTelemetry是一组标准和工具的集合旨在管理观测类数据如 trace、metrics、logs 等。通过标准化不同的应用程序和框架如何收集和发出可观察性遥测数据OpenTelemetry旨在解决这些环境带来的一些挑战。OpenTelemetry包括可观察性遥测分布式跟踪、指标等的供应商中立规范实现用于检测的公共接口的API应用程序使用SDK为插件作者配置工具和接口以编写导出器使你能够将数据发送到你选择的遥测后端的导出器随着OpenTelemetry对可观察性遥测集合的标准化你可以选择遥测后端而无需更改检测代码。你可以自由选择可为你提供最有效数据分析的平台。在本文中我们选择的是Zipkin。Zipkin介绍Zipkin是一个分布式追踪系统。它有助于收集对服务架构中的延迟问题进行故障排除所需的计时数据。功能包括收集和查找这些数据。下面我们就来演示如何使用OpenTelemetry搭配Zipkin来追踪ASP.NET Core服务之间的WebAPI和gRPC请求。Demo创建3个应用程序WebApplication1使用Web API调用WebApplication2WebApplication2使用gRPC调用GrpcService1。WebApplication1引用Nuget包包括预发行版OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Exporter.Zipkin新增配置Endpoint对应Zipkin部署地址Zipkin: {ServiceName: WebApplication1,Endpoint: http://192.168.1.11:9411/api/v2/spans
}修改Startup.cspublic void ConfigureServices(IServiceCollection services)
{...services.AddOpenTelemetryTracing((builder) builder.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(this.Configuration.GetValuestring(Zipkin:ServiceName))).AddAspNetCoreInstrumentation().AddZipkinExporter(zipkinOptions {zipkinOptions.Endpoint new Uri(Configuration.GetValuestring(Zipkin:Endpoint));}));
}修改WeatherForecastController.cs访问WebApplication2[HttpGet]
public async Taskstring Get()
{var response await _httpClientFactory.CreateClient().GetStringAsync(http://localhost:5200/WeatherForecast);return response;
}WebApplication2引用Nuget包包括预发行版OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Exporter.Zipkin
Grpc.Net.Client
OpenTelemetry.Instrumentation.GrpcNetClient新增配置Endpoint对应Zipkin部署地址Zipkin: {ServiceName: WebApplication2,Endpoint: http://192.168.1.11:9411/api/v2/spans
}修改Startup.cspublic void ConfigureServices(IServiceCollection services)
{...services.AddOpenTelemetryTracing((builder) builder.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(this.Configuration.GetValuestring(Zipkin:ServiceName))).AddGrpcClientInstrumentation().AddAspNetCoreInstrumentation().AddZipkinExporter(zipkinOptions {zipkinOptions.Endpoint new Uri(Configuration.GetValuestring(Zipkin:Endpoint));}));
}修改WeatherForecastController.cs访问GrpcService1[HttpGet]
public async Taskstring Get()
{var channel GrpcChannel.ForAddress(http://localhost:5300);var client new Greeter.GreeterClient(channel);var response await client.SayHelloAsync(new HelloRequest { Name World });return response.Message;
}GrpcService1引用Nuget包包括预发行版OpenTelemetry.Extensions.Hosting
OpenTelemetry.Instrumentation.AspNetCore
OpenTelemetry.Exporter.Zipkin新增配置Endpoint对应Zipkin部署地址Zipkin: {ServiceName: GrpcService1,Endpoint: http://192.168.1.11:9411/api/v2/spans
}修改Startup.csprivate IConfiguration Configuration { get; }public Startup(IConfiguration configuration)
{Configuration configuration;
}
public void ConfigureServices(IServiceCollection services)
{...services.AddOpenTelemetryTracing((builder) builder.SetResourceBuilder(ResourceBuilder.CreateDefault().AddService(this.Configuration.GetValuestring(Zipkin:ServiceName))).AddAspNetCoreInstrumentation().AddZipkinExporter(zipkinOptions {zipkinOptions.Endpoint new Uri(Configuration.GetValuestring(Zipkin:Endpoint));}));
}运行效果启动3个应用程序WebApplication1 http://localhost/5100WebApplication2 http://localhost/5200GrpcService1 http://localhost/5300访问WebApplication1后即可在Zipkin上查看调用链结论使用OpenTelemetry搭配Zipkin可以轻松实现监控WebAPI/gRPC调用链。