42001998d6
Refactored mappers
52 lines
1.9 KiB
C#
52 lines
1.9 KiB
C#
namespace LiteCharms.Features.Extensions;
|
|
|
|
public static class Monitoring
|
|
{
|
|
public static WebApplicationBuilder AddMonitoring(this WebApplicationBuilder builder)
|
|
{
|
|
var serviceName = builder.Configuration.GetValue<string>("Monitoring:ServiceName") ?? "LiteCharms";
|
|
var endpoint = builder.Configuration.GetValue<string>("Monitoring:Address")!;
|
|
var apiKey = builder.Configuration.GetValue<string>("Monitoring:ApiKey");
|
|
|
|
var resourceBuilder = ResourceBuilder.CreateDefault()
|
|
.AddService(serviceName);
|
|
|
|
var otlpHeaders = !string.IsNullOrEmpty(apiKey) ? $"x-otlp-api-key={apiKey}" : null;
|
|
|
|
builder.Logging.AddOpenTelemetry(logging =>
|
|
{
|
|
logging.SetResourceBuilder(resourceBuilder);
|
|
logging.AddOtlpExporter(opt =>
|
|
{
|
|
opt.Endpoint = new Uri(endpoint);
|
|
opt.Protocol = OtlpExportProtocol.Grpc;
|
|
opt.Headers = otlpHeaders;
|
|
});
|
|
});
|
|
|
|
builder.Services.AddOpenTelemetry()
|
|
.WithTracing(tracing => tracing
|
|
.SetResourceBuilder(resourceBuilder)
|
|
.AddAspNetCoreInstrumentation()
|
|
.AddHttpClientInstrumentation()
|
|
.AddOtlpExporter(opt =>
|
|
{
|
|
opt.Endpoint = new Uri(endpoint);
|
|
opt.Protocol = OtlpExportProtocol.Grpc;
|
|
opt.Headers = otlpHeaders;
|
|
}))
|
|
.WithMetrics(metrics => metrics
|
|
.SetResourceBuilder(resourceBuilder)
|
|
.AddMeter(serviceName)
|
|
.AddAspNetCoreInstrumentation()
|
|
.AddRuntimeInstrumentation()
|
|
.AddOtlpExporter(opt =>
|
|
{
|
|
opt.Endpoint = new Uri(endpoint);
|
|
opt.Protocol = OtlpExportProtocol.Grpc;
|
|
opt.Headers = otlpHeaders;
|
|
}));
|
|
|
|
return builder;
|
|
}
|
|
} |