Skip to content

Commit 3925256

Browse files
committed
feat(env): Migrate intrumentations to environment component
1 parent f31a12c commit 3925256

File tree

9 files changed

+33
-23
lines changed

9 files changed

+33
-23
lines changed

dd-java-agent/instrumentation/aws-lambda-handler/src/main/java/datadog/trace/instrumentation/aws/v1/lambda/LambdaHandlerInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import com.amazonaws.services.lambda.runtime.Context;
1717
import com.amazonaws.services.lambda.runtime.RequestHandler;
1818
import com.google.auto.service.AutoService;
19+
import datadog.environment.EnvironmentVariables;
1920
import datadog.trace.agent.tooling.Instrumenter;
2021
import datadog.trace.agent.tooling.InstrumenterModule;
2122
import datadog.trace.bootstrap.CallDepthThreadLocalMap;
@@ -60,8 +61,7 @@ public String[] helperClassNames() {
6061

6162
@Override
6263
protected boolean defaultEnabled() {
63-
final String handler = System.getenv(HANDLER_ENV_NAME);
64-
return null != handler;
64+
return EnvironmentVariables.get(HANDLER_ENV_NAME) != null;
6565
}
6666

6767
@Override

dd-java-agent/instrumentation/couchbase/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.couchbase.client.java.CouchbaseCluster
55
import com.couchbase.client.java.env.CouchbaseEnvironment
66
import com.couchbase.client.java.view.DefaultView
77
import com.couchbase.client.java.view.DesignDocument
8+
import datadog.environment.JavaVirtualMachine
89
import org.springframework.context.ConfigurableApplicationContext
910
import org.springframework.context.annotation.AnnotationConfigApplicationContext
1011
import org.springframework.data.repository.CrudRepository
@@ -18,7 +19,7 @@ import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan
1819

1920
@IgnoreIf({
2021
// TODO Java 17: This version of spring-data doesn't support Java 17
21-
new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0)
22+
JavaVirtualMachine.isJavaVersionAtLeast(17)
2223
})
2324
abstract class CouchbaseSpringRepositoryTest extends AbstractCouchbaseTest {
2425
static final Closure<Doc> FIND

dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/NativeImageGeneratorRunnerInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static net.bytebuddy.matcher.ElementMatchers.isMethod;
66

77
import com.google.auto.service.AutoService;
8+
import datadog.environment.SystemProperties;
89
import datadog.trace.agent.tooling.Instrumenter;
910
import datadog.trace.agent.tooling.InstrumenterModule;
1011
import datadog.trace.api.InstrumenterConfig;
@@ -167,7 +168,7 @@ public static void onEnter(@Advice.Argument(value = 0, readOnly = false) String[
167168
// Specific GraalVM versions have different flags for enabling JFR
168169
// We don't want to drag in internal-api via Platform class, so we just read the system
169170
// property directly
170-
String version = System.getProperty("java.specification.version");
171+
String version = SystemProperties.getOrDefault("java.specification.version", "");
171172
if (version.startsWith("17")) {
172173
args[oldLength++] = "-H:EnableMonitoringFeatures=jfr";
173174
} else {

dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package datadog.trace.instrumentation.gradle;
22

3+
import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_INJECTED_TRACER_VERSION;
34
import static datadog.trace.util.Strings.propertyNameToSystemPropertyName;
45

6+
import datadog.environment.SystemProperties;
57
import datadog.trace.api.Config;
6-
import datadog.trace.api.config.CiVisibilityConfig;
78
import java.io.File;
89
import java.nio.file.Path;
910
import java.util.HashMap;
@@ -14,10 +15,8 @@ public class GradleDaemonInjectionUtils {
1415

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

32-
for (Map.Entry<Object, Object> e : systemProperties.entrySet()) {
33-
String propertyName = (String) e.getKey();
34-
Object propertyValue = e.getValue();
35-
if (propertyName.startsWith(Config.PREFIX)) {
36-
agentArg
37-
.append(propertyName)
38-
.append("='")
39-
.append(String.valueOf(propertyValue).replace("'", "'\\''"))
40-
.append("',");
31+
try {
32+
Properties systemProperties = System.getProperties();
33+
for (Map.Entry<Object, Object> e : systemProperties.entrySet()) {
34+
String propertyName = (String) e.getKey();
35+
Object propertyValue = e.getValue();
36+
if (propertyName.startsWith(Config.PREFIX)) {
37+
agentArg
38+
.append(propertyName)
39+
.append("='")
40+
.append(String.valueOf(propertyValue).replace("'", "'\\''"))
41+
.append("',");
42+
}
4143
}
44+
} catch (SecurityException ignored) {
4245
}
4346

4447
// creating a new map in case jvmOptions is immutable

dd-java-agent/instrumentation/java-lang/src/main/java/datadog/trace/instrumentation/java/lang/management/CustomMBeanBuilderInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static net.bytebuddy.matcher.ElementMatchers.returns;
66

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

23-
customBuilder = System.getProperty("javax.management.builder.initial");
24+
customBuilder = SystemProperties.get("javax.management.builder.initial");
2425
}
2526

2627
@Override

dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientAsyncTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import datadog.environment.JavaVirtualMachine
12
import datadog.trace.agent.test.base.HttpClientTest
23
import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
34
import datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator
@@ -118,7 +119,7 @@ class ResteasyClientAsyncV1ForkedTest extends ResteasyClientAsyncTest implements
118119
@IgnoreIf({
119120
// TODO Java 17: This version of apache-cxf doesn't work on Java 17
120121
// exception in org.apache.cxf.common.util.ReflectionUtil
121-
new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0)
122+
JavaVirtualMachine.isJavaVersionAtLeast(17)
122123
})
123124
class CxfClientAsyncTest extends JaxRsClientAsyncTest {
124125

dd-java-agent/instrumentation/jax-rs-client-2.0/src/test/groovy/JaxRsClientTest.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import datadog.environment.JavaVirtualMachine
12
import datadog.trace.agent.test.base.HttpClientTest
23
import datadog.trace.agent.test.naming.TestingGenericHttpNamingConventions
34
import datadog.trace.instrumentation.jaxrs.JaxRsClientDecorator
@@ -104,7 +105,7 @@ class ResteasyClientV1ForkedTest extends ResteasyClientTest implements TestingGe
104105
@IgnoreIf({
105106
// TODO Java 17: This version of apache-cxf doesn't work on Java 17
106107
// exception in org.apache.cxf.common.util.ReflectionUtil
107-
new BigDecimal(System.getProperty("java.specification.version")).isAtLeast(17.0)
108+
JavaVirtualMachine.isJavaVersionAtLeast(17)
108109
})
109110
class CxfClientTest extends JaxRsClientTest {
110111

dd-java-agent/instrumentation/tibco-businessworks/tibcobw-6/src/main/java/datadog/trace/instrumentation/tibcobw6/TibcoDecorator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIBCO_NODE;
44
import static datadog.trace.bootstrap.instrumentation.api.InstrumentationTags.TIBCO_VERSION;
55

6+
import datadog.environment.SystemProperties;
67
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
78
import datadog.trace.bootstrap.instrumentation.api.InternalSpanTypes;
89
import datadog.trace.bootstrap.instrumentation.api.Tags;
@@ -16,7 +17,7 @@ public class TibcoDecorator extends BaseDecorator {
1617
private static final Logger LOGGER = LoggerFactory.getLogger(TibcoDecorator.class);
1718
private static final CharSequence TIBCO_BW = UTF8BytesString.create("tibco_bw");
1819
private static final CharSequence APPNODE_NAME =
19-
UTF8BytesString.create(System.getProperty("bw.appnode"));
20+
UTF8BytesString.create(SystemProperties.get("bw.appnode"));
2021
private static final CharSequence BW_VERSION = bwVersion();
2122
public static final CharSequence TIBCO_PROCESS_OPERATION =
2223
UTF8BytesString.create("tibco.process");

dd-java-agent/instrumentation/websphere-jmx/src/main/java/datadog/trace/instrumentation/websphere_jmx/WebsphereSecurityInstrumentation.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static net.bytebuddy.matcher.ElementMatchers.returns;
66

77
import com.google.auto.service.AutoService;
8+
import datadog.environment.SystemProperties;
89
import datadog.trace.agent.tooling.Instrumenter;
910
import datadog.trace.agent.tooling.InstrumenterModule;
1011
import datadog.trace.bootstrap.config.provider.ConfigProvider;
@@ -24,7 +25,7 @@ public class WebsphereSecurityInstrumentation extends InstrumenterModule.Tracing
2425
public WebsphereSecurityInstrumentation() {
2526
super("websphere-jmx");
2627

27-
customBuilder = System.getProperty("javax.management.builder.initial");
28+
customBuilder = SystemProperties.get("javax.management.builder.initial");
2829
}
2930

3031
@Override

0 commit comments

Comments
 (0)