Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import datadog.common.container.ContainerInfo;
import datadog.common.socket.NamedPipeSocketFactory;
import datadog.common.socket.UnixDomainSocketFactory;
import datadog.environment.SystemProperties;
import datadog.trace.api.Config;
import datadog.trace.util.AgentProxySelector;
import java.io.File;
Expand Down Expand Up @@ -49,9 +50,12 @@ public final class OkHttpUtils {

private static final String DD_API_KEY = "DD-API-KEY";

private static final String JAVA_VERSION = System.getProperty("java.version", "unknown");
private static final String JAVA_VM_NAME = System.getProperty("java.vm.name", "unknown");
private static final String JAVA_VM_VENDOR = System.getProperty("java.vm.vendor", "unknown");
private static final String JAVA_VERSION =
SystemProperties.getOrDefault("java.version", "unknown");
private static final String JAVA_VM_NAME =
SystemProperties.getOrDefault("java.vm.name", "unknown");
private static final String JAVA_VM_VENDOR =
SystemProperties.getOrDefault("java.vm.vendor", "unknown");

public static OkHttpClient buildHttpClient(final HttpUrl url, final long timeoutMillis) {
return buildHttpClient(url, null, null, timeoutMillis);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,17 +144,17 @@ private static GitClient.Factory buildGitClientFactory(

@Nonnull
private static CiEnvironment buildCiEnvironment(Config config, SharedCommunicationObjects sco) {
CiEnvironment localEnvironment = CiEnvironmentImpl.local();
String remoteEnvVarsProviderUrl = config.getCiVisibilityRemoteEnvVarsProviderUrl();
if (remoteEnvVarsProviderUrl != null) {
String remoteEnvVarsProviderKey = config.getCiVisibilityRemoteEnvVarsProviderKey();
CiEnvironment remoteEnvironment =
new CiEnvironmentImpl(
getRemoteEnvironment(
remoteEnvVarsProviderUrl, remoteEnvVarsProviderKey, sco.okHttpClient));
CiEnvironment localEnvironment = new CiEnvironmentImpl(System.getenv());
return new CompositeCiEnvironment(remoteEnvironment, localEnvironment);
} else {
return new CiEnvironmentImpl(System.getenv());
return localEnvironment;
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package datadog.trace.civisibility;

import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_HOST;
import static datadog.trace.api.config.CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_PORT;
import static datadog.trace.bootstrap.instrumentation.api.AgentPropagation.extractContextAndGetSpanContext;
import static datadog.trace.util.Strings.propertyNameToSystemPropertyName;

import datadog.trace.api.config.CiVisibilityConfig;
import datadog.environment.SystemProperties;
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
import datadog.trace.util.Strings;
import java.net.InetSocketAddress;
import java.util.Properties;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -69,8 +71,8 @@ private boolean isWrapper() {
}

private boolean isMavenParent() {
return System.getProperty("maven.home") != null
&& System.getProperty("classworlds.conf") != null
return SystemProperties.get("maven.home") != null
&& SystemProperties.get("classworlds.conf") != null
// when using Maven Wrapper
|| ClassLoader.getSystemClassLoader()
.getResource("org/apache/maven/wrapper/WrapperExecutor.class")
Expand All @@ -82,7 +84,7 @@ private boolean isGradleDaemon() {
.getResource("org/gradle/launcher/daemon/bootstrap/GradleDaemon.class")
!= null
// double-check this is not a Gradle Worker
&& System.getProperties().getProperty("org.gradle.internal.worker.tmpdir") == null;
&& SystemProperties.get("org.gradle.internal.worker.tmpdir") == null;
}

private boolean isGradleLauncher() {
Expand All @@ -93,16 +95,12 @@ private boolean isGradleLauncher() {

@Nullable
public InetSocketAddress getSignalServerAddress() {
// System.getProperty is used rather than Config,
// System properties are used rather than Config,
// because system variables can be set after config was initialized
String host =
System.getProperty(
Strings.propertyNameToSystemPropertyName(
CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_HOST));
SystemProperties.get(propertyNameToSystemPropertyName(CIVISIBILITY_SIGNAL_SERVER_HOST));
String port =
System.getProperty(
Strings.propertyNameToSystemPropertyName(
CiVisibilityConfig.CIVISIBILITY_SIGNAL_SERVER_PORT));
SystemProperties.get(propertyNameToSystemPropertyName(CIVISIBILITY_SIGNAL_SERVER_PORT));
if (host != null && port != null) {
return new InetSocketAddress(host, Integer.parseInt(port));
} else {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.civisibility.ci.env;

import java.util.Collections;
import java.util.Map;

public class CiEnvironmentImpl implements CiEnvironment {
Expand All @@ -10,6 +11,16 @@ public CiEnvironmentImpl(Map<String, String> env) {
this.env = env;
}

public static CiEnvironment local() {
Map<String, String> env;
try {
env = System.getenv();
} catch (SecurityException e) {
env = Collections.emptyMap();
}
return new CiEnvironmentImpl(env);
}

@Override
public String get(String name) {
return env.get(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,15 +138,18 @@ private Map<String, String> getPropertiesPropagatedToChildProcess(
ExecutionSettings executionSettings,
BuildSessionSettings sessionSettings) {
Map<String, String> propagatedSystemProperties = new HashMap<>();
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)
|| propertyName.startsWith("datadog.slf4j.simpleLogger.defaultLogLevel"))
&& propertyValue != null) {
propagatedSystemProperties.put(propertyName, propertyValue.toString());
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)
|| propertyName.startsWith("datadog.slf4j.simpleLogger.defaultLogLevel"))
&& propertyValue != null) {
propagatedSystemProperties.put(propertyName, propertyValue.toString());
}
}
} catch (SecurityException ignored) {
}

propagatedSystemProperties.put(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package datadog.trace.civisibility.utils;

import datadog.environment.SystemProperties;
import de.thetaphi.forbiddenapis.SuppressForbidden;
import java.io.IOException;
import java.nio.file.FileVisitResult;
Expand Down Expand Up @@ -77,7 +78,7 @@ public static String expandTilde(final String path) {
return path;
}

return path.replaceFirst("^~", System.getProperty("user.home"));
return path.replaceFirst("^~", SystemProperties.getOrDefault("user.home", ""));
}

public static String toRealPath(String path) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import datadog.common.version.VersionInfo;
import datadog.communication.http.OkHttpUtils;
import datadog.crashtracking.dto.CrashLog;
import datadog.environment.SystemProperties;
import datadog.trace.api.Config;
import datadog.trace.api.DDTags;
import datadog.trace.bootstrap.config.provider.ConfigProvider;
Expand Down Expand Up @@ -302,7 +303,9 @@ private RequestBody makeTelemetryRequestBody(@Nonnull String content) throws IOE
writer.beginObject();
writer.name("env").value(config.getEnv());
writer.name("language_name").value("jvm");
writer.name("language_version").value(System.getProperty("java.version", "unknown"));
writer
.name("language_version")
.value(SystemProperties.getOrDefault("java.version", "unknown"));
writer.name("service_name").value(config.getServiceName());
writer.name("service_version").value(config.getVersion());
writer.name("tracer_version").value(VersionInfo.VERSION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import static java.nio.file.attribute.PosixFilePermissions.fromString;
import static java.util.Locale.ROOT;

import datadog.environment.SystemProperties;
import datadog.trace.util.PidHelper;
import datadog.trace.util.Strings;
import java.io.BufferedReader;
Expand All @@ -36,7 +37,7 @@ static void initialize(String onErrorVal, String onErrorFile) {
return;
}
if (onErrorFile == null || onErrorFile.isEmpty()) {
onErrorFile = System.getProperty("user.dir") + "/hs_err_pid" + PidHelper.getPid() + ".log";
onErrorFile = SystemProperties.get("user.dir") + "/hs_err_pid" + PidHelper.getPid() + ".log";
LOG.debug("No -XX:ErrorFile value, defaulting to {}", onErrorFile);
} else {
onErrorFile = Strings.replace(onErrorFile, "%p", PidHelper.getPid());
Expand Down Expand Up @@ -120,7 +121,7 @@ private static void writeCrashUploaderScript(

private static String template(String line, String execClass, String crashFile) {
line = Strings.replace(line, "!AGENT_JAR!", execClass);
line = Strings.replace(line, "!JAVA_HOME!", System.getProperty("java.home"));
line = Strings.replace(line, "!JAVA_HOME!", SystemProperties.get("java.home"));
if (crashFile != null) {
line = Strings.replace(line, "!JAVA_ERROR_FILE!", crashFile);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.datadoghq.profiler.JVMAccess;
import com.sun.management.HotSpotDiagnosticMXBean;
import datadog.environment.OperatingSystem;
import datadog.environment.SystemProperties;
import datadog.libs.ddprof.DdprofLibraryLoader;
import datadog.trace.util.PidHelper;
import datadog.trace.util.TempLocationManager;
Expand Down Expand Up @@ -162,7 +163,7 @@ static void writeConfig(Path scriptPath, String... entries) {
bw.write(entries[i + 1]);
bw.newLine();
}
bw.write("java_home=" + System.getProperty("java.home"));
bw.write("java_home=" + SystemProperties.get("java.home"));
bw.newLine();

Runtime.getRuntime()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import datadog.crashtracking.dto.SemanticVersion;
import datadog.crashtracking.dto.StackFrame;
import datadog.crashtracking.dto.StackTrace;
import datadog.environment.SystemProperties;
import java.time.OffsetDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
Expand Down Expand Up @@ -214,10 +215,10 @@ public CrashLog parse(String crashLog) {
Metadata metadata = new Metadata("dd-trace-java", VersionInfo.VERSION, "java", null);
OSInfo osInfo =
new OSInfo(
System.getProperty("os.arch"),
System.getProperty("sun.arch.data.model"),
System.getProperty("os.name"),
SemanticVersion.of(System.getProperty("os.version")));
SystemProperties.get("os.arch"),
SystemProperties.get("sun.arch.data.model"),
SystemProperties.get("os.name"),
SemanticVersion.of(SystemProperties.get("os.version")));
ProcInfo procInfo = pid != null ? new ProcInfo(pid) : null;
return new CrashLog(false, datetime, error, metadata, osInfo, procInfo);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import datadog.common.version.VersionInfo;
import datadog.crashtracking.dto.CrashLog;
import datadog.environment.SystemProperties;
import datadog.trace.api.Config;
import datadog.trace.bootstrap.config.provider.ConfigProvider;
import java.io.BufferedReader;
Expand Down Expand Up @@ -184,7 +185,7 @@ public void testTelemetryHappyPath(String log) throws Exception {
assertEquals(ENV, event.get("application").get("env").asText());
assertEquals("jvm", event.get("application").get("language_name").asText());
assertEquals(
System.getProperty("java.version", "unknown"),
SystemProperties.getOrDefault("java.version", "unknown"),
event.get("application").get("language_version").asText());
assertEquals(SERVICE, event.get("application").get("service_name").asText());
assertEquals(VERSION, event.get("application").get("service_version").asText());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.datadog.debugger.util.ClassFileLines;
import com.datadog.debugger.util.DebuggerMetrics;
import com.datadog.debugger.util.ExceptionHelper;
import datadog.environment.SystemProperties;
import datadog.trace.agent.tooling.AgentStrategies;
import datadog.trace.api.Config;
import datadog.trace.bootstrap.debugger.MethodLocation;
Expand Down Expand Up @@ -89,7 +90,7 @@ public class DebuggerTransformer implements ClassFileTransformer {
SpanProbe.class);
private static final String JAVA_IO_TMPDIR = "java.io.tmpdir";

public static Path DUMP_PATH = Paths.get(System.getProperty(JAVA_IO_TMPDIR), "debugger");
public static Path DUMP_PATH = Paths.get(SystemProperties.get(JAVA_IO_TMPDIR), "debugger");

private final Config config;
private final TransformerDefinitionMatcher definitionMatcher;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static datadog.trace.util.AgentThreadFactory.newAgentThread;
import static org.datadog.jmxfetch.AppConfig.ACTION_COLLECT;

import datadog.environment.SystemProperties;
import datadog.trace.api.Config;
import datadog.trace.api.GlobalTracer;
import datadog.trace.api.StatsDClient;
Expand Down Expand Up @@ -47,9 +48,9 @@ private static void run(final StatsDClientManager statsDClientManager, final Con
}

if (!log.isDebugEnabled()
&& System.getProperty("org.slf4j.simpleLogger.log.org.datadog.jmxfetch") == null) {
&& SystemProperties.get("org.slf4j.simpleLogger.log.org.datadog.jmxfetch") == null) {
// Reduce noisiness of jmxfetch logging.
System.setProperty("org.slf4j.simpleLogger.log.org.datadog.jmxfetch", "warn");
SystemProperties.set("org.slf4j.simpleLogger.log.org.datadog.jmxfetch", "warn");
}

final String jmxFetchConfigDir = config.getJmxFetchConfigDir();
Expand Down Expand Up @@ -217,10 +218,11 @@ private static List<String> getInternalMetricFiles() {
}

private static String getLogLocation() {
return System.getProperty("org.slf4j.simpleLogger.logFile", "System.err");
return SystemProperties.getOrDefault("org.slf4j.simpleLogger.logFile", "System.err");
}

private static String getLogLevel() {
return System.getProperty("org.slf4j.simpleLogger.defaultLogLevel", "info").toUpperCase();
return SystemProperties.getOrDefault("org.slf4j.simpleLogger.defaultLogLevel", "info")
.toUpperCase();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static java.nio.file.Files.readAllBytes;

import datadog.environment.SystemProperties;
import datadog.trace.api.Config;
import datadog.trace.api.flare.TracerFlare;
import java.io.File;
Expand Down Expand Up @@ -45,7 +46,7 @@ public void prepareForFlare() {
String captureFilename =
"tracer" + "-" + Config.get().getRuntimeId() + "-" + endMillis + ".log";
try {
Path tempPath = Paths.get(System.getProperty("java.io.tmpdir"), captureFilename);
Path tempPath = Paths.get(SystemProperties.get("java.io.tmpdir"), captureFilename);
Path parentPath = tempPath.getParent();
if (parentPath != null && !Files.isDirectory(parentPath)) {
Files.createDirectories(parentPath);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.datadog.profiling.ddprof;

import datadog.environment.SystemProperties;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashSet;
Expand Down Expand Up @@ -29,6 +30,6 @@ public static Arch of(String identifier) {
}

public static Arch current() {
return Arch.of(System.getProperty("os.arch"));
return Arch.of(SystemProperties.get("os.arch"));
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.datadog.profiling.ddprof;

import datadog.environment.SystemProperties;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.HashSet;
Expand Down Expand Up @@ -27,6 +28,6 @@ public static OperatingSystem of(String identifier) {
}

public static OperatingSystem current() {
return OperatingSystem.of(System.getProperty("os.name"));
return OperatingSystem.of(SystemProperties.get("os.name"));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import static datadog.trace.util.AgentThreadFactory.AgentThread.PROFILER_HTTP_DISPATCHER;

import datadog.environment.JavaVirtualMachine;
import datadog.environment.SystemProperties;
import datadog.trace.api.profiling.RecordingData;
import datadog.trace.relocate.api.IOLogger;
import datadog.trace.util.AgentThreadFactory;
Expand Down Expand Up @@ -44,7 +45,7 @@ public class JfrCliHelper {
public static void invokeOn(final RecordingData data, final IOLogger ioLogger) {
File tmp = null;
try {
Path jfr = Paths.get(System.getProperty("java.home"), "bin", "jfr");
Path jfr = Paths.get(SystemProperties.get("java.home"), "bin", "jfr");
if (JavaVirtualMachine.isJ9() || !Files.exists(jfr)) {
ioLogger.error("Failed to gather information on recording, can't find `jfr`");
return;
Expand Down
Loading