如何将VKProxy与OpenTelemetry集成实现追踪?

摘要:OpenTelemetry OpenTelemetry 是各类 API、SDK 和工具形成的集合。可用于插桩、生成、采集和导出遥测数据(链路、指标和日志),帮助你分析软件的性能和行为。 VKProxy 已集成OpenTelemetry,所以
OpenTelemetry OpenTelemetry 是各类 API、SDK 和工具形成的集合。可用于插桩、生成、采集和导出遥测数据(链路、指标和日志),帮助你分析软件的性能和行为。 VKProxy 已集成OpenTelemetry,所以现在可以非常简单采集和导出遥测数据(链路、指标和日志)。 简单回顾asp.net core中如何使用 遥测数据分为链路、指标和日志 ,dotnet中使用可参考OpenTelemetry文档 简单的示例 using Microsoft.Extensions.Options; using OpenTelemetry; using OpenTelemetry.Resources; using OpenTelemetry.Trace; Environment.SetEnvironmentVariable("OTEL_EXPORTER_OTLP_ENDPOINT", "http://127.0.0.1:4317/"); // 配置OpenTelemetry收集器 var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi builder.Services.AddOpenApi(); builder.Services.AddOpenTelemetry() .ConfigureResource(resource => resource.AddService("TestApi", "").AddContainerDetector()) .WithTracing(tracing => tracing.AddAspNetCoreInstrumentation()) .WithMetrics(builder => { builder.AddMeter("System.Runtime", "Microsoft.AspNetCore.Server.Kestrel", "Microsoft.AspNetCore.MemoryPool"); }) .WithLogging() .UseOtlpExporter(); // 示例使用 Otlp协议 var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers(); app.Run(); 日志 这个其实没什么特别,由于已经提供非常抽象的 ILogger, 所以只需大家按照自己记录log所需正常使用就好, log 大家使用非常多,这里就不详细示例了,可参考文档Logging in .NET and ASP.NET Core 而OpenTelemetry 对于log,主要是如何在log 结构化并记录分布式追踪的信息,以方便关联。 OpenTelemetry sdk 已经内置支持,只需配置好 .WithLogging(),对应log和分布式追踪的信息都会写入收集器中。
阅读全文