Skip to content

Commit 7a823fe

Browse files
authored
Fix calls to IsIntegrationEnabled(), IsErrorStatusCode(), and GetIntegrationAnalyticsSampleRate() (#7544)
## Summary of changes Fix usages of `IsIntegrationEnabled()`, `IsErrorStatusCode()`, and `GetIntegrationAnalyticsSampleRate()` to use `MutableSettings` instead of `TracerSettings` ## Reason for change These functions are dependent on `MutableSettings`, and are exposed there, so making sure we call the methods there, and remove the delegation from `TracerSettings` entirely. ## Implementation details - Find and replace usages - Remove the old delegating methods ## Test coverage Just a refactor, so covered by existing tests ## Other details https://datadoghq.atlassian.net/browse/LANGPLAT-819 Part of a config stack - #7522 - #7525 - #7530 - #7532 - #7543 - #7544 👈 - #7695
1 parent 3a19f0f commit 7a823fe

File tree

74 files changed

+208
-207
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+208
-207
lines changed

tracer/src/Datadog.Trace/Activity/Handlers/AzureServiceBusActivityHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void ActivityStopped<T>(string sourceName, T activity)
3535
where T : IActivity
3636
{
3737
var dataStreamsManager = Tracer.Instance.TracerManager.DataStreamsManager;
38-
if (Tracer.Instance.Settings.IsIntegrationEnabled(IntegrationId.AzureServiceBus)
38+
if (Tracer.Instance.CurrentTraceSettings.Settings.IsIntegrationEnabled(IntegrationId.AzureServiceBus)
3939
&& dataStreamsManager.IsEnabled
4040
&& activity.Instance is not null
4141
&& activity.OperationName == "Message"

tracer/src/Datadog.Trace/AspNet/TracingHttpModule.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ private void OnBeginRequest(object sender, EventArgs eventArgs)
134134
{
135135
var tracer = Tracer.Instance;
136136

137-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId))
137+
if (!tracer.CurrentTraceSettings.Settings.IsIntegrationEnabled(IntegrationId))
138138
{
139139
// integration disabled
140140
return;
@@ -207,7 +207,7 @@ private void OnBeginRequest(object sender, EventArgs eventArgs)
207207
Headers.Ip.RequestIpExtractor.AddIpToTags(httpRequest.UserHostAddress, httpRequest.IsSecureConnection, key => requestHeaders[key], tracer.Settings.IpHeader, tags);
208208
}
209209

210-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: true);
210+
tags.SetAnalyticsSampleRate(IntegrationId, tracer.CurrentTraceSettings.Settings, enabledWithGlobalSetting: true);
211211

212212
// Decorate the incoming HTTP Request with distributed tracing headers
213213
// in case the next processor cannot access the stored Scope

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/DynamoDb/AwsDynamoDbCommon.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ public static Scope CreateScope(Tracer tracer, string operation, out AwsDynamoDb
2525
{
2626
tags = null;
2727

28-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
28+
var perTraceSettings = tracer.CurrentTraceSettings;
29+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
2930
{
3031
// integration disabled, don't create a scope, skip this trace
3132
return null;
@@ -35,8 +36,8 @@ public static Scope CreateScope(Tracer tracer, string operation, out AwsDynamoDb
3536

3637
try
3738
{
38-
tags = tracer.CurrentTraceSettings.Schema.Database.CreateAwsDynamoDbTags();
39-
var serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsDynamoDbServiceName);
39+
tags = perTraceSettings.Schema.Database.CreateAwsDynamoDbTags();
40+
var serviceName = perTraceSettings.GetServiceName(DatadogAwsDynamoDbServiceName);
4041
scope = tracer.StartActiveInternal(DynamoDbOperationName, parent: parentContext, tags: tags, serviceName: serviceName);
4142
var span = scope.Span;
4243

@@ -47,7 +48,7 @@ public static Scope CreateScope(Tracer tracer, string operation, out AwsDynamoDb
4748

4849
tags.Service = DynamoDbServiceName;
4950
tags.Operation = operation;
50-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
51+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
5152
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
5253
}
5354
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/EventBridge/AwsEventBridgeCommon.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ internal static class AwsEventBridgeCommon
2929
{
3030
tags = null;
3131

32-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
32+
var perTraceSettings = tracer.CurrentTraceSettings;
33+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
3334
{
3435
// integration disabled, don't create a scope, skip this trace
3536
return null;
@@ -39,8 +40,8 @@ internal static class AwsEventBridgeCommon
3940

4041
try
4142
{
42-
tags = tracer.CurrentTraceSettings.Schema.Messaging.CreateAwsEventBridgeTags(spanKind);
43-
var serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsEventBridgeServiceName);
43+
tags = perTraceSettings.Schema.Messaging.CreateAwsEventBridgeTags(spanKind);
44+
var serviceName = perTraceSettings.GetServiceName(DatadogAwsEventBridgeServiceName);
4445
var operationName = GetOperationName(tracer);
4546
scope = tracer.StartActiveInternal(operationName, parent: parentContext, tags: tags, serviceName: serviceName);
4647
var span = scope.Span;
@@ -50,7 +51,7 @@ internal static class AwsEventBridgeCommon
5051

5152
tags.Service = EventBridgeServiceName;
5253
tags.Operation = operation;
53-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
54+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
5455
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
5556
}
5657
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/Kinesis/AwsKinesisCommon.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ internal static class AwsKinesisCommon
4848
{
4949
tags = null;
5050

51-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
51+
var perTraceSettings = tracer.CurrentTraceSettings;
52+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
5253
{
5354
// integration disabled, don't create a scope, skip this trace
5455
return null;
@@ -58,9 +59,9 @@ internal static class AwsKinesisCommon
5859

5960
try
6061
{
61-
tags = tracer.CurrentTraceSettings.Schema.Messaging.CreateAwsKinesisTags(spanKind);
62-
string serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsKinesisServiceName);
63-
string operationName = tracer.CurrentTraceSettings.Schema.Messaging.GetOutboundOperationName(KinesisOperationName);
62+
tags = perTraceSettings.Schema.Messaging.CreateAwsKinesisTags(spanKind);
63+
string serviceName = perTraceSettings.GetServiceName(DatadogAwsKinesisServiceName);
64+
string operationName = perTraceSettings.Schema.Messaging.GetOutboundOperationName(KinesisOperationName);
6465
scope = tracer.StartActiveInternal(operationName, parent: parentContext, tags: tags, serviceName: serviceName);
6566
var span = scope.Span;
6667

@@ -69,7 +70,7 @@ internal static class AwsKinesisCommon
6970

7071
tags.Service = KinesisServiceName;
7172
tags.Operation = operation;
72-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
73+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
7374
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
7475
}
7576
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/S3/AwsS3Common.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ internal static class AwsS3Common
2727
{
2828
tags = null;
2929

30-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
30+
var perTraceSettings = tracer.CurrentTraceSettings;
31+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
3132
{
3233
// integration disabled, don't create a scope, skip this trace
3334
return null;
@@ -36,8 +37,8 @@ internal static class AwsS3Common
3637
Scope? scope = null;
3738
try
3839
{
39-
tags = tracer.CurrentTraceSettings.Schema.Messaging.CreateAwsS3Tags(spanKind);
40-
var serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsS3ServiceName);
40+
tags = perTraceSettings.Schema.Messaging.CreateAwsS3Tags(spanKind);
41+
var serviceName = perTraceSettings.GetServiceName(DatadogAwsS3ServiceName);
4142
var operationName = GetOperationName(tracer);
4243
scope = tracer.StartActiveInternal(operationName, parent: parentContext, tags: tags, serviceName: serviceName);
4344
var span = scope.Span;
@@ -47,7 +48,7 @@ internal static class AwsS3Common
4748

4849
tags.Service = S3ServiceName;
4950
tags.Operation = operation;
50-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
51+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
5152
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
5253
}
5354
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/SNS/AwsSnsCommon.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ internal static class AwsSnsCommon
2828
{
2929
tags = null;
3030

31-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
31+
var perTraceSettings = tracer.CurrentTraceSettings;
32+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
3233
{
3334
// integration disabled, don't create a scope, skip this trace
3435
return null;
@@ -38,8 +39,8 @@ internal static class AwsSnsCommon
3839

3940
try
4041
{
41-
tags = tracer.CurrentTraceSettings.Schema.Messaging.CreateAwsSnsTags(spanKind);
42-
var serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsSnsServiceName);
42+
tags = perTraceSettings.Schema.Messaging.CreateAwsSnsTags(spanKind);
43+
var serviceName = perTraceSettings.GetServiceName(DatadogAwsSnsServiceName);
4344
var operationName = GetOperationName(tracer, spanKind);
4445
scope = tracer.StartActiveInternal(operationName, parent: parentContext, tags: tags, serviceName: serviceName);
4546
var span = scope.Span;
@@ -49,7 +50,7 @@ internal static class AwsSnsCommon
4950

5051
tags.Service = SnsServiceName;
5152
tags.Operation = operation;
52-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
53+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
5354
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
5455
}
5556
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/SQS/AwsSqsCommon.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ internal static class AwsSqsCommon
2828
{
2929
tags = null;
3030

31-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
31+
var perTraceSettings = tracer.CurrentTraceSettings;
32+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
3233
{
3334
// integration disabled, don't create a scope, skip this trace
3435
return null;
@@ -38,8 +39,8 @@ internal static class AwsSqsCommon
3839

3940
try
4041
{
41-
tags = tracer.CurrentTraceSettings.Schema.Messaging.CreateAwsSqsTags(spanKind);
42-
string serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsSqsServiceName);
42+
tags = perTraceSettings.Schema.Messaging.CreateAwsSqsTags(spanKind);
43+
string serviceName = perTraceSettings.GetServiceName(DatadogAwsSqsServiceName);
4344
string operationName = GetOperationName(tracer, spanKind);
4445
scope = tracer.StartActiveInternal(operationName, parent: parentContext, tags: tags, serviceName: serviceName);
4546
var span = scope.Span;
@@ -49,7 +50,7 @@ internal static class AwsSqsCommon
4950

5051
tags.Service = SqsServiceName;
5152
tags.Operation = operation;
52-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
53+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
5354
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
5455
}
5556
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AWS/StepFunctions/AwsStepFunctionsCommon.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ internal static class AwsStepFunctionsCommon
2727
public static Scope? CreateScope(Tracer tracer, string operation, string spanKind, out AwsStepFunctionsTags? tags, ISpanContext? parentContext = null)
2828
{
2929
tags = null;
30-
if (!tracer.Settings.IsIntegrationEnabled(IntegrationId) || !tracer.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
30+
var perTraceSettings = tracer.CurrentTraceSettings;
31+
if (!perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(AwsConstants.IntegrationId))
3132
{
3233
// integration disabled, don't create a scope, skip this trace
3334
return null;
@@ -37,8 +38,8 @@ internal static class AwsStepFunctionsCommon
3738

3839
try
3940
{
40-
tags = tracer.CurrentTraceSettings.Schema.Messaging.CreateAwsStepFunctionsTags(spanKind);
41-
var serviceName = tracer.CurrentTraceSettings.GetServiceName(DatadogAwsStepFunctionsServiceName);
41+
tags = perTraceSettings.Schema.Messaging.CreateAwsStepFunctionsTags(spanKind);
42+
var serviceName = perTraceSettings.GetServiceName(DatadogAwsStepFunctionsServiceName);
4243
var operationName = GetOperationName(tracer, spanKind);
4344
scope = tracer.StartActiveInternal(operationName, parent: parentContext, tags: tags, serviceName: serviceName);
4445
var span = scope.Span;
@@ -48,7 +49,7 @@ internal static class AwsStepFunctionsCommon
4849

4950
tags.Service = StepFunctionsServiceName;
5051
tags.Operation = operation;
51-
tags.SetAnalyticsSampleRate(IntegrationId, tracer.Settings, enabledWithGlobalSetting: false);
52+
tags.SetAnalyticsSampleRate(IntegrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
5253
tracer.TracerManager.Telemetry.IntegrationGeneratedSpan(IntegrationId);
5354
}
5455
catch (Exception ex)

tracer/src/Datadog.Trace/ClrProfiler/AutoInstrumentation/AdoNet/DbScopeFactory.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ internal static class DbScopeFactory
2626

2727
private static Scope? CreateDbCommandScope(Tracer tracer, IDbCommand command, IntegrationId integrationId, string dbType, string operationName, string serviceName, ref DbCommandCache.TagsCacheItem tagsFromConnectionString)
2828
{
29-
if (!tracer.Settings.IsIntegrationEnabled(integrationId) || !tracer.Settings.IsIntegrationEnabled(IntegrationId.AdoNet))
29+
var perTraceSettings = tracer.CurrentTraceSettings;
30+
if (!perTraceSettings.Settings.IsIntegrationEnabled(integrationId) || !perTraceSettings.Settings.IsIntegrationEnabled(IntegrationId.AdoNet))
3031
{
3132
// integration disabled, don't create a scope, skip this span
3233
return null;
@@ -53,15 +54,15 @@ internal static class DbScopeFactory
5354
// We might block the SQL call from RASP depending on the query
5455
VulnerabilitiesModule.OnSqlQuery(commandText, integrationId);
5556

56-
tags = tracer.CurrentTraceSettings.Schema.Database.CreateSqlTags();
57+
tags = perTraceSettings.Schema.Database.CreateSqlTags();
5758
tags.DbType = dbType;
5859
tags.InstrumentationName = IntegrationRegistry.GetName(integrationId);
5960
tags.DbName = tagsFromConnectionString.DbName;
6061
tags.DbUser = tagsFromConnectionString.DbUser;
6162
tags.OutHost = tagsFromConnectionString.OutHost;
6263

63-
tags.SetAnalyticsSampleRate(integrationId, tracer.Settings, enabledWithGlobalSetting: false);
64-
tracer.CurrentTraceSettings.Schema.RemapPeerService(tags);
64+
tags.SetAnalyticsSampleRate(integrationId, perTraceSettings.Settings, enabledWithGlobalSetting: false);
65+
perTraceSettings.Schema.RemapPeerService(tags);
6566

6667
scope = tracer.StartActiveInternal(operationName, tags: tags, serviceName: serviceName);
6768
scope.Span.ResourceName = commandText;

0 commit comments

Comments
 (0)