From 70f5c4801197b63b8b425b4e039170098f12fbe3 Mon Sep 17 00:00:00 2001 From: Rajkumar Rangaraj Date: Fri, 19 Apr 2024 09:23:17 -0700 Subject: [PATCH] [AzureMonitorDistro] Add LiveMetricsActivityProcessor only when live metrics is enabled (#43524) * Add LiveMetricsActivityProcessor only when live metrics is enabled * Rename azureMonitorOptions to options. --- .../src/OpenTelemetryBuilderExtensions.cs | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs b/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs index e6cefc5bce11..5e4ce7f55ff6 100644 --- a/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs +++ b/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/src/OpenTelemetryBuilderExtensions.cs @@ -125,13 +125,18 @@ public static OpenTelemetryBuilder UseAzureMonitor(this OpenTelemetryBuilder bui return true; }) .AddProcessor() - .AddProcessor(sp => - { - var manager = sp.GetRequiredService(); - return new LiveMetricsActivityProcessor(manager); - }) .AddAzureMonitorTraceExporter()); + builder.Services.ConfigureOpenTelemetryTracerProvider((sp, builder) => + { + var azureMonitorOptions = sp.GetRequiredService>().Get(Options.DefaultName); + if (azureMonitorOptions.EnableLiveMetrics) + { + var manager = sp.GetRequiredService(); + builder.AddProcessor(new LiveMetricsActivityProcessor(manager)); + } + }); + builder.WithMetrics(b => b .AddHttpClientAndServerMetrics() .AddAzureMonitorMetricExporter()); @@ -141,11 +146,6 @@ public static OpenTelemetryBuilder UseAzureMonitor(this OpenTelemetryBuilder bui logging.AddOpenTelemetry(builderOptions => { builderOptions.IncludeFormattedMessage = true; - builderOptions.AddProcessor(sp => - { - var manager = sp.GetRequiredService(); - return new LiveMetricsLogProcessor(manager); - }); }); }); @@ -178,6 +178,15 @@ public static OpenTelemetryBuilder UseAzureMonitor(this OpenTelemetryBuilder bui { loggingOptions.AddAzureMonitorLogExporter(o => azureMonitorOptions.SetValueToExporterOptions(o)); } + + if (azureMonitorOptions.EnableLiveMetrics) + { + loggingOptions.AddProcessor(sp => + { + var manager = sp.GetRequiredService(); + return new LiveMetricsLogProcessor(manager); + }); + } }); // Register a configuration action so that when