Skip to content

Commit 6d25b3b

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

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

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

Lines changed: 16 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,22 @@ 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+
// the property default is 'true', so if it is not set then we assume it is enabled
1064+
if (ddprofEnabledVal == null || Boolean.parseBoolean(ddprofEnabledVal)) {
1065+
// ddprof library supported only on Linux
1066+
enabled = OperatingSystem.isLinux();
1067+
}
1068+
}
1069+
return enabled;
10591070
}
10601071

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

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.enable";
32+
public static final boolean CRASH_TRACKING_ENABLE_AUTOCONFIG_DEFAULT = false;
3333

3434
private CrashTrackingConfig() {}
3535
}

0 commit comments

Comments
 (0)