Skip to content
Merged
Prev Previous commit
feat(env): Migrate intrumentations to environment component
  • Loading branch information
PerfectSlayer committed Aug 1, 2025
commit 392525681dbb1cd8a39419b2e94eeb88f9c35349
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.google.auto.service.AutoService;
import datadog.environment.EnvironmentVariables;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.agent.tooling.InstrumenterModule;
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
Expand Down Expand Up @@ -60,8 +61,7 @@ public String[] helperClassNames() {

@Override
protected boolean defaultEnabled() {
final String handler = System.getenv(HANDLER_ENV_NAME);
return null != handler;
return EnvironmentVariables.get(HANDLER_ENV_NAME) != null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.couchbase.client.java.CouchbaseCluster
import com.couchbase.client.java.env.CouchbaseEnvironment
import com.couchbase.client.java.view.DefaultView
import com.couchbase.client.java.view.DesignDocument
import datadog.environment.JavaVirtualMachine
import org.springframework.context.ConfigurableApplicationContext
import org.springframework.context.annotation.AnnotationConfigApplicationContext
import org.springframework.data.repository.CrudRepository
Expand All @@ -18,7 +19,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan

@IgnoreIf({
// TODO Java 17: This version of spring-data doesn't support Java 17
new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0)
JavaVirtualMachine.isJavaVersionAtLeast(17)
})
abstract class CouchbaseSpringRepositoryTest extends AbstractCouchbaseTest {
static final Closure<Doc> FIND
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static net.bytebuddy.matcher.ElementMatchers.isMethod;

import com.google.auto.service.AutoService;
import datadog.environment.SystemProperties;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.agent.tooling.InstrumenterModule;
import datadog.trace.api.InstrumenterConfig;
Expand Down Expand Up @@ -167,7 +168,7 @@ public static void onEnter(@Advice.Argument(value = 0, readOnly = false) String[
// Specific GraalVM versions have different flags for enabling JFR
// We don't want to drag in internal-api via Platform class, so we just read the system
// property directly
String version = System.getProperty("java.specification.version");
String version = SystemProperties.getOrDefault("java.specification.version", "");
if (version.startsWith("17")) {
args[oldLength++] = "-H:EnableMonitoringFeatures=jfr";
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package datadog.trace.instrumentation.gradle;

import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_INJECTED_TRACER_VERSION;
import static datadog.trace.util.Strings.propertyNameToSystemPropertyName;

import datadog.environment.SystemProperties;
import datadog.trace.api.Config;
import datadog.trace.api.config.CiVisibilityConfig;
import java.io.File;
import java.nio.file.Path;
import java.util.HashMap;
Expand All @@ -14,10 +15,8 @@ public class GradleDaemonInjectionUtils {

public static Map<String, String> addJavaagentToGradleDaemonProperties(
Map<String, String> jvmOptions) {
Properties systemProperties = System.getProperties();
if (systemProperties.containsKey(
propertyNameToSystemPropertyName(
CiVisibilityConfig.CIVISIBILITY_INJECTED_TRACER_VERSION))) {
if (SystemProperties.get(propertyNameToSystemPropertyName(CIVISIBILITY_INJECTED_TRACER_VERSION))
!= null) {
// This Gradle launcher is started by a process that is itself instrumented,
// most likely this is a Gradle build using Gradle Test Kit to fork another Gradle instance
// (e.g. to test a Gradle plugin).
Expand All @@ -29,16 +28,20 @@ public static Map<String, String> addJavaagentToGradleDaemonProperties(
Path agentJarPath = agentJar.toPath();
StringBuilder agentArg = new StringBuilder("-javaagent:").append(agentJarPath).append('=');

for (Map.Entry<Object, Object> e : systemProperties.entrySet()) {
String propertyName = (String) e.getKey();
Object propertyValue = e.getValue();
if (propertyName.startsWith(Config.PREFIX)) {
agentArg
.append(propertyName)
.append("='")
.append(String.valueOf(propertyValue).replace("'", "'\\''"))
.append("',");
try {
Properties systemProperties = System.getProperties();
for (Map.Entry<Object, Object> e : systemProperties.entrySet()) {
String propertyName = (String) e.getKey();
Object propertyValue = e.getValue();
if (propertyName.startsWith(Config.PREFIX)) {
agentArg
.append(propertyName)
.append("='")
.append(String.valueOf(propertyValue).replace("'", "'\\''"))
.append("',");
}
}
} catch (SecurityException ignored) {
}

// creating a new map in case jvmOptions is immutable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static net.bytebuddy.matcher.ElementMatchers.returns;

import com.google.auto.service.AutoService;
import datadog.environment.SystemProperties;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.agent.tooling.InstrumenterModule;
import datadog.trace.bootstrap.instrumentation.jmx.MBeanServerRegistry;
Expand All @@ -20,7 +21,7 @@ public class CustomMBeanBuilderInstrumentation extends InstrumenterModule.Tracin
public CustomMBeanBuilderInstrumentation() {
super("java-lang-management");

customBuilder = System.getProperty("javax.management.builder.initial");
customBuilder = SystemProperties.get("javax.management.builder.initial");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import datadog.environment.JavaVirtualMachine
import datadog.trace.agent.test.base.HttpClientTest
import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
import datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator
Expand Down Expand Up @@ -118,7 +119,7 @@ class ResteasyClientAsyncV1ForkedTest extends ResteasyClientAsyncTest implements
@IgnoreIf({
// TODO Java 17: This version of apache-cxf doesn't work on Java 17
// exception in org.apache.cxf.common.util.ReflectionUtil
new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0)
JavaVirtualMachine.isJavaVersionAtLeast(17)
})
class CxfClientAsyncTest extends JaxRsClientAsyncTest {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import datadog.environment.JavaVirtualMachine
import datadog.trace.agent.test.base.HttpClientTest
import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
import datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator
Expand Down Expand Up @@ -104,7 +105,7 @@ class ResteasyClientV1ForkedTest extends ResteasyClientTest implements TestingGe
@IgnoreIf({
// TODO Java 17: This version of apache-cxf doesn't work on Java 17
// exception in org.apache.cxf.common.util.ReflectionUtil
new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0)
JavaVirtualMachine.isJavaVersionAtLeast(17)
})
class CxfClientTest extends JaxRsClientTest {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIBCO_NODE;
import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIBCO_VERSION;

import datadog.environment.SystemProperties;
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
import datadog.trace.bootstrap.instrumentation.api.InternalSpanTypes;
import datadog.trace.bootstrap.instrumentation.api.Tags;
Expand All @@ -16,7 +17,7 @@ public class TibcoDecorator extends BaseDecorator {
private static final Logger LOGGER = LoggerFactory.getLogger(TibcoDecorator.class);
private static final CharSequence TIBCO_BW = UTF8BytesString.create("tibco_bw");
private static final CharSequence APPNODE_NAME =
UTF8BytesString.create(System.getProperty("bw.appnode"));
UTF8BytesString.create(SystemProperties.get("bw.appnode"));
private static final CharSequence BW_VERSION = bwVersion();
public static final CharSequence TIBCO_PROCESS_OPERATION =
UTF8BytesString.create("tibco.process");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static net.bytebuddy.matcher.ElementMatchers.returns;

import com.google.auto.service.AutoService;
import datadog.environment.SystemProperties;
import datadog.trace.agent.tooling.Instrumenter;
import datadog.trace.agent.tooling.InstrumenterModule;
import datadog.trace.bootstrap.config.provider.ConfigProvider;
Expand All @@ -24,7 +25,7 @@ public class WebsphereSecurityInstrumentation extends InstrumenterModule.Tracing
public WebsphereSecurityInstrumentation() {
super("websphere-jmx");

customBuilder = System.getProperty("javax.management.builder.initial");
customBuilder = SystemProperties.get("javax.management.builder.initial");
}

@Override
Expand Down