diff --git a/components/environment/src/main/java/datadog/environment/EnvironmentVariables.java b/components/environment/src/main/java/datadog/environment/EnvironmentVariables.java index b99900e0d85..753ea95acd8 100644 --- a/components/environment/src/main/java/datadog/environment/EnvironmentVariables.java +++ b/components/environment/src/main/java/datadog/environment/EnvironmentVariables.java @@ -1,5 +1,10 @@ package datadog.environment; +import static java.util.Collections.emptyMap; +import static java.util.Collections.unmodifiableMap; + +import java.util.HashMap; +import java.util.Map; import javax.annotation.Nullable; /** @@ -42,4 +47,18 @@ public static String getOrDefault(String name, String defaultValue) { return defaultValue; } } + + /** + * Gets all environment variables. + * + * @return All environment variables captured in an unmodifiable {@link Map}, or an empty {@link + * Map} if they can't be retrieved. + */ + public static Map getAll() { + try { + return unmodifiableMap(new HashMap<>(System.getenv())); + } catch (SecurityException e) { + return emptyMap(); + } + } } diff --git a/components/environment/src/main/java/datadog/environment/SystemProperties.java b/components/environment/src/main/java/datadog/environment/SystemProperties.java index a4fd4753df6..dde075fbf4d 100644 --- a/components/environment/src/main/java/datadog/environment/SystemProperties.java +++ b/components/environment/src/main/java/datadog/environment/SystemProperties.java @@ -1,5 +1,10 @@ package datadog.environment; +import static java.util.Collections.emptyMap; +import static java.util.Collections.unmodifiableMap; + +import java.util.HashMap; +import java.util.Map; import javax.annotation.Nullable; /** @@ -42,6 +47,24 @@ public static String getOrDefault(String property, String defaultValue) { } } + /** + * Convert system properties to an unmodifiable {@link Map}. + * + * @return All system properties captured in an unmodifiable {@link Map}, or an empty {@link Map} + * if they can't be retrieved. + */ + public static Map asStringMap() { + try { + Map map = new HashMap<>(); + for (String propertyName : System.getProperties().stringPropertyNames()) { + map.put(propertyName, System.getProperty(propertyName)); + } + return unmodifiableMap(map); + } catch (SecurityException ignored) { + return emptyMap(); + } + } + /** * Sets a system property value. * diff --git a/components/environment/src/test/java/datadog/environment/EnvironmentVariablesTest.java b/components/environment/src/test/java/datadog/environment/EnvironmentVariablesTest.java index 695c95e2f09..3a9c2195f0d 100644 --- a/components/environment/src/test/java/datadog/environment/EnvironmentVariablesTest.java +++ b/components/environment/src/test/java/datadog/environment/EnvironmentVariablesTest.java @@ -2,9 +2,12 @@ import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import java.util.Map; import org.junit.jupiter.api.Test; class EnvironmentVariablesTest { @@ -36,4 +39,13 @@ void testGetOrDefault() { assertDoesNotThrow(() -> EnvironmentVariables.getOrDefault(MISSING_ENV_VAR, null)); assertNull(EnvironmentVariables.getOrDefault(MISSING_ENV_VAR, null)); } + + @Test + void testGetAll() { + Map all = EnvironmentVariables.getAll(); + assertNotNull(all); + assertFalse(all.isEmpty()); + // Unmodifiable collection + assertThrows(UnsupportedOperationException.class, all::clear); + } } diff --git a/components/environment/src/test/java/datadog/environment/SystemPropertiesTest.java b/components/environment/src/test/java/datadog/environment/SystemPropertiesTest.java index f376cce7728..870d89269ef 100644 --- a/components/environment/src/test/java/datadog/environment/SystemPropertiesTest.java +++ b/components/environment/src/test/java/datadog/environment/SystemPropertiesTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assumptions.assumeTrue; +import java.util.Map; import org.junit.jupiter.api.Test; class SystemPropertiesTest { @@ -63,4 +64,15 @@ void testClear() { assertDoesNotThrow(() -> SystemProperties.clear(null)); assertNull(SystemProperties.clear(null)); } + + @Test + void testAsStringMap() { + Map stringMap = SystemProperties.asStringMap(); + assertNotNull(stringMap); + assertFalse(stringMap.isEmpty()); + // Unmodifiable collection + assertThrows( + UnsupportedOperationException.class, + () -> stringMap.put(MISSING_SYSTEM_PROPERTY, DEFAULT_VALUE)); + } } diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java index ba35ceeb6b3..3c899cb25f3 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ProcessHierarchy.java @@ -9,22 +9,22 @@ import datadog.trace.bootstrap.instrumentation.api.AgentPropagation; import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext; import java.net.InetSocketAddress; -import java.util.Properties; +import java.util.Map; import javax.annotation.Nullable; public class ProcessHierarchy { private static final class SystemPropertiesPropagationGetter - implements AgentPropagation.ContextVisitor { - static final AgentPropagation.ContextVisitor INSTANCE = + implements AgentPropagation.ContextVisitor> { + static final AgentPropagation.ContextVisitor> INSTANCE = new SystemPropertiesPropagationGetter(); private SystemPropertiesPropagationGetter() {} @Override - public void forEachKey(Properties carrier, AgentPropagation.KeyClassifier classifier) { - for (String propertyName : carrier.stringPropertyNames()) { - if (!classifier.accept(propertyName, carrier.getProperty(propertyName))) { + public void forEachKey(Map carrier, AgentPropagation.KeyClassifier classifier) { + for (Map.Entry property : carrier.entrySet()) { + if (!classifier.accept(property.getKey(), property.getValue())) { return; } } @@ -36,7 +36,7 @@ public void forEachKey(Properties carrier, AgentPropagation.KeyClassifier classi ProcessHierarchy() { parentProcessModuleContext = extractContextAndGetSpanContext( - System.getProperties(), SystemPropertiesPropagationGetter.INSTANCE); + SystemProperties.asStringMap(), SystemPropertiesPropagationGetter.INSTANCE); } /** diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java index cc26a631490..d838cc9db5e 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/env/CiEnvironmentImpl.java @@ -1,6 +1,6 @@ package datadog.trace.civisibility.ci.env; -import java.util.Collections; +import datadog.environment.EnvironmentVariables; import java.util.Map; public class CiEnvironmentImpl implements CiEnvironment { @@ -12,13 +12,7 @@ public CiEnvironmentImpl(Map env) { } public static CiEnvironment local() { - Map env; - try { - env = System.getenv(); - } catch (SecurityException e) { - env = Collections.emptyMap(); - } - return new CiEnvironmentImpl(env); + return new CiEnvironmentImpl(EnvironmentVariables.getAll()); } @Override diff --git a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java index 9c95f5e8450..70b36f11b59 100644 --- a/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java +++ b/dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/domain/buildsystem/BuildSystemModuleImpl.java @@ -4,6 +4,7 @@ import datadog.communication.ddagent.TracerVersion; import datadog.context.propagation.CarrierSetter; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.api.DDTags; import datadog.trace.api.civisibility.domain.BuildModuleLayout; @@ -37,7 +38,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Properties; import java.util.concurrent.atomic.LongAdder; import java.util.function.Consumer; import javax.annotation.Nullable; @@ -137,18 +137,14 @@ private Map getPropertiesPropagatedToChildProcess( ExecutionSettings executionSettings, BuildSessionSettings sessionSettings) { Map propagatedSystemProperties = new HashMap<>(); - try { - Properties systemProperties = System.getProperties(); - for (Map.Entry e : systemProperties.entrySet()) { - String propertyName = (String) e.getKey(); - Object propertyValue = e.getValue(); - if ((propertyName.startsWith(Config.PREFIX) - || propertyName.startsWith("datadog.slf4j.simpleLogger.defaultLogLevel")) - && propertyValue != null) { - propagatedSystemProperties.put(propertyName, propertyValue.toString()); - } + for (Map.Entry p : SystemProperties.asStringMap().entrySet()) { + String propertyName = p.getKey(); + String propertyValue = p.getValue(); + if ((propertyName.startsWith(Config.PREFIX) + || propertyName.startsWith("datadog.slf4j.simpleLogger.defaultLogLevel")) + && propertyValue != null) { + propagatedSystemProperties.put(propertyName, propertyValue); } - } catch (SecurityException ignored) { } propagatedSystemProperties.put( diff --git a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java index c64df624fe7..7cf8c0eac61 100644 --- a/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java +++ b/dd-java-agent/instrumentation/gradle-8.3/src/main/groovy/datadog/trace/instrumentation/gradle/GradleDaemonInjectionUtils.java @@ -9,7 +9,6 @@ import java.nio.file.Path; import java.util.HashMap; import java.util.Map; -import java.util.Properties; public class GradleDaemonInjectionUtils { @@ -28,20 +27,16 @@ public static Map addJavaagentToGradleDaemonProperties( Path agentJarPath = agentJar.toPath(); StringBuilder agentArg = new StringBuilder("-javaagent:").append(agentJarPath).append('='); - try { - Properties systemProperties = System.getProperties(); - for (Map.Entry 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("',"); - } + for (Map.Entry p : SystemProperties.asStringMap().entrySet()) { + String propertyName = p.getKey(); + String propertyValue = p.getValue(); + if (propertyName.startsWith(Config.PREFIX)) { + agentArg + .append(propertyName) + .append("='") + .append(propertyValue.replace("'", "'\\''")) + .append("',"); } - } catch (SecurityException ignored) { } // creating a new map in case jvmOptions is immutable diff --git a/internal-api/src/main/java/datadog/trace/api/ProcessTags.java b/internal-api/src/main/java/datadog/trace/api/ProcessTags.java index b13adc60fb1..30d854387a1 100644 --- a/internal-api/src/main/java/datadog/trace/api/ProcessTags.java +++ b/internal-api/src/main/java/datadog/trace/api/ProcessTags.java @@ -1,5 +1,7 @@ package datadog.trace.api; +import datadog.environment.EnvironmentVariables; +import datadog.environment.SystemProperties; import datadog.trace.api.env.CapturedEnvironment; import datadog.trace.bootstrap.instrumentation.api.UTF8BytesString; import datadog.trace.util.TraceUtils; @@ -27,7 +29,7 @@ public class ProcessTags { public static final String ENTRYPOINT_WORKDIR = "entrypoint.workdir"; // visible for testing - static Function envGetter = System::getenv; + static Function envGetter = EnvironmentVariables::get; private static class Lazy { // the tags are used to compute a hash for dsm hence that map must be sorted. @@ -58,20 +60,12 @@ private static void fillJeeTags(SortedMap tags) { private static void insertTagFromSysPropIfPresent( Map tags, String propKey, String tagKey) { - String value = maybeGetSystemProperty(propKey); + String value = SystemProperties.get(propKey); if (value != null) { tags.put(tagKey, value); } } - private static String maybeGetSystemProperty(String propKey) { - try { - return System.getProperty(propKey); - } catch (Throwable ignored) { - } - return null; - } - private static boolean insertTagFromEnvIfPresent( Map tags, String envKey, String tagKey) { try { @@ -102,11 +96,7 @@ private static boolean insertLastPathSegmentIfPresent( } private static boolean hasSystemProperty(String propKey) { - try { - return System.getProperties().containsKey(propKey); - } catch (Throwable ignored) { - } - return false; + return SystemProperties.get(propKey) != null; } private static void fillBaseTags(Map tags) { @@ -123,12 +113,12 @@ private static void fillBaseTags(Map tags) { insertLastPathSegmentIfPresent(tags, processInfo.jarFile.getParent(), ENTRYPOINT_BASEDIR); } - insertLastPathSegmentIfPresent(tags, maybeGetSystemProperty("user.dir"), ENTRYPOINT_WORKDIR); + insertLastPathSegmentIfPresent(tags, SystemProperties.get("user.dir"), ENTRYPOINT_WORKDIR); } private static boolean fillJbossTags(Map tags) { if (insertLastPathSegmentIfPresent( - tags, maybeGetSystemProperty("jboss.home.dir"), "jboss.home")) { + tags, SystemProperties.get("jboss.home.dir"), "jboss.home")) { insertTagFromSysPropIfPresent(tags, "jboss.server.name", SERVER_NAME); tags.put("jboss.mode", hasSystemProperty("[Standalone]") ? "standalone" : "domain"); tags.put(SERVER_TYPE, "jboss"); diff --git a/internal-api/src/main/java/datadog/trace/util/PidHelper.java b/internal-api/src/main/java/datadog/trace/util/PidHelper.java index 0fafaf8df1c..43fd7fa96ec 100644 --- a/internal-api/src/main/java/datadog/trace/util/PidHelper.java +++ b/internal-api/src/main/java/datadog/trace/util/PidHelper.java @@ -1,7 +1,9 @@ package datadog.trace.util; +import datadog.environment.EnvironmentVariables; import datadog.environment.JavaVirtualMachine; import datadog.environment.OperatingSystem; +import datadog.environment.SystemProperties; import de.thetaphi.forbiddenapis.SuppressForbidden; import java.io.IOException; import java.lang.management.ManagementFactory; @@ -9,7 +11,9 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collections; +import java.util.Objects; import java.util.Set; +import java.util.function.Predicate; import java.util.function.Supplier; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -75,14 +79,16 @@ private static String getTempDir() { if (OperatingSystem.isLinux()) { return "/tmp"; } else if (OperatingSystem.isWindows()) { - return Stream.of(System.getenv("TMP"), System.getenv("TEMP"), System.getenv("USERPROFILE")) - .filter(String::isEmpty) + return Stream.of("TMP", "TEMP", "USERPROFILE") + .map(EnvironmentVariables::get) + .filter(Objects::nonNull) + .filter(((Predicate) String::isEmpty).negate()) .findFirst() .orElse("C:\\Windows"); } else if (OperatingSystem.isMacOs()) { - return System.getenv("TMPDIR"); + return EnvironmentVariables.get("TMPDIR"); } else { - return System.getProperty("java.io.tmpdir"); + return SystemProperties.get("java.io.tmpdir"); } } else { try { @@ -93,7 +99,7 @@ private static String getTempDir() { .invoke(null); } catch (Throwable t) { // Fall back to constants based on J9 source code, may not have perfect coverage - String tmpDir = System.getProperty("java.io.tmpdir"); + String tmpDir = SystemProperties.get("java.io.tmpdir"); if (tmpDir != null && !tmpDir.isEmpty()) { return tmpDir; } else if (OperatingSystem.isWindows()) { @@ -114,7 +120,7 @@ private static Path getJavaProcessesDir() { } else { // Emulating the hotspot way to enumerate the JVM processes using the perfdata file // https://github.com/openjdk/jdk/blob/d7cb933b89839b692f5562aeeb92076cd25a99f6/src/hotspot/share/runtime/perfMemory.cpp#L244 - return Paths.get(getTempDir(), "hsperfdata_" + System.getProperty("user.name")); + return Paths.get(getTempDir(), "hsperfdata_" + SystemProperties.get("user.name")); } } diff --git a/internal-api/src/main/java/datadog/trace/util/ProcessUtils.java b/internal-api/src/main/java/datadog/trace/util/ProcessUtils.java index 8bc3069e8fe..1a1e41c1f91 100644 --- a/internal-api/src/main/java/datadog/trace/util/ProcessUtils.java +++ b/internal-api/src/main/java/datadog/trace/util/ProcessUtils.java @@ -1,6 +1,7 @@ package datadog.trace.util; import datadog.environment.JavaVirtualMachine; +import datadog.environment.SystemProperties; import de.thetaphi.forbiddenapis.SuppressForbidden; import java.util.function.Supplier; import javax.annotation.Nullable; @@ -43,7 +44,7 @@ public static String getCurrentJvmPath() { } // JDK/JRE home, does not include "bin/java" portion - return System.getProperty("java.home"); + return SystemProperties.get("java.home"); } private ProcessUtils() {} diff --git a/internal-api/src/main/java/datadog/trace/util/TempLocationManager.java b/internal-api/src/main/java/datadog/trace/util/TempLocationManager.java index bf71f4971f6..0942a277dae 100644 --- a/internal-api/src/main/java/datadog/trace/util/TempLocationManager.java +++ b/internal-api/src/main/java/datadog/trace/util/TempLocationManager.java @@ -2,6 +2,8 @@ import static datadog.trace.api.telemetry.LogCollector.SEND_TELEMETRY; +import datadog.environment.EnvironmentVariables; +import datadog.environment.SystemProperties; import datadog.trace.api.config.ProfilingConfig; import datadog.trace.bootstrap.config.provider.ConfigProvider; import java.io.IOException; @@ -304,9 +306,9 @@ private TempLocationManager() { // @VisibleForTesting static String getBaseTempDirName() { - String userName = System.getProperty("user.name"); + String userName = SystemProperties.get("user.name"); // unlikely, but fall-back to system env based user name - userName = userName == null ? System.getenv("USER") : userName; + userName = userName == null ? EnvironmentVariables.get("USER") : userName; // make sure we do not have any illegal characters in the user name userName = userName != null ? userName.replace('.', '_').replace('/', '_').replace(' ', '_') : null; diff --git a/telemetry/src/main/java/datadog/telemetry/HostInfo.java b/telemetry/src/main/java/datadog/telemetry/HostInfo.java index 4a51488addd..1d950ece8e2 100644 --- a/telemetry/src/main/java/datadog/telemetry/HostInfo.java +++ b/telemetry/src/main/java/datadog/telemetry/HostInfo.java @@ -1,6 +1,7 @@ package datadog.telemetry; import datadog.environment.OperatingSystem; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -40,7 +41,7 @@ public static String getOsName() { // os.name == Mac OS X, while uanme -s == Darwin. We'll hardcode it to Darwin. osName = "Darwin"; } else { - osName = System.getProperty("os.name"); + osName = SystemProperties.get("os.name"); } } return osName; @@ -60,7 +61,7 @@ public static String getKernelName() { public static String getKernelRelease() { if (kernelRelease == null) { // In Linux, os.version == uname -r - kernelRelease = System.getProperty("os.version"); + kernelRelease = SystemProperties.get("os.version"); } return kernelRelease; } @@ -78,7 +79,7 @@ public static String getKernelVersion() { } kernelVersion = version; } else { - kernelVersion = System.getProperty("os.version"); + kernelVersion = SystemProperties.get("os.version"); } } return kernelVersion; @@ -87,7 +88,7 @@ public static String getKernelVersion() { public static String getArchitecture() { if (architecture == null) { // In Linux, os.arch == uname -me - architecture = System.getProperty("os.arch"); + architecture = SystemProperties.get("os.arch"); } return architecture; } @@ -135,7 +136,7 @@ public static String getOsVersion() { return name + " " + version; } } - return System.getProperty("os.version"); + return SystemProperties.get("os.version"); } } } diff --git a/telemetry/src/main/java/datadog/telemetry/TelemetryRequest.java b/telemetry/src/main/java/datadog/telemetry/TelemetryRequest.java index 0b4360b9f76..f903feb1aef 100644 --- a/telemetry/src/main/java/datadog/telemetry/TelemetryRequest.java +++ b/telemetry/src/main/java/datadog/telemetry/TelemetryRequest.java @@ -2,6 +2,7 @@ import datadog.common.container.ContainerInfo; import datadog.communication.ddagent.TracerVersion; +import datadog.environment.EnvironmentVariables; import datadog.telemetry.api.DistributionSeries; import datadog.telemetry.api.Integration; import datadog.telemetry.api.LogMessage; @@ -111,9 +112,9 @@ public void writeProducts() { } public void writeInstallSignature() { - String installId = System.getenv("DD_INSTRUMENTATION_INSTALL_ID"); - String installType = System.getenv("DD_INSTRUMENTATION_INSTALL_TYPE"); - String installTime = System.getenv("DD_INSTRUMENTATION_INSTALL_TIME"); + String installId = EnvironmentVariables.get("DD_INSTRUMENTATION_INSTALL_ID"); + String installType = EnvironmentVariables.get("DD_INSTRUMENTATION_INSTALL_TYPE"); + String installTime = EnvironmentVariables.get("DD_INSTRUMENTATION_INSTALL_TIME"); try { requestBody.writeInstallSignature(installId, installType, installTime); diff --git a/utils/container-utils/build.gradle.kts b/utils/container-utils/build.gradle.kts index 61877cbcfc9..2b7578a2785 100644 --- a/utils/container-utils/build.gradle.kts +++ b/utils/container-utils/build.gradle.kts @@ -5,6 +5,7 @@ plugins { apply(from = "$rootDir/gradle/java.gradle") dependencies { + implementation(project(":components:environment")) implementation(libs.slf4j) testImplementation(project(":utils:test-utils")) diff --git a/utils/container-utils/src/main/java/datadog/common/container/ServerlessInfo.java b/utils/container-utils/src/main/java/datadog/common/container/ServerlessInfo.java index 41c82b57e31..a068e6d49c2 100644 --- a/utils/container-utils/src/main/java/datadog/common/container/ServerlessInfo.java +++ b/utils/container-utils/src/main/java/datadog/common/container/ServerlessInfo.java @@ -1,5 +1,6 @@ package datadog.common.container; +import datadog.environment.EnvironmentVariables; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; @@ -12,7 +13,7 @@ public class ServerlessInfo { private final boolean hasExtension; private ServerlessInfo(final String extensionPath) { - this.functionName = System.getenv(AWS_FUNCTION_VARIABLE); + this.functionName = EnvironmentVariables.get(AWS_FUNCTION_VARIABLE); if (null == extensionPath) { this.hasExtension = false; } else { diff --git a/utils/socket-utils/src/main/java/datadog/common/socket/SocketUtils.java b/utils/socket-utils/src/main/java/datadog/common/socket/SocketUtils.java index d52a2dcb899..53602428b64 100644 --- a/utils/socket-utils/src/main/java/datadog/common/socket/SocketUtils.java +++ b/utils/socket-utils/src/main/java/datadog/common/socket/SocketUtils.java @@ -3,6 +3,7 @@ import static datadog.trace.api.ConfigDefaults.DEFAULT_TRACE_AGENT_SOCKET_PATH; import datadog.environment.OperatingSystem; +import datadog.environment.SystemProperties; import datadog.trace.api.Config; import datadog.trace.api.config.TracerConfig; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -26,9 +27,9 @@ && new File(DEFAULT_TRACE_AGENT_SOCKET_PATH).exists()) { } else /* windows */ { if (unixDomainSocket != null) { log.warn( - "{} setting not supported on {}. Reverting to the default.", + "{} setting not supported on {}. Reverting to the default.", TracerConfig.AGENT_UNIX_DOMAIN_SOCKET, - System.getProperty("os.name")); + SystemProperties.get("os.name")); unixDomainSocket = null; } }