Skip to content

Commit 11015ee

Browse files
authored
Introducing DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED Config (#8536)
* introducing config * undo spotless
1 parent 3c27cfc commit 11015ee

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed

dd-trace-api/src/main/java/datadog/trace/api/ConfigDefaults.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,8 @@ public final class ConfigDefaults {
232232
static final boolean DEFAULT_TELEMETRY_LOG_COLLECTION_ENABLED = true;
233233
static final int DEFAULT_TELEMETRY_DEPENDENCY_RESOLUTION_QUEUE_SIZE = 100000;
234234

235+
static final Set<String> DEFAULT_TRACE_EXPERIMENTAL_FEATURES_ENABLED = new HashSet<>();
236+
235237
static final boolean DEFAULT_TRACE_128_BIT_TRACEID_GENERATION_ENABLED = true;
236238
static final boolean DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED = false;
237239
static final boolean DEFAULT_SECURE_RANDOM = false;

dd-trace-api/src/main/java/datadog/trace/api/config/TracerConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ public final class TracerConfig {
3434
@Deprecated public static final String TRACE_RESOLVER_ENABLED = "trace.resolver.enabled";
3535
public static final String SERVICE_MAPPING = "service.mapping";
3636

37+
public static final String TRACE_EXPERIMENTAL_FEATURES_ENABLED =
38+
"trace.experimental.features.enabled";
39+
3740
public static final String SPAN_TAGS = "trace.span.tags";
3841
public static final String TRACE_ANALYTICS_ENABLED = "trace.analytics.enabled";
3942

internal-api/src/main/java/datadog/trace/api/Config.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,7 @@ public static String getHostName() {
561561
private final long dependecyResolutionPeriodMillis;
562562

563563
private final boolean apmTracingEnabled;
564+
private final Set<String> experimentalFeaturesEnabled;
564565

565566
// Read order: System Properties -> Env Variables, [-> properties file], [-> default value]
566567
private Config() {
@@ -626,6 +627,10 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
626627
configProvider.getString(
627628
SERVLET_ROOT_CONTEXT_SERVICE_NAME, DEFAULT_SERVLET_ROOT_CONTEXT_SERVICE_NAME);
628629

630+
experimentalFeaturesEnabled =
631+
configProvider.getSet(
632+
TRACE_EXPERIMENTAL_FEATURES_ENABLED, DEFAULT_TRACE_EXPERIMENTAL_FEATURES_ENABLED);
633+
629634
integrationSynapseLegacyOperationName =
630635
configProvider.getBoolean(INTEGRATION_SYNAPSE_LEGACY_OPERATION_NAME, false);
631636
writerType = configProvider.getString(WRITER_TYPE, DEFAULT_AGENT_WRITER_TYPE);
@@ -2013,6 +2018,10 @@ public String getRootContextServiceName() {
20132018
return rootContextServiceName;
20142019
}
20152020

2021+
public Set<String> getExperimentalFeaturesEnabled() {
2022+
return experimentalFeaturesEnabled;
2023+
}
2024+
20162025
public boolean isTraceEnabled() {
20172026
return instrumenterConfig.isTraceEnabled();
20182027
}
@@ -4367,6 +4376,8 @@ public String toString() {
43674376
+ serviceNameSetByUser
43684377
+ ", rootContextServiceName="
43694378
+ rootContextServiceName
4379+
+ ", experimentalFeaturesEnabled="
4380+
+ experimentalFeaturesEnabled
43704381
+ ", integrationSynapseLegacyOperationName="
43714382
+ integrationSynapseLegacyOperationName
43724383
+ ", writerType='"

internal-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ import static datadog.trace.api.config.TracerConfig.HTTP_CLIENT_ERROR_STATUSES
107107
import static datadog.trace.api.config.TracerConfig.HTTP_SERVER_ERROR_STATUSES
108108
import static datadog.trace.api.config.TracerConfig.ID_GENERATION_STRATEGY
109109
import static datadog.trace.api.config.TracerConfig.PARTIAL_FLUSH_ENABLED
110+
import static datadog.trace.api.config.TracerConfig.TRACE_EXPERIMENTAL_FEATURES_ENABLED
110111
import static datadog.trace.api.config.TracerConfig.TRACE_LONG_RUNNING_ENABLED
111112
import static datadog.trace.api.config.TracerConfig.TRACE_LONG_RUNNING_FLUSH_INTERVAL
112113
import static datadog.trace.api.config.TracerConfig.TRACE_LONG_RUNNING_INITIAL_FLUSH_INTERVAL
@@ -221,6 +222,8 @@ class ConfigTest extends DDSpecification {
221222
prop.setProperty(TRACE_LONG_RUNNING_ENABLED, "true")
222223
prop.setProperty(TRACE_LONG_RUNNING_FLUSH_INTERVAL, "250")
223224

225+
prop.setProperty(TRACE_EXPERIMENTAL_FEATURES_ENABLED, "DD_TAGS, DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING")
226+
224227
prop.setProperty(PROFILING_ENABLED, "true")
225228
prop.setProperty(PROFILING_URL, "new url")
226229
prop.setProperty(PROFILING_TAGS, "f:6,host:test-host")
@@ -312,6 +315,8 @@ class ConfigTest extends DDSpecification {
312315
config.isLongRunningTraceEnabled()
313316
config.getLongRunningTraceFlushInterval() == 250
314317

318+
config.experimentalFeaturesEnabled == ["DD_TAGS", "DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING"].toSet()
319+
315320
config.profilingEnabled == true
316321
config.profilingUrl == "new url"
317322
config.mergedProfilingTags == [b: "2", f: "6", (HOST_TAG): "test-host", (RUNTIME_ID_TAG): config.getRuntimeId(), (RUNTIME_VERSION_TAG): config.getRuntimeVersion(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE]
@@ -402,6 +407,8 @@ class ConfigTest extends DDSpecification {
402407
System.setProperty(PREFIX + TRACE_LONG_RUNNING_ENABLED, "true")
403408
System.setProperty(PREFIX + TRACE_LONG_RUNNING_FLUSH_INTERVAL, "333")
404409

410+
System.setProperty(PREFIX + TRACE_EXPERIMENTAL_FEATURES_ENABLED, "DD_TAGS, DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING")
411+
405412
System.setProperty(PREFIX + PROFILING_ENABLED, "true")
406413
System.setProperty(PREFIX + PROFILING_URL, "new url")
407414
System.setProperty(PREFIX + PROFILING_TAGS, "f:6,host:test-host")
@@ -493,6 +500,8 @@ class ConfigTest extends DDSpecification {
493500
config.getLongRunningTraceFlushInterval() == 333
494501
config.traceRateLimit == 200
495502

503+
config.experimentalFeaturesEnabled == ["DD_TAGS", "DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING"].toSet()
504+
496505
config.profilingEnabled == true
497506
config.profilingUrl == "new url"
498507
config.mergedProfilingTags == [b: "2", f: "6", (HOST_TAG): "test-host", (RUNTIME_ID_TAG): config.getRuntimeId(), (RUNTIME_VERSION_TAG): config.getRuntimeVersion(), (SERVICE_TAG): config.serviceName, (LANGUAGE_TAG_KEY): LANGUAGE_TAG_VALUE]

0 commit comments

Comments
 (0)