From 13adec82bb2ab333de6ceac2cb6ce05341779db1 Mon Sep 17 00:00:00 2001 From: Jan Calanog Date: Fri, 14 Nov 2025 16:57:38 +0100 Subject: [PATCH] Use EDOT sdk --- .../Elastic.Documentation.ServiceDefaults.csproj | 1 + .../Extensions.cs | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Elastic.Documentation.ServiceDefaults/Elastic.Documentation.ServiceDefaults.csproj b/src/Elastic.Documentation.ServiceDefaults/Elastic.Documentation.ServiceDefaults.csproj index 1091489a9..5462e763c 100644 --- a/src/Elastic.Documentation.ServiceDefaults/Elastic.Documentation.ServiceDefaults.csproj +++ b/src/Elastic.Documentation.ServiceDefaults/Elastic.Documentation.ServiceDefaults.csproj @@ -9,6 +9,7 @@ + diff --git a/src/Elastic.Documentation.ServiceDefaults/Extensions.cs b/src/Elastic.Documentation.ServiceDefaults/Extensions.cs index 3ba8f44e4..3d795a3b3 100644 --- a/src/Elastic.Documentation.ServiceDefaults/Extensions.cs +++ b/src/Elastic.Documentation.ServiceDefaults/Extensions.cs @@ -47,7 +47,7 @@ public static TBuilder ConfigureOpenTelemetry(this TBuilder builder) w logging.IncludeScopes = true; }); - _ = builder.Services.AddOpenTelemetry() + _ = builder.Services.AddElasticOpenTelemetry() .WithMetrics(metrics => { _ = metrics.AddAspNetCoreInstrumentation() @@ -79,8 +79,17 @@ private static TBuilder AddOpenTelemetryExporters(this TBuilder builde { var useOtlpExporter = !string.IsNullOrWhiteSpace(builder.Configuration["OTEL_EXPORTER_OTLP_ENDPOINT"]); - if (useOtlpExporter) - _ = builder.Services.AddOpenTelemetry().UseOtlpExporter(); + if (!useOtlpExporter) + return builder; + + // Configure delta temporality for Elasticsearch compatibility + // See: https://www.elastic.co/docs/reference/opentelemetry/compatibility/limitations#histograms-in-delta-temporality-only + _ = builder.Services.Configure(options => + { + options.TemporalityPreference = MetricReaderTemporalityPreference.Delta; + }); + + _ = 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"]))