Skip to content

Commit c70ab79

Browse files
khanayan123claude
andcommitted
refactor: use ConfigurationKeys.Telemetry.RootSessionId instead of pragma hacks
Re-add _DD_ROOT_DOTNET_SESSION_ID to supported-configurations.yaml so it generates ConfigurationKeys.Telemetry.RootSessionId. RuntimeId.cs can now use that constant directly — no RootSessionEnvVar const, no #pragma DD0012 suppression needed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 66d7ef9 commit c70ab79

7 files changed

Lines changed: 37 additions & 8 deletions

File tree

tracer/src/Datadog.Trace/Configuration/supported-configurations.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1571,6 +1571,15 @@ supportedConfigurations:
15711571
documentation: |-
15721572
Configuration key for whether telemetry metrics should be sent.
15731573
<see cref="Datadog.Trace.Telemetry.TelemetrySettings.MetricsEnabled"/>
1574+
_DD_ROOT_DOTNET_SESSION_ID:
1575+
- implementation: A
1576+
type: string
1577+
default: null
1578+
product: Telemetry
1579+
const_name: RootSessionId
1580+
documentation: |-
1581+
Internal env var for propagating the root session ID to child processes.
1582+
Set automatically by the tracer at init time; not user-configurable.
15741583
DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES:
15751584
- implementation: A
15761585
type: int

tracer/src/Datadog.Trace/Generated/net461/Datadog.Trace.SourceGenerators/ConfigurationKeysGenerator/ConfigurationKeys.Telemetry.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,11 @@ internal static class Telemetry
105105
/// <see cref="Datadog.Trace.Telemetry.TelemetrySettings.MetricsEnabled"/>
106106
/// </summary>
107107
public const string MetricsEnabled = "DD_TELEMETRY_METRICS_ENABLED";
108+
109+
/// <summary>
110+
/// Internal env var for propagating the root session ID to child processes.
111+
/// Set automatically by the tracer at init time; not user-configurable.
112+
/// </summary>
113+
public const string RootSessionId = "_DD_ROOT_DOTNET_SESSION_ID";
108114
}
109115
}

tracer/src/Datadog.Trace/Generated/net6.0/Datadog.Trace.SourceGenerators/ConfigurationKeysGenerator/ConfigurationKeys.Telemetry.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,11 @@ internal static class Telemetry
105105
/// <see cref="Datadog.Trace.Telemetry.TelemetrySettings.MetricsEnabled"/>
106106
/// </summary>
107107
public const string MetricsEnabled = "DD_TELEMETRY_METRICS_ENABLED";
108+
109+
/// <summary>
110+
/// Internal env var for propagating the root session ID to child processes.
111+
/// Set automatically by the tracer at init time; not user-configurable.
112+
/// </summary>
113+
public const string RootSessionId = "_DD_ROOT_DOTNET_SESSION_ID";
108114
}
109115
}

tracer/src/Datadog.Trace/Generated/netcoreapp3.1/Datadog.Trace.SourceGenerators/ConfigurationKeysGenerator/ConfigurationKeys.Telemetry.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,11 @@ internal static class Telemetry
105105
/// <see cref="Datadog.Trace.Telemetry.TelemetrySettings.MetricsEnabled"/>
106106
/// </summary>
107107
public const string MetricsEnabled = "DD_TELEMETRY_METRICS_ENABLED";
108+
109+
/// <summary>
110+
/// Internal env var for propagating the root session ID to child processes.
111+
/// Set automatically by the tracer at init time; not user-configurable.
112+
/// </summary>
113+
public const string RootSessionId = "_DD_ROOT_DOTNET_SESSION_ID";
108114
}
109115
}

tracer/src/Datadog.Trace/Generated/netstandard2.0/Datadog.Trace.SourceGenerators/ConfigurationKeysGenerator/ConfigurationKeys.Telemetry.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,5 +105,11 @@ internal static class Telemetry
105105
/// <see cref="Datadog.Trace.Telemetry.TelemetrySettings.MetricsEnabled"/>
106106
/// </summary>
107107
public const string MetricsEnabled = "DD_TELEMETRY_METRICS_ENABLED";
108+
109+
/// <summary>
110+
/// Internal env var for propagating the root session ID to child processes.
111+
/// Set automatically by the tracer at init time; not user-configurable.
112+
/// </summary>
113+
public const string RootSessionId = "_DD_ROOT_DOTNET_SESSION_ID";
108114
}
109115
}

tracer/src/Datadog.Trace/Util/RuntimeId.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@
55

66
using System;
77
using System.Threading;
8+
using Datadog.Trace.Configuration;
89
using Datadog.Trace.Logging;
910

1011
namespace Datadog.Trace.Util
1112
{
1213
internal static class RuntimeId
1314
{
14-
// Internal propagation env var, not user-configurable — intentionally not in ConfigurationKeys.
15-
internal const string RootSessionEnvVar = "_DD_ROOT_DOTNET_SESSION_ID";
16-
1715
private static readonly IDatadogLogger Log = DatadogLogging.GetLoggerFor(typeof(RuntimeId));
1816
private static string _runtimeId;
1917
private static string _rootSessionId;
@@ -38,17 +36,15 @@ private static string GetRuntimeIdImpl()
3836

3937
private static string GetRootSessionIdImpl()
4038
{
41-
#pragma warning disable DD0012 // internal propagation env var, not user-configurable
42-
var inherited = EnvironmentHelpers.GetEnvironmentVariable(RootSessionEnvVar);
43-
#pragma warning restore DD0012
39+
var inherited = EnvironmentHelpers.GetEnvironmentVariable(ConfigurationKeys.Telemetry.RootSessionId);
4440
if (!string.IsNullOrEmpty(inherited))
4541
{
4642
Log.Debug("Inherited root session ID from parent: {RootSessionId}", inherited);
4743
return inherited;
4844
}
4945

5046
var rootId = Get();
51-
EnvironmentHelpers.SetEnvironmentVariable(RootSessionEnvVar, rootId);
47+
EnvironmentHelpers.SetEnvironmentVariable(ConfigurationKeys.Telemetry.RootSessionId, rootId);
5248
return rootId;
5349
}
5450
}

tracer/test/Datadog.Trace.Tests/TracerTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,7 @@ public void RootSessionId_DefaultsToRuntimeId()
572572
public void RootSessionId_SetsEnvVar()
573573
{
574574
var rootSessionId = Datadog.Trace.Util.RuntimeId.GetRootSessionId();
575-
Environment.GetEnvironmentVariable(Datadog.Trace.Util.RuntimeId.RootSessionEnvVar)
575+
Environment.GetEnvironmentVariable(ConfigurationKeys.Telemetry.RootSessionId)
576576
.Should().Be(rootSessionId);
577577
}
578578

0 commit comments

Comments
 (0)