Skip to content

Commit 04d2a7e

Browse files
committed
add new config property apm sampling enabled and keep legacy experimental asm standalone billing one
1 parent 56d4919 commit 04d2a7e

File tree

7 files changed

+16
-11
lines changed

7 files changed

+16
-11
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ public final class GeneralConfig {
9393
"telemetry.dependency.resolution.period.millis";
9494
public static final String AGENTLESS_LOG_SUBMISSION_LEVEL = "agentless.log.submission.level";
9595
public static final String AGENTLESS_LOG_SUBMISSION_URL = "agentless.log.submission.url";
96+
public static final String APM_TRACING_ENABLED = "apm.tracing.enabled";
9697

9798
private GeneralConfig() {}
9899
}

dd-trace-core/src/main/java/datadog/trace/common/sampling/Sampler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ final class Builder {
3535
public static Sampler forConfig(final Config config, final TraceConfig traceConfig) {
3636
Sampler sampler;
3737
if (config != null) {
38-
if (config.isAppSecStandaloneEnabled()) {
38+
if (!config.isApmTracingEnabled()) {
3939
log.debug("APM is disabled. Only 1 trace per minute will be sent.");
4040
return new AsmStandaloneSampler(Clock.systemUTC());
4141
}

dd-trace-core/src/main/java/datadog/trace/common/writer/ddagent/DDAgentApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public Response sendSerializedTraces(final Payload payload) {
112112
(metricsEnabled && featuresDiscovery.supportsMetrics())
113113
// Disabling the computation agent-side of the APM trace metrics by
114114
// pretending it was already done by the library
115-
|| Config.get().isAppSecStandaloneEnabled()
115+
|| !Config.get().isApmTracingEnabled()
116116
? "true"
117117
: "")
118118
.put(payload.toRequest())

dd-trace-core/src/main/java/datadog/trace/core/TraceCollector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void setSamplingPriorityIfNecessary() {
6464
DDSpan rootSpan = getRootSpan();
6565
if (traceConfig.sampler instanceof PrioritySampler && rootSpan != null) {
6666
// Ignore the force-keep priority in the absence of propagated _dd.p.appsec span tag.
67-
if ((Config.get().isAppSecStandaloneEnabled()
67+
if ((!Config.get().isApmTracingEnabled()
6868
&& !rootSpan.context().getPropagationTags().isAppsecPropagationEnabled())
6969
|| rootSpan.context().getSamplingPriority() == PrioritySampling.UNSET) {
7070
((PrioritySampler) traceConfig.sampler).setSamplingPriority(rootSpan);

dd-trace-core/src/main/java/datadog/trace/core/propagation/CorePropagation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private <C> void inject(
6464
* If the experimental appsec standalone feature is enabled and appsec propagation is disabled
6565
* (no ASM events), stop propagation
6666
*/
67-
if (Config.get().isAppSecStandaloneEnabled()
67+
if (!Config.get().isApmTracingEnabled()
6868
&& !ddSpanContext.getPropagationTags().isAppsecPropagationEnabled()) {
6969
return;
7070
}

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

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,8 @@ public static String getHostName() {
552552

553553
private final long dependecyResolutionPeriodMillis;
554554

555+
private final boolean apmTracingEnabled;
556+
555557
// Read order: System Properties -> Env Variables, [-> properties file], [-> default value]
556558
private Config() {
557559
this(ConfigProvider.createDefault());
@@ -1888,6 +1890,8 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
18881890
"AppSec SCA is enabled but telemetry is disabled. AppSec SCA will not work.");
18891891
}
18901892

1893+
this.apmTracingEnabled = configProvider.getBoolean(GeneralConfig.APM_TRACING_ENABLED, true);
1894+
18911895
log.debug("New instance: {}", this);
18921896
}
18931897

@@ -2306,7 +2310,7 @@ public boolean isPerfMetricsEnabled() {
23062310

23072311
public boolean isTracerMetricsEnabled() {
23082312
// When ASM Standalone Billing is enabled metrics should be disabled
2309-
return tracerMetricsEnabled && !isAppSecStandaloneEnabled();
2313+
return tracerMetricsEnabled && isApmTracingEnabled();
23102314
}
23112315

23122316
public boolean isTracerMetricsBufferingEnabled() {
@@ -3403,6 +3407,10 @@ public String getDataJobsCommandPattern() {
34033407
return dataJobsCommandPattern;
34043408
}
34053409

3410+
public boolean isApmTracingEnabled() {
3411+
return !appSecStandaloneEnabled && apmTracingEnabled;
3412+
}
3413+
34063414
/** @return A map of tags to be applied only to the local application root span. */
34073415
public Map<String, Object> getLocalRootSpanTags() {
34083416
final Map<String, String> runtimeTags = getRuntimeTags();
@@ -3411,7 +3419,7 @@ public Map<String, Object> getLocalRootSpanTags() {
34113419
result.put(LANGUAGE_TAG_KEY, LANGUAGE_TAG_VALUE);
34123420
result.put(SCHEMA_VERSION_TAG_KEY, SpanNaming.instance().version());
34133421
result.put(PROFILING_ENABLED, isProfilingEnabled() ? 1 : 0);
3414-
if (isAppSecStandaloneEnabled()) {
3422+
if (!isApmTracingEnabled()) {
34153423
result.put(APM_ENABLED, 0);
34163424
}
34173425

@@ -3929,10 +3937,6 @@ public Boolean getAppSecScaEnabled() {
39293937
return appSecScaEnabled;
39303938
}
39313939

3932-
public boolean isAppSecStandaloneEnabled() {
3933-
return appSecStandaloneEnabled;
3934-
}
3935-
39363940
public boolean isAppSecRaspEnabled() {
39373941
return appSecRaspEnabled;
39383942
}

internal-api/src/main/java/datadog/trace/api/sampling/SamplingMechanism.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public static boolean validateWithSamplingPriority(int mechanism, int priority)
6969
* @return
7070
*/
7171
public static boolean canAvoidSamplingPriorityLock(int priority, int mechanism) {
72-
return Config.get().isAppSecStandaloneEnabled() && mechanism == SamplingMechanism.APPSEC;
72+
return !Config.get().isApmTracingEnabled() && mechanism == SamplingMechanism.APPSEC;
7373
}
7474

7575
private SamplingMechanism() {}

0 commit comments

Comments
 (0)