Skip to content

Commit c1b1b28

Browse files
committed
add new config property apm sampling enabled and keep legacy experimental asm standalone billing one
1 parent 6ece325 commit c1b1b28

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
@@ -547,6 +547,8 @@ public static String getHostName() {
547547

548548
private final long dependecyResolutionPeriodMillis;
549549

550+
private final boolean apmTracingEnabled;
551+
550552
// Read order: System Properties -> Env Variables, [-> properties file], [-> default value]
551553
private Config() {
552554
this(ConfigProvider.createDefault());
@@ -1865,6 +1867,8 @@ PROFILING_DATADOG_PROFILER_ENABLED, isDatadogProfilerSafeInCurrentEnvironment())
18651867
"AppSec SCA is enabled but telemetry is disabled. AppSec SCA will not work.");
18661868
}
18671869

1870+
this.apmTracingEnabled = configProvider.getBoolean(GeneralConfig.APM_TRACING_ENABLED, true);
1871+
18681872
log.debug("New instance: {}", this);
18691873
}
18701874

@@ -2283,7 +2287,7 @@ public boolean isPerfMetricsEnabled() {
22832287

22842288
public boolean isTracerMetricsEnabled() {
22852289
// When ASM Standalone Billing is enabled metrics should be disabled
2286-
return tracerMetricsEnabled && !isAppSecStandaloneEnabled();
2290+
return tracerMetricsEnabled && isApmTracingEnabled();
22872291
}
22882292

22892293
public boolean isTracerMetricsBufferingEnabled() {
@@ -3364,6 +3368,10 @@ public String getDataJobsCommandPattern() {
33643368
return dataJobsCommandPattern;
33653369
}
33663370

3371+
public boolean isApmTracingEnabled() {
3372+
return !appSecStandaloneEnabled && apmTracingEnabled;
3373+
}
3374+
33673375
/** @return A map of tags to be applied only to the local application root span. */
33683376
public Map<String, Object> getLocalRootSpanTags() {
33693377
final Map<String, String> runtimeTags = getRuntimeTags();
@@ -3372,7 +3380,7 @@ public Map<String, Object> getLocalRootSpanTags() {
33723380
result.put(LANGUAGE_TAG_KEY, LANGUAGE_TAG_VALUE);
33733381
result.put(SCHEMA_VERSION_TAG_KEY, SpanNaming.instance().version());
33743382
result.put(PROFILING_ENABLED, isProfilingEnabled() ? 1 : 0);
3375-
if (isAppSecStandaloneEnabled()) {
3383+
if (!isApmTracingEnabled()) {
33763384
result.put(APM_ENABLED, 0);
33773385
}
33783386

@@ -3882,10 +3890,6 @@ public Boolean getAppSecScaEnabled() {
38823890
return appSecScaEnabled;
38833891
}
38843892

3885-
public boolean isAppSecStandaloneEnabled() {
3886-
return appSecStandaloneEnabled;
3887-
}
3888-
38893893
public boolean isAppSecRaspEnabled() {
38903894
return appSecRaspEnabled;
38913895
}

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)