From 274b0ab8b158f121e5e9ef8adae59b0093ed7c2f Mon Sep 17 00:00:00 2001 From: Srikanta Date: Tue, 2 Dec 2025 15:23:35 -0800 Subject: [PATCH 01/11] test logging telemetry --- .../Server/Commands/ServiceStartCommand.cs | 1 + .../src/Extensions/OpenTelemetryExtensions.cs | 53 +++++++++++++++---- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs b/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs index 91bd5fc168..7fa73f61d3 100644 --- a/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs +++ b/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs @@ -851,6 +851,7 @@ private static WebApplication UseHttpsRedirectionIfEnabled(WebApplication app) return null; } + Console.WriteLine($"Adding HTTP spans for incoming and outgoing requests with Azure Monitor exporter to connection string {connectionString}."); return Sdk.CreateTracerProviderBuilder() // captures incoming HTTP requests .AddAspNetCoreInstrumentation() diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index 0b20b2ef9a..aba33ec173 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -22,7 +22,8 @@ public static class OpenTelemetryExtensions /// /// The App Insights connection string to send telemetry to Microsoft. /// - private const string MicrosoftOwnedAppInsightsConnectionString = "InstrumentationKey=21e003c0-efee-4d3f-8a98-1868515aa2c9;IngestionEndpoint=https://centralus-2.in.applicationinsights.azure.com/;LiveEndpoint=https://centralus.livediagnostics.monitor.azure.com/;ApplicationId=f14f6a2d-6405-4f88-bd58-056f25fe274f"; + // private const string MicrosoftOwnedAppInsightsConnectionString = "InstrumentationKey=21e003c0-efee-4d3f-8a98-1868515aa2c9;IngestionEndpoint=https://centralus-2.in.applicationinsights.azure.com/;LiveEndpoint=https://centralus.livediagnostics.monitor.azure.com/;ApplicationId=f14f6a2d-6405-4f88-bd58-056f25fe274f"; + private const string MicrosoftOwnedAppInsightsConnectionString = "InstrumentationKey=4a9e69be-77aa-49cf-96a3-93f1c3f24b6d;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=fb90db50-fbd5-4b62-a7d1-c17a74c2d735"; public static void ConfigureOpenTelemetry(this IServiceCollection services) { @@ -50,10 +51,18 @@ public static void ConfigureOpenTelemetry(this IServiceCollection services) public static void ConfigureOpenTelemetryLogger(this ILoggingBuilder builder) { - builder.AddOpenTelemetry(logger => - { - logger.AddProcessor(new TelemetryLogRecordEraser()); - }); + // builder.AddOpenTelemetry(logger => + // { + // logger.AddAzureMonitorLogExporter(options => + // { + // var userProvidedAppInsightsConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING"); + + // if (!string.IsNullOrWhiteSpace(userProvidedAppInsightsConnectionString)) + // { + // options.ConnectionString = userProvidedAppInsightsConnectionString; + // } + // }); + // }); } private static void EnableAzureMonitor(this IServiceCollection services) @@ -92,11 +101,11 @@ private static void EnableAzureMonitor(this IServiceCollection services) if (!string.IsNullOrWhiteSpace(userProvidedAppInsightsConnectionString)) { // Configure telemetry to be sent to user-provided Application Insights instance regardless of build configuration. - ConfigureAzureMonitorExporter(otelBuilder, userProvidedAppInsightsConnectionString, "UserProvided"); + ConfigureUserProvidedAzureMonitorExporter(otelBuilder, userProvidedAppInsightsConnectionString, "UserProvided"); } // Configure Microsoft-owned telemetry only in RELEASE builds to avoid polluting telemetry during development. -#if RELEASE +// #if RELEASE // This environment variable can be used to disable Microsoft telemetry collection. // By default, Microsoft telemetry is enabled. var microsoftTelemetry = Environment.GetEnvironmentVariable("AZURE_MCP_COLLECT_TELEMETRY_MICROSOFT"); @@ -105,9 +114,9 @@ private static void EnableAzureMonitor(this IServiceCollection services) if (shouldCollectMicrosoftTelemetry) { - ConfigureAzureMonitorExporter(otelBuilder, MicrosoftOwnedAppInsightsConnectionString, "Microsoft"); + ConfigureMicrosoftAzureMonitorExporter(otelBuilder, MicrosoftOwnedAppInsightsConnectionString, "Microsoft"); } -#endif +// #endif var enableOtlp = Environment.GetEnvironmentVariable("AZURE_MCP_ENABLE_OTLP_EXPORTER"); if (!string.IsNullOrEmpty(enableOtlp) && bool.TryParse(enableOtlp, out var shouldEnable) && shouldEnable) @@ -118,8 +127,32 @@ private static void EnableAzureMonitor(this IServiceCollection services) } } - private static void ConfigureAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) + private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) + { + Console.WriteLine($"Configuring Azure Monitor Exporter for {name} telemetry with connection string: {appInsightsConnectionString}"); + + otelBuilder.WithMetrics(metrics => + { + metrics.AddAzureMonitorMetricExporter(options => + { + options.ConnectionString = appInsightsConnectionString; + }, + name: name); + }); + + otelBuilder.WithTracing(tracing => + { + tracing.AddAzureMonitorTraceExporter(options => + { + options.ConnectionString = appInsightsConnectionString; + }, + name: name); + }); + } + + private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) { + Console.WriteLine($"Configuring Azure Monitor Exporter for {name} telemetry with connection string: {appInsightsConnectionString}"); otelBuilder.WithLogging(logging => { logging.AddAzureMonitorLogExporter(options => From 959699e90bc3f465f1fc2c7f3ed85aa9e147df82 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Mon, 2 Feb 2026 14:04:55 -0800 Subject: [PATCH 02/11] cleanup --- .../Server/Commands/ServiceStartCommand.cs | 1 - .../src/Extensions/OpenTelemetryExtensions.cs | 23 ++++--------------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs b/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs index 7fa73f61d3..91bd5fc168 100644 --- a/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs +++ b/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs @@ -851,7 +851,6 @@ private static WebApplication UseHttpsRedirectionIfEnabled(WebApplication app) return null; } - Console.WriteLine($"Adding HTTP spans for incoming and outgoing requests with Azure Monitor exporter to connection string {connectionString}."); return Sdk.CreateTracerProviderBuilder() // captures incoming HTTP requests .AddAspNetCoreInstrumentation() diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index aba33ec173..d52c1b0f0d 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -22,8 +22,7 @@ public static class OpenTelemetryExtensions /// /// The App Insights connection string to send telemetry to Microsoft. /// - // private const string MicrosoftOwnedAppInsightsConnectionString = "InstrumentationKey=21e003c0-efee-4d3f-8a98-1868515aa2c9;IngestionEndpoint=https://centralus-2.in.applicationinsights.azure.com/;LiveEndpoint=https://centralus.livediagnostics.monitor.azure.com/;ApplicationId=f14f6a2d-6405-4f88-bd58-056f25fe274f"; - private const string MicrosoftOwnedAppInsightsConnectionString = "InstrumentationKey=4a9e69be-77aa-49cf-96a3-93f1c3f24b6d;IngestionEndpoint=https://eastus2-3.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus2.livediagnostics.monitor.azure.com/;ApplicationId=fb90db50-fbd5-4b62-a7d1-c17a74c2d735"; + private const string MicrosoftOwnedAppInsightsConnectionString = "InstrumentationKey=21e003c0-efee-4d3f-8a98-1868515aa2c9;IngestionEndpoint=https://centralus-2.in.applicationinsights.azure.com/;LiveEndpoint=https://centralus.livediagnostics.monitor.azure.com/;ApplicationId=f14f6a2d-6405-4f88-bd58-056f25fe274f"; public static void ConfigureOpenTelemetry(this IServiceCollection services) { @@ -51,18 +50,7 @@ public static void ConfigureOpenTelemetry(this IServiceCollection services) public static void ConfigureOpenTelemetryLogger(this ILoggingBuilder builder) { - // builder.AddOpenTelemetry(logger => - // { - // logger.AddAzureMonitorLogExporter(options => - // { - // var userProvidedAppInsightsConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING"); - - // if (!string.IsNullOrWhiteSpace(userProvidedAppInsightsConnectionString)) - // { - // options.ConnectionString = userProvidedAppInsightsConnectionString; - // } - // }); - // }); + // Do nothing here. The OpenTelemetry logger is configured in EnableAzureMonitor. } private static void EnableAzureMonitor(this IServiceCollection services) @@ -105,7 +93,7 @@ private static void EnableAzureMonitor(this IServiceCollection services) } // Configure Microsoft-owned telemetry only in RELEASE builds to avoid polluting telemetry during development. -// #if RELEASE +#if RELEASE // This environment variable can be used to disable Microsoft telemetry collection. // By default, Microsoft telemetry is enabled. var microsoftTelemetry = Environment.GetEnvironmentVariable("AZURE_MCP_COLLECT_TELEMETRY_MICROSOFT"); @@ -116,7 +104,7 @@ private static void EnableAzureMonitor(this IServiceCollection services) { ConfigureMicrosoftAzureMonitorExporter(otelBuilder, MicrosoftOwnedAppInsightsConnectionString, "Microsoft"); } -// #endif +#endif var enableOtlp = Environment.GetEnvironmentVariable("AZURE_MCP_ENABLE_OTLP_EXPORTER"); if (!string.IsNullOrEmpty(enableOtlp) && bool.TryParse(enableOtlp, out var shouldEnable) && shouldEnable) @@ -129,8 +117,6 @@ private static void EnableAzureMonitor(this IServiceCollection services) private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) { - Console.WriteLine($"Configuring Azure Monitor Exporter for {name} telemetry with connection string: {appInsightsConnectionString}"); - otelBuilder.WithMetrics(metrics => { metrics.AddAzureMonitorMetricExporter(options => @@ -152,7 +138,6 @@ private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTel private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) { - Console.WriteLine($"Configuring Azure Monitor Exporter for {name} telemetry with connection string: {appInsightsConnectionString}"); otelBuilder.WithLogging(logging => { logging.AddAzureMonitorLogExporter(options => From 863adedc62e83a7f5ca3058be9e4035374a65562 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Tue, 3 Feb 2026 10:17:32 -0800 Subject: [PATCH 03/11] add constants --- .../src/Extensions/OpenTelemetryExtensions.cs | 34 +++++++++++++------ .../src/Commands/TelemetryConstants.cs | 8 +++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index d52c1b0f0d..9a9ee05e19 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -5,11 +5,13 @@ using System.Runtime.InteropServices; using Azure.Mcp.Core.Configuration; using Azure.Mcp.Core.Services.Telemetry; +using Azure.Monitor.OpenTelemetry.AspNetCore; using Azure.Monitor.OpenTelemetry.Exporter; using Microsoft.Extensions.Azure; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; +using Microsoft.Mcp.Core.Commands; using OpenTelemetry.Logs; using OpenTelemetry.Metrics; using OpenTelemetry.Resources; @@ -89,11 +91,11 @@ private static void EnableAzureMonitor(this IServiceCollection services) if (!string.IsNullOrWhiteSpace(userProvidedAppInsightsConnectionString)) { // Configure telemetry to be sent to user-provided Application Insights instance regardless of build configuration. - ConfigureUserProvidedAzureMonitorExporter(otelBuilder, userProvidedAppInsightsConnectionString, "UserProvided"); + ConfigureUserProvidedAzureMonitorExporter(otelBuilder, userProvidedAppInsightsConnectionString); } // Configure Microsoft-owned telemetry only in RELEASE builds to avoid polluting telemetry during development. -#if RELEASE +// #if RELEASE // This environment variable can be used to disable Microsoft telemetry collection. // By default, Microsoft telemetry is enabled. var microsoftTelemetry = Environment.GetEnvironmentVariable("AZURE_MCP_COLLECT_TELEMETRY_MICROSOFT"); @@ -102,9 +104,9 @@ private static void EnableAzureMonitor(this IServiceCollection services) if (shouldCollectMicrosoftTelemetry) { - ConfigureMicrosoftAzureMonitorExporter(otelBuilder, MicrosoftOwnedAppInsightsConnectionString, "Microsoft"); + ConfigureMicrosoftAzureMonitorExporter(otelBuilder, MicrosoftOwnedAppInsightsConnectionString); } -#endif +// #endif var enableOtlp = Environment.GetEnvironmentVariable("AZURE_MCP_ENABLE_OTLP_EXPORTER"); if (!string.IsNullOrEmpty(enableOtlp) && bool.TryParse(enableOtlp, out var shouldEnable) && shouldEnable) @@ -115,7 +117,12 @@ private static void EnableAzureMonitor(this IServiceCollection services) } } - private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) + /// + /// Configures OpenTelemetry to use Azure Monitor exporters with Microsoft's Application Insights instance. + /// + /// The OpenTelemetry builder to configure. + /// The Application Insights connection string for Microsoft's telemetry instance. + private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString) { otelBuilder.WithMetrics(metrics => { @@ -123,7 +130,7 @@ private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTel { options.ConnectionString = appInsightsConnectionString; }, - name: name); + name: AppInsightsInstanceType.Microsoft); }); otelBuilder.WithTracing(tracing => @@ -132,11 +139,16 @@ private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTel { options.ConnectionString = appInsightsConnectionString; }, - name: name); + name: AppInsightsInstanceType.Microsoft); }); } - private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString, string name) + /// + /// Configures OpenTelemetry to use Azure Monitor exporters with a user-provided Application Insights connection string. + /// + /// The OpenTelemetry builder to configure. + /// The Application Insights connection string provided by the user. + private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString) { otelBuilder.WithLogging(logging => { @@ -144,7 +156,7 @@ private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.Open { options.ConnectionString = appInsightsConnectionString; }, - name: name); + name: AppInsightsInstanceType.UserProvided); }); otelBuilder.WithMetrics(metrics => @@ -153,7 +165,7 @@ private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.Open { options.ConnectionString = appInsightsConnectionString; }, - name: name); + name: AppInsightsInstanceType.UserProvided); }); otelBuilder.WithTracing(tracing => @@ -162,7 +174,7 @@ private static void ConfigureUserProvidedAzureMonitorExporter(OpenTelemetry.Open { options.ConnectionString = appInsightsConnectionString; }, - name: name); + name: AppInsightsInstanceType.UserProvided); }); } } diff --git a/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs b/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs index 57947f962d..2fd3936b0d 100644 --- a/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs +++ b/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using System.Security.Cryptography.X509Certificates; + namespace Microsoft.Mcp.Core.Commands; /// @@ -40,3 +42,9 @@ public class ActivityName public const string ToolExecuted = "ToolExecuted"; public const string ServerStarted = "ServerStarted"; } + +public class AppInsightsInstanceType +{ + public const string Microsoft = "Microsoft"; + public const string UserProvided = "UserProvided"; +} From 56bf65365d29033022a9d9a587a87c0cce62cf72 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Tue, 3 Feb 2026 10:18:26 -0800 Subject: [PATCH 04/11] release-only --- core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index 9a9ee05e19..345ec509c1 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -95,7 +95,7 @@ private static void EnableAzureMonitor(this IServiceCollection services) } // Configure Microsoft-owned telemetry only in RELEASE builds to avoid polluting telemetry during development. -// #if RELEASE +#if RELEASE // This environment variable can be used to disable Microsoft telemetry collection. // By default, Microsoft telemetry is enabled. var microsoftTelemetry = Environment.GetEnvironmentVariable("AZURE_MCP_COLLECT_TELEMETRY_MICROSOFT"); @@ -106,7 +106,7 @@ private static void EnableAzureMonitor(this IServiceCollection services) { ConfigureMicrosoftAzureMonitorExporter(otelBuilder, MicrosoftOwnedAppInsightsConnectionString); } -// #endif +#endif var enableOtlp = Environment.GetEnvironmentVariable("AZURE_MCP_ENABLE_OTLP_EXPORTER"); if (!string.IsNullOrEmpty(enableOtlp) && bool.TryParse(enableOtlp, out var shouldEnable) && shouldEnable) From 78517a81a97cddb9d680e04e13ed6b6227f82ff2 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Tue, 3 Feb 2026 10:35:26 -0800 Subject: [PATCH 05/11] remove unused import --- core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs b/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs index 2fd3936b0d..9e603b4a2b 100644 --- a/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs +++ b/core/Microsoft.Mcp.Core/src/Commands/TelemetryConstants.cs @@ -1,8 +1,6 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using System.Security.Cryptography.X509Certificates; - namespace Microsoft.Mcp.Core.Commands; /// From b84140bca4ced9cef0b409f0f5e2a35214345ca8 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Tue, 3 Feb 2026 11:07:12 -0800 Subject: [PATCH 06/11] changelog --- servers/Azure.Mcp.Server/changelog-entries/1770145613303.yaml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 servers/Azure.Mcp.Server/changelog-entries/1770145613303.yaml diff --git a/servers/Azure.Mcp.Server/changelog-entries/1770145613303.yaml b/servers/Azure.Mcp.Server/changelog-entries/1770145613303.yaml new file mode 100644 index 0000000000..a763eb93fb --- /dev/null +++ b/servers/Azure.Mcp.Server/changelog-entries/1770145613303.yaml @@ -0,0 +1,4 @@ +pr: 1638 +changes: + - section: "Features Added" + description: "Add log telemetry support for customer-owned AppInsights" \ No newline at end of file From 218ec03d8df677bd79715132e16bff1bde5db684 Mon Sep 17 00:00:00 2001 From: Srikanta <51379715+srnagar@users.noreply.github.com> Date: Tue, 3 Feb 2026 11:20:07 -0800 Subject: [PATCH 07/11] Update core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index 345ec509c1..bcdb0b951f 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -52,7 +52,9 @@ public static void ConfigureOpenTelemetry(this IServiceCollection services) public static void ConfigureOpenTelemetryLogger(this ILoggingBuilder builder) { - // Do nothing here. The OpenTelemetry logger is configured in EnableAzureMonitor. + // Intentionally left empty. OpenTelemetry logging is configured as part of EnableAzureMonitor + // when a telemetry destination (for example, a user-provided Application Insights instance) + // is enabled. This method does not perform any logging configuration itself. } private static void EnableAzureMonitor(this IServiceCollection services) From b857aa8e1763ae51e6101e895876246e8db667d1 Mon Sep 17 00:00:00 2001 From: Srikanta <51379715+srnagar@users.noreply.github.com> Date: Tue, 3 Feb 2026 11:20:18 -0800 Subject: [PATCH 08/11] Update core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index bcdb0b951f..e2fd0fa8d6 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -5,7 +5,6 @@ using System.Runtime.InteropServices; using Azure.Mcp.Core.Configuration; using Azure.Mcp.Core.Services.Telemetry; -using Azure.Monitor.OpenTelemetry.AspNetCore; using Azure.Monitor.OpenTelemetry.Exporter; using Microsoft.Extensions.Azure; using Microsoft.Extensions.DependencyInjection; From 3634bf18e2a28b77b8b8268e5b2bd1e5bd03fdf3 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Wed, 4 Feb 2026 11:36:11 -0800 Subject: [PATCH 09/11] remove unused method --- .../src/Areas/Server/Commands/ServiceStartCommand.cs | 3 --- .../src/Extensions/OpenTelemetryExtensions.cs | 8 +------- servers/Azure.Mcp.Server/src/Program.cs | 1 - 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs b/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs index 91bd5fc168..335470aa51 100644 --- a/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs +++ b/core/Azure.Mcp.Core/src/Areas/Server/Commands/ServiceStartCommand.cs @@ -405,7 +405,6 @@ private IHost CreateStdioHost(ServiceStartOptions serverOptions) .ConfigureLogging(logging => { logging.ClearProviders(); - logging.ConfigureOpenTelemetryLogger(); logging.AddEventSourceLogger(); if (serverOptions.Debug) @@ -451,7 +450,6 @@ private IHost CreateHttpHost(ServiceStartOptions serverOptions) // Configure logging builder.Logging.ClearProviders(); - builder.Logging.ConfigureOpenTelemetryLogger(); builder.Logging.AddEventSourceLogger(); builder.Logging.AddConsole(); ConfigureSupportLogging(builder.Logging, serverOptions); @@ -629,7 +627,6 @@ private IHost CreateIncomingAuthDisabledHttpHost(ServiceStartOptions serverOptio // Configure logging builder.Logging.ClearProviders(); - builder.Logging.ConfigureOpenTelemetryLogger(); builder.Logging.AddEventSourceLogger(); builder.Logging.AddConsole(); ConfigureSupportLogging(builder.Logging, serverOptions); diff --git a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs index e2fd0fa8d6..b0ae283231 100644 --- a/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs +++ b/core/Azure.Mcp.Core/src/Extensions/OpenTelemetryExtensions.cs @@ -49,13 +49,6 @@ public static void ConfigureOpenTelemetry(this IServiceCollection services) EnableAzureMonitor(services); } - public static void ConfigureOpenTelemetryLogger(this ILoggingBuilder builder) - { - // Intentionally left empty. OpenTelemetry logging is configured as part of EnableAzureMonitor - // when a telemetry destination (for example, a user-provided Application Insights instance) - // is enabled. This method does not perform any logging configuration itself. - } - private static void EnableAzureMonitor(this IServiceCollection services) { #if DEBUG @@ -125,6 +118,7 @@ private static void EnableAzureMonitor(this IServiceCollection services) /// The Application Insights connection string for Microsoft's telemetry instance. private static void ConfigureMicrosoftAzureMonitorExporter(OpenTelemetry.OpenTelemetryBuilder otelBuilder, string appInsightsConnectionString) { + // We don't configure logging for Microsoft telemetry to avoid sending potentially sensitive log data to Microsoft. otelBuilder.WithMetrics(metrics => { metrics.AddAzureMonitorMetricExporter(options => diff --git a/servers/Azure.Mcp.Server/src/Program.cs b/servers/Azure.Mcp.Server/src/Program.cs index c50d0fc156..6f8a165133 100644 --- a/servers/Azure.Mcp.Server/src/Program.cs +++ b/servers/Azure.Mcp.Server/src/Program.cs @@ -44,7 +44,6 @@ private static async Task Main(string[] args) services.AddLogging(builder => { - builder.ConfigureOpenTelemetryLogger(); builder.AddConsole(); builder.SetMinimumLevel(LogLevel.Information); }); From 6c19aa2a0567b1437ce3b971e020f131dbc38a3b Mon Sep 17 00:00:00 2001 From: Srikanta Date: Wed, 4 Feb 2026 12:10:36 -0800 Subject: [PATCH 10/11] remove unused method --- servers/Fabric.Mcp.Server/src/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/servers/Fabric.Mcp.Server/src/Program.cs b/servers/Fabric.Mcp.Server/src/Program.cs index c4ef999bcb..8331dad09b 100644 --- a/servers/Fabric.Mcp.Server/src/Program.cs +++ b/servers/Fabric.Mcp.Server/src/Program.cs @@ -37,7 +37,6 @@ private static async Task Main(string[] args) services.AddLogging(builder => { - builder.ConfigureOpenTelemetryLogger(); builder.AddConsole(); builder.SetMinimumLevel(LogLevel.Information); }); From 4c5d28ebca0fd2b0f874c43f9fe63b2311720be2 Mon Sep 17 00:00:00 2001 From: Srikanta Date: Wed, 4 Feb 2026 12:21:14 -0800 Subject: [PATCH 11/11] remove unused method --- servers/Template.Mcp.Server/src/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/servers/Template.Mcp.Server/src/Program.cs b/servers/Template.Mcp.Server/src/Program.cs index 928fb730f3..4d6f0c1f1b 100644 --- a/servers/Template.Mcp.Server/src/Program.cs +++ b/servers/Template.Mcp.Server/src/Program.cs @@ -34,7 +34,6 @@ private static async Task Main(string[] args) services.AddLogging(builder => { - builder.ConfigureOpenTelemetryLogger(); builder.AddConsole(); builder.SetMinimumLevel(LogLevel.Information); });