Skip to content

Commit 8b09597

Browse files
committed
Store the SettingsManager on the global TracerManager instance
1 parent 6c0290a commit 8b09597

File tree

6 files changed

+30
-13
lines changed

6 files changed

+30
-13
lines changed

tracer/src/Datadog.Trace/Ci/TestOptimizationTracerManager.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ public TestOptimizationTracerManager(
4444
IRemoteConfigurationManager remoteConfigurationManager,
4545
IDynamicConfigurationManager dynamicConfigurationManager,
4646
ITracerFlareManager tracerFlareManager,
47-
ISpanEventsManager spanEventsManager)
47+
ISpanEventsManager spanEventsManager,
48+
SettingsManager settingsManager)
4849
: base(
4950
settings,
5051
agentWriter,
@@ -62,6 +63,7 @@ public TestOptimizationTracerManager(
6263
dynamicConfigurationManager,
6364
tracerFlareManager,
6465
spanEventsManager,
66+
settingsManager,
6567
GetProcessors(settings.PartialFlushEnabled, agentWriter is CIVisibilityProtocolWriter))
6668
{
6769
}
@@ -160,7 +162,8 @@ public LockedManager(
160162
IRemoteConfigurationManager remoteConfigurationManager,
161163
IDynamicConfigurationManager dynamicConfigurationManager,
162164
ITracerFlareManager tracerFlareManager,
163-
ISpanEventsManager spanEventsManager)
165+
ISpanEventsManager spanEventsManager,
166+
SettingsManager settingsManager)
164167
: base(
165168
settings,
166169
agentWriter,
@@ -177,7 +180,8 @@ public LockedManager(
177180
remoteConfigurationManager,
178181
dynamicConfigurationManager,
179182
tracerFlareManager,
180-
spanEventsManager)
183+
spanEventsManager,
184+
settingsManager)
181185
{
182186
}
183187
}

tracer/src/Datadog.Trace/Ci/TestOptimizationTracerManagerFactory.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,16 @@ protected override TracerManager CreateTracerManagerFrom(
5353
IRemoteConfigurationManager remoteConfigurationManager,
5454
IDynamicConfigurationManager dynamicConfigurationManager,
5555
ITracerFlareManager tracerFlareManager,
56-
ISpanEventsManager spanEventsManager)
56+
ISpanEventsManager spanEventsManager,
57+
SettingsManager settingsManager)
5758
{
5859
telemetry.RecordTestOptimizationSettings(_settings);
5960
if (_testOptimizationTracerManagement.UseLockedTracerManager)
6061
{
61-
return new TestOptimizationTracerManager.LockedManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
62+
return new TestOptimizationTracerManager.LockedManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager, settingsManager);
6263
}
6364

64-
return new TestOptimizationTracerManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
65+
return new TestOptimizationTracerManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager, settingsManager);
6566
}
6667

6768
protected override ITelemetryController CreateTelemetryController(TracerSettings settings, IDiscoveryService discoveryService)

tracer/src/Datadog.Trace/Tracer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class Tracer : IDatadogTracer, IDatadogOpenTracingTracer
5252
/// The <see cref="TracerManager"/> created will be scoped specifically to this instance.
5353
/// </summary>
5454
internal Tracer(TracerSettings settings, IAgentWriter agentWriter, ITraceSampler sampler, IScopeManager scopeManager, IDogStatsd statsd, ITelemetryController telemetry = null, IDiscoveryService discoveryService = null)
55-
: this(TracerManagerFactory.Instance.CreateTracerManager(settings, agentWriter, sampler, scopeManager, statsd, runtimeMetrics: null, logSubmissionManager: null, telemetry: telemetry ?? NullTelemetryController.Instance, discoveryService ?? NullDiscoveryService.Instance, dataStreamsManager: null, remoteConfigurationManager: null, dynamicConfigurationManager: null, tracerFlareManager: null, spanEventsManager: null))
55+
: this(TracerManagerFactory.Instance.CreateTracerManager(settings, agentWriter, sampler, scopeManager, statsd, runtimeMetrics: null, logSubmissionManager: null, telemetry: telemetry ?? NullTelemetryController.Instance, discoveryService ?? NullDiscoveryService.Instance, dataStreamsManager: null, remoteConfigurationManager: null, dynamicConfigurationManager: null, tracerFlareManager: null, spanEventsManager: null, settingsManager: null))
5656
{
5757
}
5858

tracer/src/Datadog.Trace/TracerManager.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ public TracerManager(
7070
IDynamicConfigurationManager dynamicConfigurationManager,
7171
ITracerFlareManager tracerFlareManager,
7272
ISpanEventsManager spanEventsManager,
73+
SettingsManager settingsManager,
7374
ITraceProcessor[] traceProcessors = null)
7475
{
7576
Settings = settings;
@@ -98,6 +99,7 @@ public TracerManager(
9899
RemoteConfigurationManager = remoteConfigurationManager;
99100
DynamicConfigurationManager = dynamicConfigurationManager;
100101
TracerFlareManager = tracerFlareManager;
102+
SettingsManager = settingsManager;
101103
SpanEventsManager = new SpanEventsManager(discoveryService);
102104

103105
var schema = new NamingSchema(settings.MetadataSchemaVersion, settings.PeerServiceTagsEnabled, settings.RemoveClientServiceNamesEnabled, settings.MutableSettings.DefaultServiceName, settings.MutableSettings.ServiceNameMappings, settings.PeerServiceNameMappings);
@@ -158,6 +160,8 @@ public static TracerManager Instance
158160

159161
public ITracerFlareManager TracerFlareManager { get; }
160162

163+
public SettingsManager SettingsManager { get; }
164+
161165
public RuntimeMetricsWriter RuntimeMetrics { get; }
162166

163167
public ISpanEventsManager SpanEventsManager { get; }

tracer/src/Datadog.Trace/TracerManagerFactory.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ internal TracerManager CreateTracerManager(TracerSettings settings, TracerManage
6868
remoteConfigurationManager: null,
6969
dynamicConfigurationManager: null,
7070
tracerFlareManager: null,
71-
spanEventsManager: null);
71+
spanEventsManager: null,
72+
settingsManager: previous?.SettingsManager);
7273

7374
try
7475
{
@@ -107,7 +108,8 @@ internal TracerManager CreateTracerManager(
107108
IRemoteConfigurationManager remoteConfigurationManager,
108109
IDynamicConfigurationManager dynamicConfigurationManager,
109110
ITracerFlareManager tracerFlareManager,
110-
ISpanEventsManager spanEventsManager)
111+
ISpanEventsManager spanEventsManager,
112+
SettingsManager settingsManager)
111113
{
112114
settings ??= TracerSettings.FromDefaultSourcesInternal();
113115
var result = GlobalConfigurationSource.CreationResult;
@@ -116,6 +118,9 @@ internal TracerManager CreateTracerManager(
116118
Log.Warning(result.Exception, "Failed to create the global configuration source with status: {Status} and error message: {ErrorMessage}", result.Result.ToString(), result.ErrorMessage);
117119
}
118120

121+
// TODO: Move the initial settings from TracerSettings to be created in SettingsManager here and not exposed in TracerSettings
122+
settingsManager ??= new SettingsManager(settings, settings.InitialMutableSettings, settings.Exporter);
123+
119124
var libdatadogAvailaibility = LibDatadogAvailabilityHelper.IsLibDatadogAvailable;
120125
if (libdatadogAvailaibility.Exception is not null)
121126
{
@@ -232,7 +237,8 @@ internal TracerManager CreateTracerManager(
232237
remoteConfigurationManager,
233238
dynamicConfigurationManager,
234239
tracerFlareManager,
235-
spanEventsManager);
240+
spanEventsManager,
241+
settingsManager);
236242
}
237243

238244
protected virtual ITelemetryController CreateTelemetryController(TracerSettings settings, IDiscoveryService discoveryService)
@@ -267,8 +273,9 @@ protected virtual TracerManager CreateTracerManagerFrom(
267273
IRemoteConfigurationManager remoteConfigurationManager,
268274
IDynamicConfigurationManager dynamicConfigurationManager,
269275
ITracerFlareManager tracerFlareManager,
270-
ISpanEventsManager spanEventsManager)
271-
=> new TracerManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
276+
ISpanEventsManager spanEventsManager,
277+
SettingsManager settingsManager)
278+
=> new TracerManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager, settingsManager);
272279

273280
protected virtual ITraceSampler GetSampler(TracerSettings settings)
274281
{

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ private static TracerManager CreateTracerManager(TracerSettings settings)
119119
remoteConfigurationManager: null,
120120
dynamicConfigurationManager: null,
121121
tracerFlareManager: null,
122-
spanEventsManager: null);
122+
spanEventsManager: null,
123+
settingsManager: null);
123124

124125
static DirectLogSubmissionManager BuildLogSubmissionManager()
125126
=> DirectLogSubmissionManager.Create(

0 commit comments

Comments
 (0)