Created
December 14, 2025 10:52
-
-
Save wullemsb/174d64fff983ce3edf12f7a0d1535f0e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public static TBuilder ConfigureOpenTelemetry<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder | |
| { | |
| builder.Logging.AddOpenTelemetry(logging => | |
| { | |
| logging.IncludeFormattedMessage = true; | |
| logging.IncludeScopes = true; | |
| }); | |
| builder.Services.AddOpenTelemetry() | |
| .WithMetrics(metrics => | |
| { | |
| metrics.AddAspNetCoreInstrumentation() | |
| .AddHttpClientInstrumentation() | |
| .AddRuntimeInstrumentation(); | |
| }) | |
| .WithTracing(tracing => | |
| { | |
| tracing.AddSource(builder.Environment.ApplicationName) | |
| .AddAspNetCoreInstrumentation(tracing => | |
| // Exclude health check requests from tracing | |
| tracing.Filter = context => | |
| !context.Request.Path.StartsWithSegments(HealthEndpointPath) | |
| && !context.Request.Path.StartsWithSegments(AlivenessEndpointPath) | |
| ) | |
| // Uncomment the following line to enable gRPC instrumentation (requires the OpenTelemetry.Instrumentation.GrpcNetClient package) | |
| //.AddGrpcClientInstrumentation() | |
| .AddHttpClientInstrumentation(); | |
| }); | |
| builder.AddOpenTelemetryExporters(); | |
| return builder; | |
| } | |
| private static TBuilder AddOpenTelemetryExporters<TBuilder>(this TBuilder builder) where TBuilder : IHostApplicationBuilder | |
| { | |
| var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]); | |
| if (useOtlpExporter) | |
| { | |
| builder.Services.AddOpenTelemetry().UseOtlpExporter(); | |
| } | |
| // Uncomment the following lines to enable the Azure Monitor exporter (requires the Azure.Monitor.OpenTelemetry.AspNetCore package) | |
| //if (!string.IsNullOrEmpty(builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"])) | |
| //{ | |
| // builder.Services.AddOpenTelemetry() | |
| // .UseAzureMonitor(); | |
| //} | |
| return builder; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment