From 993460a9269c99075dcb9c5ce5a33d591998be86 Mon Sep 17 00:00:00 2001 From: HaikAsatryan Date: Fri, 6 Dec 2024 00:49:27 +0400 Subject: [PATCH] OpenTelemetry bug fix --- Readme.md | 3 +-- SharedKernel.sln.DotSettings | 1 + .../Extensions/OpenTelemetryExtension.cs | 18 ++++++++++++------ src/SharedKernel/SharedKernel.csproj | 4 ++-- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Readme.md b/Readme.md index 8a965f3..655229c 100644 --- a/Readme.md +++ b/Readme.md @@ -543,8 +543,7 @@ Integrate OpenTelemetry for observability, including metrics, traces, and loggin To configure the OTLP exporter, ensure the following entries are present in your appsettings{Environment}.json or as environment variables: ```json { - "OTEL_EXPORTER_OTLP_ENDPOINT": "http://localhost:4317", - "OTEL_SERVICE_NAME": "OTLP-Example" + "OTEL_EXPORTER_OTLP_ENDPOINT": "http://localhost:4317" } ``` 4. Included Features: diff --git a/SharedKernel.sln.DotSettings b/SharedKernel.sln.DotSettings index 7dbf180..767c278 100644 --- a/SharedKernel.sln.DotSettings +++ b/SharedKernel.sln.DotSettings @@ -1,3 +1,4 @@  True + True True \ No newline at end of file diff --git a/src/SharedKernel/Extensions/OpenTelemetryExtension.cs b/src/SharedKernel/Extensions/OpenTelemetryExtension.cs index 41cd924..46af69a 100644 --- a/src/SharedKernel/Extensions/OpenTelemetryExtension.cs +++ b/src/SharedKernel/Extensions/OpenTelemetryExtension.cs @@ -24,25 +24,31 @@ public static WebApplicationBuilder AddOpenTelemetry(this WebApplicationBuilder builder.Services .AddOpenTelemetry() - .UseOtlpExporter() .ConfigureResource(resource => resource.AddService(builder.Environment.ApplicationName)) .WithMetrics(metrics => { metrics.AddRuntimeInstrumentation() .AddAspNetCoreInstrumentation() .AddHttpClientInstrumentation() - .AddPrometheusExporter() - .AddOtlpExporter(); + .AddPrometheusExporter(); }) .WithTracing(tracing => { tracing.AddAspNetCoreInstrumentation() .AddHttpClientInstrumentation() - .AddEntityFrameworkCoreInstrumentation() - .AddOtlpExporter(); + .AddEntityFrameworkCoreInstrumentation(); }); + + var otlpEnabled = !string.IsNullOrEmpty(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]); - builder.Logging.AddOpenTelemetry(logging => logging.AddOtlpExporter()); + if (!otlpEnabled) + { + return builder; + } + + builder.Services.ConfigureOpenTelemetryLoggerProvider(l => l.AddOtlpExporter()); + builder.Services.ConfigureOpenTelemetryTracerProvider(t => t.AddOtlpExporter()); + builder.Services.ConfigureOpenTelemetryTracerProvider(t => t.AddOtlpExporter()); return builder; } diff --git a/src/SharedKernel/SharedKernel.csproj b/src/SharedKernel/SharedKernel.csproj index 186964d..a103239 100644 --- a/src/SharedKernel/SharedKernel.csproj +++ b/src/SharedKernel/SharedKernel.csproj @@ -8,13 +8,13 @@ Readme.md Pandatech MIT - 1.0.14 + 1.0.15 Pandatech.SharedKernel Pandatech Shared Kernel Library Pandatech, shared kernel, library, OpenAPI, Swagger, utilities, scalar Pandatech.SharedKernel provides centralized configurations, utilities, and extensions for ASP.NET Core projects. For more information refere to readme.md document. https://github.com/PandaTechAM/be-lib-sharedkernel - OpenTelemetry upgrade + OpenTelemetry bug fix