Skip to content

Commit 75da554

Browse files
committed
Expose MutableSettings on PerTraceSettings, as a way to provide the default service name
1 parent 5e339a2 commit 75da554

File tree

8 files changed

+16
-27
lines changed

8 files changed

+16
-27
lines changed

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public TestOptimizationTracerManager(
3838
ITelemetryController telemetry,
3939
IDiscoveryService discoveryService,
4040
DataStreamsManager dataStreamsManager,
41-
string defaultServiceName,
4241
IGitMetadataTagsProvider gitMetadataTagsProvider,
4342
ITraceSampler traceSampler,
4443
ISpanSampler spanSampler,
@@ -56,7 +55,6 @@ public TestOptimizationTracerManager(
5655
telemetry,
5756
discoveryService,
5857
dataStreamsManager,
59-
defaultServiceName,
6058
gitMetadataTagsProvider,
6159
traceSampler,
6260
spanSampler,
@@ -156,7 +154,6 @@ public LockedManager(
156154
ITelemetryController telemetry,
157155
IDiscoveryService discoveryService,
158156
DataStreamsManager dataStreamsManager,
159-
string defaultServiceName,
160157
IGitMetadataTagsProvider gitMetadataTagsProvider,
161158
ITraceSampler traceSampler,
162159
ISpanSampler spanSampler,
@@ -174,7 +171,6 @@ public LockedManager(
174171
telemetry,
175172
discoveryService,
176173
dataStreamsManager,
177-
defaultServiceName,
178174
gitMetadataTagsProvider,
179175
traceSampler,
180176
spanSampler,

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ protected override TracerManager CreateTracerManagerFrom(
4747
ITelemetryController telemetry,
4848
IDiscoveryService discoveryService,
4949
DataStreamsManager dataStreamsManager,
50-
string defaultServiceName,
5150
IGitMetadataTagsProvider gitMetadataTagsProvider,
5251
ITraceSampler traceSampler,
5352
ISpanSampler spanSampler,
@@ -59,10 +58,10 @@ protected override TracerManager CreateTracerManagerFrom(
5958
telemetry.RecordTestOptimizationSettings(_settings);
6059
if (_testOptimizationTracerManagement.UseLockedTracerManager)
6160
{
62-
return new TestOptimizationTracerManager.LockedManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, defaultServiceName, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
61+
return new TestOptimizationTracerManager.LockedManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
6362
}
6463

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

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

tracer/src/Datadog.Trace/Configuration/PerTraceSettings.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@ internal class PerTraceSettings
1616
{
1717
private readonly ConcurrentDictionary<string, string> _serviceNameCache = new();
1818

19-
public PerTraceSettings(ITraceSampler? traceSampler, ISpanSampler? spanSampler, IReadOnlyDictionary<string, string> serviceNames, NamingSchema schema)
19+
public PerTraceSettings(ITraceSampler? traceSampler, ISpanSampler? spanSampler, IReadOnlyDictionary<string, string> serviceNames, NamingSchema schema, MutableSettings mutableSettings)
2020
{
2121
TraceSampler = traceSampler;
2222
SpanSampler = spanSampler;
2323
ServiceNames = serviceNames;
2424
Schema = schema;
2525
HasResourceBasedSamplingRule = (traceSampler?.HasResourceBasedSamplingRule ?? false) || (spanSampler?.HasResourceBasedSamplingRule ?? false);
26+
Settings = mutableSettings;
2627
}
2728

2829
public ITraceSampler? TraceSampler { get; }
@@ -35,6 +36,8 @@ public PerTraceSettings(ITraceSampler? traceSampler, ISpanSampler? spanSampler,
3536

3637
public bool HasResourceBasedSamplingRule { get; }
3738

39+
public MutableSettings Settings { get; }
40+
3841
internal string GetServiceName(Tracer tracer, string serviceName)
3942
{
4043
if (ServiceNames.TryGetValue(serviceName, out var name))

tracer/src/Datadog.Trace/Debugger/DebuggerManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private string GetServiceName(TracerSettings tracerSettings)
111111
catch (Exception e)
112112
{
113113
Log.Error(e, "Could not set `DynamicInstrumentationHelper.ServiceName`.");
114-
return TracerManager.Instance.DefaultServiceName;
114+
return tracerSettings.MutableSettings.DefaultServiceName;
115115
}
116116
}
117117

tracer/src/Datadog.Trace/Tracer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ public IScope ActiveScope
220220
/// <summary>
221221
/// Gets the default service name for traces where a service name is not specified.
222222
/// </summary>
223-
public string DefaultServiceName => TracerManager.DefaultServiceName;
223+
public string DefaultServiceName => CurrentTraceSettings.Settings.DefaultServiceName;
224224

225225
/// <summary>
226226
/// Gets the git metadata provider.

tracer/src/Datadog.Trace/TracerManager.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ public TracerManager(
6363
ITelemetryController telemetry,
6464
IDiscoveryService discoveryService,
6565
DataStreamsManager dataStreamsManager,
66-
string defaultServiceName,
6766
IGitMetadataTagsProvider gitMetadataTagsProvider,
6867
ITraceSampler traceSampler,
6968
ISpanSampler spanSampler,
@@ -78,7 +77,6 @@ public TracerManager(
7877
ScopeManager = scopeManager;
7978
Statsd = statsd;
8079
RuntimeMetrics = runtimeMetricsWriter;
81-
DefaultServiceName = defaultServiceName;
8280
GitMetadataTagsProvider = gitMetadataTagsProvider;
8381
DataStreamsManager = dataStreamsManager;
8482
DirectLogSubmission = directLogSubmission;
@@ -102,8 +100,8 @@ public TracerManager(
102100
TracerFlareManager = tracerFlareManager;
103101
SpanEventsManager = new SpanEventsManager(discoveryService);
104102

105-
var schema = new NamingSchema(settings.MetadataSchemaVersion, settings.PeerServiceTagsEnabled, settings.RemoveClientServiceNamesEnabled, defaultServiceName, settings.ServiceNameMappings, settings.PeerServiceNameMappings);
106-
PerTraceSettings = new(traceSampler, spanSampler, settings.ServiceNameMappings, schema);
103+
var schema = new NamingSchema(settings.MetadataSchemaVersion, settings.PeerServiceTagsEnabled, settings.RemoveClientServiceNamesEnabled, settings.MutableSettings.DefaultServiceName, settings.ServiceNameMappings, settings.PeerServiceNameMappings);
104+
PerTraceSettings = new(traceSampler, spanSampler, settings.ServiceNameMappings, schema, settings.MutableSettings);
107105

108106
SpanContextPropagator = SpanContextPropagatorFactory.GetSpanContextPropagator(settings.PropagationStyleInject, settings.PropagationStyleExtract, settings.PropagationExtractFirstOnly, settings.PropagationBehaviorExtract);
109107
}
@@ -123,11 +121,6 @@ public static TracerManager Instance
123121
}
124122
}
125123

126-
/// <summary>
127-
/// Gets the default service name for traces where a service name is not specified.
128-
/// </summary>
129-
public string DefaultServiceName { get; }
130-
131124
public IGitMetadataTagsProvider GitMetadataTagsProvider { get; }
132125

133126
/// <summary>
@@ -390,7 +383,7 @@ void WriteDictionary(IReadOnlyDictionary<string, string> dictionary)
390383
writer.WriteValue(instanceSettings.TraceEnabled);
391384

392385
writer.WritePropertyName("service");
393-
writer.WriteValue(instance.DefaultServiceName);
386+
writer.WriteValue(instance.PerTraceSettings.Settings.DefaultServiceName);
394387

395388
writer.WritePropertyName("agent_url");
396389
writer.WriteValue(instanceSettings.Exporter.TraceAgentUriBase);

tracer/src/Datadog.Trace/TracerManagerFactory.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ internal TracerManager CreateTracerManager(TracerSettings settings, TracerManage
7474
{
7575
if (Profiler.Instance.Status.IsProfilerReady)
7676
{
77-
NativeInterop.SetApplicationInfoForAppDomain(RuntimeId.Get(), tracer.DefaultServiceName, tracer.Settings.Environment, tracer.Settings.ServiceVersion);
77+
NativeInterop.SetApplicationInfoForAppDomain(RuntimeId.Get(), tracer.PerTraceSettings.Settings.DefaultServiceName, tracer.Settings.Environment, tracer.Settings.ServiceVersion);
7878
}
7979
}
8080
catch (Exception ex)
@@ -121,7 +121,7 @@ internal TracerManager CreateTracerManager(
121121
Log.Warning(libdatadogAvailaibility.Exception, "An exception occurred while checking if libdatadog is available");
122122
}
123123

124-
var defaultServiceName = settings.MutableSettings.ServiceName ?? ApplicationNameHelpers.GetFallbackApplicationName(settings);
124+
var defaultServiceName = settings.MutableSettings.DefaultServiceName;
125125

126126
discoveryService ??= GetDiscoveryService(settings);
127127

@@ -183,7 +183,7 @@ internal TracerManager CreateTracerManager(
183183
var rcmApi = RemoteConfigurationApiFactory.Create(settings.Exporter, rcmSettings, discoveryService);
184184

185185
// Service Name must be lowercase, otherwise the agent will not be able to find the service
186-
var serviceName = TraceUtil.NormalizeTag(settings.ServiceName ?? defaultServiceName);
186+
var serviceName = TraceUtil.NormalizeTag(defaultServiceName);
187187

188188
remoteConfigurationManager =
189189
RemoteConfigurationManager.Create(
@@ -225,7 +225,6 @@ internal TracerManager CreateTracerManager(
225225
telemetry,
226226
discoveryService,
227227
dataStreamsManager,
228-
defaultServiceName,
229228
gitMetadataTagsProvider,
230229
sampler,
231230
GetSpanSampler(settings),
@@ -261,15 +260,14 @@ protected virtual TracerManager CreateTracerManagerFrom(
261260
ITelemetryController telemetry,
262261
IDiscoveryService discoveryService,
263262
DataStreamsManager dataStreamsManager,
264-
string defaultServiceName,
265263
IGitMetadataTagsProvider gitMetadataTagsProvider,
266264
ITraceSampler traceSampler,
267265
ISpanSampler spanSampler,
268266
IRemoteConfigurationManager remoteConfigurationManager,
269267
IDynamicConfigurationManager dynamicConfigurationManager,
270268
ITracerFlareManager tracerFlareManager,
271269
ISpanEventsManager spanEventsManager)
272-
=> new TracerManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, defaultServiceName, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
270+
=> new TracerManager(settings, agentWriter, scopeManager, statsd, runtimeMetrics, logSubmissionManager, telemetry, discoveryService, dataStreamsManager, gitMetadataTagsProvider, traceSampler, spanSampler, remoteConfigurationManager, dynamicConfigurationManager, tracerFlareManager, spanEventsManager);
273271

274272
protected virtual ITraceSampler GetSampler(TracerSettings settings)
275273
{

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ internal LockedTracer()
121121
private class LockedTracerManager : TracerManager, ILockedTracer
122122
{
123123
public LockedTracerManager()
124-
: base(new TracerSettings(), null, null, null, null, null, null, null, null, null, null, null, null, Mock.Of<IRemoteConfigurationManager>(), Mock.Of<IDynamicConfigurationManager>(), Mock.Of<ITracerFlareManager>(), Mock.Of<ISpanEventsManager>())
124+
: base(new TracerSettings(), null, null, null, null, null, null, null, null, null, null, null, Mock.Of<IRemoteConfigurationManager>(), Mock.Of<IDynamicConfigurationManager>(), Mock.Of<ITracerFlareManager>(), Mock.Of<ISpanEventsManager>())
125125
{
126126
}
127127
}

0 commit comments

Comments
 (0)