Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,8 @@ public final class ConfigDefaults {
static final boolean DEFAULT_TELEMETRY_LOG_COLLECTION_ENABLED = true;
static final int DEFAULT_TELEMETRY_DEPENDENCY_RESOLUTION_QUEUE_SIZE = 100000;

static final Set<String> DEFAULT_TRACE_EXPERIMENTAL_FEATURES_ENABLED = new HashSet<>();

static final boolean DEFAULT_TRACE_128_BIT_TRACEID_GENERATION_ENABLED = true;
static final boolean DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED = false;
static final boolean DEFAULT_SECURE_RANDOM = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ public final class TracerConfig {
@Deprecated public static final String TRACE_RESOLVER_ENABLED = "trace.resolver.enabled";
public static final String SERVICE_MAPPING = "service.mapping";

public static final String TRACE_EXPERIMENTAL_FEATURES_ENABLED =
"trace.experimental.features.enabled";

public static final String SPAN_TAGS = "trace.span.tags";
public static final String TRACE_ANALYTICS_ENABLED = "trace.analytics.enabled";

Expand Down
11 changes: 11 additions & 0 deletions internal-api/src/main/java/datadog/trace/api/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,7 @@ public static String getHostName() {
private final long dependecyResolutionPeriodMillis;

private final boolean apmTracingEnabled;
private final Set<String> experimentalFeaturesEnabled;

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

experimentalFeaturesEnabled =
configProvider.getSet(
TRACE_EXPERIMENTAL_FEATURES_ENABLED, DEFAULT_TRACE_EXPERIMENTAL_FEATURES_ENABLED);

integrationSynapseLegacyOperationName =
configProvider.getBoolean(INTEGRATION_SYNAPSE_LEGACY_OPERATION_NAME, false);
writerType = configProvider.getString(WRITER_TYPE, DEFAULT_AGENT_WRITER_TYPE);
Expand Down Expand Up @@ -2013,6 +2018,10 @@ public String getRootContextServiceName() {
return rootContextServiceName;
}

public Set<String> getExperimentalFeaturesEnabled() {
return experimentalFeaturesEnabled;
}

public boolean isTraceEnabled() {
return instrumenterConfig.isTraceEnabled();
}
Expand Down Expand Up @@ -4367,6 +4376,8 @@ public String toString() {
+ serviceNameSetByUser
+ ", rootContextServiceName="
+ rootContextServiceName
+ ", experimentalFeaturesEnabled="
+ experimentalFeaturesEnabled
+ ", integrationSynapseLegacyOperationName="
+ integrationSynapseLegacyOperationName
+ ", writerType='"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ import static datadog.trace.api.config.TracerConfig.HTTP_CLIENT_ERROR_STATUSES
import static datadog.trace.api.config.TracerConfig.HTTP_SERVER_ERROR_STATUSES
import static datadog.trace.api.config.TracerConfig.ID_GENERATION_STRATEGY
import static datadog.trace.api.config.TracerConfig.PARTIAL_FLUSH_ENABLED
import static datadog.trace.api.config.TracerConfig.TRACE_EXPERIMENTAL_FEATURES_ENABLED
import static datadog.trace.api.config.TracerConfig.TRACE_LONG_RUNNING_ENABLED
import static datadog.trace.api.config.TracerConfig.TRACE_LONG_RUNNING_FLUSH_INTERVAL
import static datadog.trace.api.config.TracerConfig.TRACE_LONG_RUNNING_INITIAL_FLUSH_INTERVAL
Expand Down Expand Up @@ -221,6 +222,8 @@ class ConfigTest extends DDSpecification {
prop.setProperty(TRACE_LONG_RUNNING_ENABLED, "true")
prop.setProperty(TRACE_LONG_RUNNING_FLUSH_INTERVAL, "250")

prop.setProperty(TRACE_EXPERIMENTAL_FEATURES_ENABLED, "DD_TAGS, DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING")

prop.setProperty(PROFILING_ENABLED, "true")
prop.setProperty(PROFILING_URL, "new url")
prop.setProperty(PROFILING_TAGS, "f:6,host:test-host")
Expand Down Expand Up @@ -312,6 +315,8 @@ class ConfigTest extends DDSpecification {
config.isLongRunningTraceEnabled()
config.getLongRunningTraceFlushInterval() == 250

config.experimentalFeaturesEnabled == ["DD_TAGS", "DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING"].toSet()

config.profilingEnabled == true
config.profilingUrl == "new url"
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]
Expand Down Expand Up @@ -402,6 +407,8 @@ class ConfigTest extends DDSpecification {
System.setProperty(PREFIX + TRACE_LONG_RUNNING_ENABLED, "true")
System.setProperty(PREFIX + TRACE_LONG_RUNNING_FLUSH_INTERVAL, "333")

System.setProperty(PREFIX + TRACE_EXPERIMENTAL_FEATURES_ENABLED, "DD_TAGS, DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING")

System.setProperty(PREFIX + PROFILING_ENABLED, "true")
System.setProperty(PREFIX + PROFILING_URL, "new url")
System.setProperty(PREFIX + PROFILING_TAGS, "f:6,host:test-host")
Expand Down Expand Up @@ -493,6 +500,8 @@ class ConfigTest extends DDSpecification {
config.getLongRunningTraceFlushInterval() == 333
config.traceRateLimit == 200

config.experimentalFeaturesEnabled == ["DD_TAGS", "DD_TRACE_HTTP_CLIENT_TAG_QUERY_STRING"].toSet()

config.profilingEnabled == true
config.profilingUrl == "new url"
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]
Expand Down