From f868b7242af040a9dd0c5eb15f058027585635c8 Mon Sep 17 00:00:00 2001 From: Caleb Kiage <747955+calebkiage@users.noreply.github.com> Date: Tue, 18 Mar 2025 12:12:26 +0300 Subject: [PATCH] Add kiota telemetry opt-out --- src/kiota/Extension/KiotaHostExtensions.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/kiota/Extension/KiotaHostExtensions.cs b/src/kiota/Extension/KiotaHostExtensions.cs index 47bd3ae25f..66b07527d5 100644 --- a/src/kiota/Extension/KiotaHostExtensions.cs +++ b/src/kiota/Extension/KiotaHostExtensions.cs @@ -13,6 +13,8 @@ namespace kiota.Extension; internal static class KiotaHostExtensions { + private const string TelemetryOptOutKey = "KIOTA_CLI_TELEMETRY_OPTOUT"; + internal static IHostBuilder ConfigureKiotaTelemetryServices(this IHostBuilder hostBuilder) { return hostBuilder.ConfigureServices(ConfigureServiceContainer); @@ -22,7 +24,10 @@ static void ConfigureServiceContainer(HostBuilderContext context, IServiceCollec TelemetryConfig cfg = new(); var section = context.Configuration.GetSection(TelemetryConfig.ConfigSectionKey); section.Bind(cfg); - if (!cfg.Disabled) + // Spec mandates using an environment variable for opt-out + // cfg.Disabled acts as a feature flag, the env var is an option. + var disabled = Environment.GetEnvironmentVariable(TelemetryOptOutKey)?.ToLowerInvariant(); + if (!cfg.Disabled && disabled is not ("1" or "true")) { // Only register if telemetry is enabled. var openTelemetryBuilder = services.AddOpenTelemetry()