Skip to content

Commit f363e9b

Browse files
committed
Allow soft-rollout with crashtracking auto-config only if ddprof-java is enabled
1 parent 239552e commit f363e9b

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import datadog.trace.api.profiling.ProfilingEnablement;
4141
import datadog.trace.api.scopemanager.ScopeListener;
4242
import datadog.trace.bootstrap.benchmark.StaticEventLogger;
43-
import datadog.trace.bootstrap.config.provider.ConfigProvider;
4443
import datadog.trace.bootstrap.config.provider.StableConfigSource;
4544
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
4645
import datadog.trace.bootstrap.instrumentation.api.AgentTracer.TracerAPI;
@@ -1052,10 +1051,20 @@ private static void initializeCrashTrackingDefault() {
10521051
}
10531052

10541053
private static boolean isCrashTrackingAutoconfigEnabled() {
1055-
return !ConfigProvider.getInstance()
1056-
.getBoolean(
1057-
CrashTrackingConfig.CRASH_TRACKING_DISABLE_AUTOCONFIG,
1058-
CrashTrackingConfig.CRASH_TRACKING_DISABLE_AUTOCONFIG_DEFAULT);
1054+
String enabledVal = ddGetProperty("dd." + CrashTrackingConfig.CRASH_TRACKING_ENABLE_AUTOCONFIG);
1055+
boolean enabled = CrashTrackingConfig.CRASH_TRACKING_ENABLE_AUTOCONFIG_DEFAULT;
1056+
if (enabledVal != null) {
1057+
enabled = Boolean.parseBoolean(enabledVal);
1058+
} else {
1059+
// If the property is not set, then we check if ddprof-java profiling is enabled,
1060+
// because crash tracking autoconfig can safely be enabled by default when
1061+
// ddprof-java profiling is enabled
1062+
String ddprofEnabledVal = ddGetProperty("dd.profiling.ddprof.enabled");
1063+
if (Boolean.parseBoolean(ddprofEnabledVal)) {
1064+
enabled = true;
1065+
}
1066+
}
1067+
return enabled;
10591068
}
10601069

10611070
private static void initializeCrashTracking(boolean delayed, boolean checkNative) {

dd-smoke-tests/crashtracking/src/test/java/datadog/smoketest/CrashtrackingSmokeTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ void testCrashTracking() throws Exception {
180180
String onErrorArg =
181181
!Platform.isLinux()
182182
? "-XX:OnError=" + onErrorValue
183-
: ""; // on Linux we can automatically inject the arg
183+
: "-Ddd.crashtracking.debug.autoconfig.enabled=true"; // on Linux we can automatically
184+
// inject the arg but we need to
185+
// enable it
184186
List<String> processArgs = new ArrayList<>();
185187
processArgs.add(javaPath());
186188
processArgs.add("-javaagent:" + agentShadowJar());
@@ -256,7 +258,9 @@ void testOomeTracking() throws Exception {
256258
String onOOMEArg =
257259
!Platform.isLinux()
258260
? "-XX:OnOutOfMemoryError=" + onErrorValue
259-
: ""; // on Linux we can automatically inject the arg
261+
: "-Ddd.crashtracking.debug.autoconfig.enabled=true"; // on Linux we can automatically
262+
// inject the arg but we need to
263+
// enable it
260264

261265
List<String> processArgs = new ArrayList<>();
262266
processArgs.add(javaPath());

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ public final class CrashTrackingConfig {
2727
public static final String CRASH_TRACKING_START_EARLY = "crashtracking.debug.start-force-first";
2828
public static final boolean CRASH_TRACKING_START_EARLY_DEFAULT = false;
2929

30-
public static final String CRASH_TRACKING_DISABLE_AUTOCONFIG =
31-
"crashtracking.debug.autoconfig.disable";
32-
public static final boolean CRASH_TRACKING_DISABLE_AUTOCONFIG_DEFAULT = false;
30+
public static final String CRASH_TRACKING_ENABLE_AUTOCONFIG =
31+
"crashtracking.debug.autoconfig.enabled";
32+
public static final boolean CRASH_TRACKING_ENABLE_AUTOCONFIG_DEFAULT = false;
3333

3434
private CrashTrackingConfig() {}
3535
}

0 commit comments

Comments
 (0)