- Notifications
You must be signed in to change notification settings - Fork 313
Introduce environment component #9071
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
7b74889
to c835b69
Compare BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 47 metrics, 6 unstable metrics. Startup time reports for insecure-bankgantt title insecure-bank - global startup overhead: candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section tracing Agent [baseline] (997.731 ms) : 0, 997731 Total [baseline] (8.577 s) : 0, 8576570 Agent [candidate] (997.898 ms) : 0, 997898 Total [candidate] (8.577 s) : 0, 8576756 section iast Agent [baseline] (1.14 s) : 0, 1139569 Total [baseline] (9.297 s) : 0, 9297177 Agent [candidate] (1.134 s) : 0, 1133608 Total [candidate] (9.295 s) : 0, 9294588
gantt title insecure-bank - break down per module: candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (688.966 ms) : 0, 688966 BytebuddyAgent [candidate] (688.983 ms) : 0, 688983 GlobalTracer [baseline] (242.723 ms) : 0, 242723 GlobalTracer [candidate] (242.816 ms) : 0, 242816 AppSec [baseline] (30.378 ms) : 0, 30378 AppSec [candidate] (30.319 ms) : 0, 30319 Debugger [baseline] (6.053 ms) : 0, 6053 Debugger [candidate] (6.032 ms) : 0, 6032 Remote Config [baseline] (679.41 µs) : 0, 679 Remote Config [candidate] (678.654 µs) : 0, 679 Telemetry [baseline] (8.193 ms) : 0, 8193 Telemetry [candidate] (8.275 ms) : 0, 8275 section iast BytebuddyAgent [baseline] (814.059 ms) : 0, 814059 BytebuddyAgent [candidate] (809.596 ms) : 0, 809596 GlobalTracer [baseline] (234.388 ms) : 0, 234388 GlobalTracer [candidate] (233.656 ms) : 0, 233656 IAST [baseline] (28.114 ms) : 0, 28114 IAST [candidate] (28.56 ms) : 0, 28560 AppSec [baseline] (27.772 ms) : 0, 27772 AppSec [candidate] (26.721 ms) : 0, 26721 Debugger [baseline] (5.857 ms) : 0, 5857 Debugger [candidate] (5.791 ms) : 0, 5791 Remote Config [baseline] (581.791 µs) : 0, 582 Remote Config [candidate] (574.361 µs) : 0, 574 Telemetry [baseline] (7.967 ms) : 0, 7967 Telemetry [candidate] (7.92 ms) : 0, 7920 Startup time reports for petclinicgantt title petclinic - global startup overhead: candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section tracing Agent [baseline] (997.797 ms) : 0, 997797 Total [baseline] (10.64 s) : 0, 10640162 Agent [candidate] (1.004 s) : 0, 1004012 Total [candidate] (10.617 s) : 0, 10617069 section appsec Agent [baseline] (1.185 s) : 0, 1184644 Total [baseline] (10.811 s) : 0, 10810584 Agent [candidate] (1.175 s) : 0, 1174508 Total [candidate] (10.694 s) : 0, 10693749 section iast Agent [baseline] (1.136 s) : 0, 1136138 Total [baseline] (10.857 s) : 0, 10856722 Agent [candidate] (1.133 s) : 0, 1133457 Total [candidate] (10.859 s) : 0, 10859011 section profiling Agent [baseline] (1.246 s) : 0, 1245739 Total [baseline] (10.977 s) : 0, 10977102 Agent [candidate] (1.246 s) : 0, 1246413 Total [candidate] (11.027 s) : 0, 11026633
gantt title petclinic - break down per module: candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (689.011 ms) : 0, 689011 BytebuddyAgent [candidate] (693.473 ms) : 0, 693473 GlobalTracer [baseline] (242.859 ms) : 0, 242859 GlobalTracer [candidate] (244.157 ms) : 0, 244157 AppSec [baseline] (30.25 ms) : 0, 30250 AppSec [candidate] (30.406 ms) : 0, 30406 Debugger [baseline] (6.028 ms) : 0, 6028 Debugger [candidate] (6.045 ms) : 0, 6045 Remote Config [baseline] (675.447 µs) : 0, 675 Remote Config [candidate] (683.054 µs) : 0, 683 Telemetry [baseline] (8.22 ms) : 0, 8220 Telemetry [candidate] (8.251 ms) : 0, 8251 section appsec BytebuddyAgent [baseline] (717.448 ms) : 0, 717448 BytebuddyAgent [candidate] (710.518 ms) : 0, 710518 GlobalTracer [baseline] (237.798 ms) : 0, 237798 GlobalTracer [candidate] (235.788 ms) : 0, 235788 AppSec [baseline] (171.599 ms) : 0, 171599 AppSec [candidate] (170.898 ms) : 0, 170898 Debugger [baseline] (5.785 ms) : 0, 5785 Debugger [candidate] (5.81 ms) : 0, 5810 Remote Config [baseline] (609.646 µs) : 0, 610 Remote Config [candidate] (612.566 µs) : 0, 613 Telemetry [baseline] (8.095 ms) : 0, 8095 Telemetry [candidate] (8.102 ms) : 0, 8102 IAST [baseline] (22.378 ms) : 0, 22378 IAST [candidate] (21.996 ms) : 0, 21996 section iast BytebuddyAgent [baseline] (812.289 ms) : 0, 812289 BytebuddyAgent [candidate] (809.013 ms) : 0, 809013 GlobalTracer [baseline] (232.907 ms) : 0, 232907 GlobalTracer [candidate] (233.417 ms) : 0, 233417 AppSec [baseline] (27.606 ms) : 0, 27606 AppSec [candidate] (28.554 ms) : 0, 28554 Debugger [baseline] (5.849 ms) : 0, 5849 Debugger [candidate] (5.847 ms) : 0, 5847 Remote Config [baseline] (575.991 µs) : 0, 576 Remote Config [candidate] (589.282 µs) : 0, 589 Telemetry [baseline] (7.964 ms) : 0, 7964 Telemetry [candidate] (8.04 ms) : 0, 8040 IAST [baseline] (28.04 ms) : 0, 28040 IAST [candidate] (27.151 ms) : 0, 27151 section profiling ProfilingAgent [baseline] (103.15 ms) : 0, 103150 ProfilingAgent [candidate] (102.824 ms) : 0, 102824 BytebuddyAgent [baseline] (678.479 ms) : 0, 678479 BytebuddyAgent [candidate] (679.631 ms) : 0, 679631 GlobalTracer [baseline] (362.387 ms) : 0, 362387 GlobalTracer [candidate] (362.155 ms) : 0, 362155 AppSec [baseline] (30.923 ms) : 0, 30923 AppSec [candidate] (30.866 ms) : 0, 30866 Debugger [baseline] (12.823 ms) : 0, 12823 Debugger [candidate] (10.674 ms) : 0, 10674 Remote Config [baseline] (660.886 µs) : 0, 661 Remote Config [candidate] (693.105 µs) : 0, 693 Telemetry [baseline] (8.716 ms) : 0, 8716 Telemetry [candidate] (10.242 ms) : 0, 10242 Profiling [baseline] (103.174 ms) : 0, 103174 Profiling [candidate] (102.849 ms) : 0, 102849 LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 12 unstable metrics.
Request duration reports for petclinicgantt title petclinic - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section baseline no_agent (37.683 ms) : 37387, 37979 . : milestone, 37683, appsec (47.725 ms) : 47295, 48155 . : milestone, 47725, code_origins (44.86 ms) : 44476, 45245 . : milestone, 44860, iast (46.171 ms) : 45778, 46564 . : milestone, 46171, profiling (49.153 ms) : 48672, 49634 . : milestone, 49153, tracing (45.312 ms) : 44936, 45688 . : milestone, 45312, section candidate no_agent (35.878 ms) : 35594, 36163 . : milestone, 35878, appsec (47.953 ms) : 47528, 48379 . : milestone, 47953, code_origins (44.785 ms) : 44376, 45193 . : milestone, 44785, iast (43.803 ms) : 43415, 44190 . : milestone, 43803, profiling (47.989 ms) : 47526, 48452 . : milestone, 47989, tracing (45.21 ms) : 44823, 45597 . : milestone, 45210,
Request duration reports for insecure-bankgantt title insecure-bank - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section baseline no_agent (4.433 ms) : 4383, 4482 . : milestone, 4433, iast (9.032 ms) : 8885, 9179 . : milestone, 9032, iast_FULL (14.242 ms) : 13959, 14524 . : milestone, 14242, iast_GLOBAL (10.092 ms) : 9909, 10275 . : milestone, 10092, profiling (8.911 ms) : 8772, 9049 . : milestone, 8911, tracing (7.576 ms) : 7472, 7681 . : milestone, 7576, section candidate no_agent (4.359 ms) : 4309, 4408 . : milestone, 4359, iast (9.198 ms) : 9051, 9345 . : milestone, 9198, iast_FULL (13.878 ms) : 13601, 14155 . : milestone, 13878, iast_GLOBAL (10.089 ms) : 9905, 10273 . : milestone, 10089, profiling (8.625 ms) : 8490, 8760 . : milestone, 8625, tracing (7.604 ms) : 7489, 7718 . : milestone, 7604,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for tomcatgantt title tomcat - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section baseline no_agent (1.476 ms) : 1464, 1488 . : milestone, 1476, appsec (2.415 ms) : 2366, 2465 . : milestone, 2415, iast (2.201 ms) : 2138, 2263 . : milestone, 2201, iast_GLOBAL (2.249 ms) : 2186, 2312 . : milestone, 2249, profiling (2.052 ms) : 2001, 2103 . : milestone, 2052, tracing (2.023 ms) : 1975, 2072 . : milestone, 2023, section candidate no_agent (1.476 ms) : 1464, 1487 . : milestone, 1476, appsec (2.408 ms) : 2358, 2457 . : milestone, 2408, iast (2.198 ms) : 2136, 2261 . : milestone, 2198, iast_GLOBAL (2.237 ms) : 2174, 2299 . : milestone, 2237, profiling (2.054 ms) : 2002, 2105 . : milestone, 2054, tracing (2.013 ms) : 1965, 2062 . : milestone, 2013,
Execution time for biojavagantt title biojava - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~a96389ec94, baseline=1.51.0-SNAPSHOT~40561cd093 dateFormat X axisFormat %s section baseline no_agent (14.897 s) : 14897000, 14897000 . : milestone, 14897000, appsec (14.774 s) : 14774000, 14774000 . : milestone, 14774000, iast (18.418 s) : 18418000, 18418000 . : milestone, 18418000, iast_GLOBAL (17.881 s) : 17881000, 17881000 . : milestone, 17881000, profiling (15.248 s) : 15248000, 15248000 . : milestone, 15248000, tracing (15.018 s) : 15018000, 15018000 . : milestone, 15018000, section candidate no_agent (15.655 s) : 15655000, 15655000 . : milestone, 15655000, appsec (14.966 s) : 14966000, 14966000 . : milestone, 14966000, iast (18.574 s) : 18574000, 18574000 . : milestone, 18574000, iast_GLOBAL (17.822 s) : 17822000, 17822000 . : milestone, 17822000, profiling (15.914 s) : 15914000, 15914000 . : milestone, 15914000, tracing (14.813 s) : 14813000, 14813000 . : milestone, 14813000,
|
components/environment/src/main/java/datadog/environment/JvmOptions.java Outdated Show resolved Hide resolved
components/environment/src/main/java/datadog/environment/JvmOptions.java Outdated Show resolved Hide resolved
components/environment/src/main/java/datadog/environment/JvmOptions.java Outdated Show resolved Hide resolved
c3f935d
to fa4ca74
Compare components/environment/src/main/java/datadog/environment/OperatingSystem.java Show resolved Hide resolved
@SuppressForbidden // split on single-character uses fast path | ||
private List<String> findFullCommand() { | ||
String command = SystemProperties.getOrDefault(SUN_JAVA_COMMAND_PROPERTY, "").trim(); | ||
return command.isEmpty() ? emptyList() : Arrays.asList(command.split(" ")); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will this work if args have spaces ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
full command might be problematic to parse properly. I'm thinking about windows in particular.
/ # cat Cmd.java public class Cmd { public static void main(String... args) { System.out.println(System.getProperty("sun.java.command")); } } / # java Cmd.java "foo bar" jdk.compiler/com.sun.tools.javac.launcher.Main Cmd.java foo bar
...
/ # java -jar /tmp/foo\ bar/cmd.jar "foo bar" /tmp/foo bar/cmd.jar foo bar
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think that would work well. But that is the current behavior:
dd-trace-java/internal-api/src/main/java/datadog/trace/api/env/CapturedEnvironment.java
Lines 22 to 43 in 0f41106
public ProcessInfo() { | |
// Besides "sun.java.command" property is not an standard, all main JDKs has set this | |
// property. | |
// Tested on: | |
// - OracleJDK, OpenJDK, AdoptOpenJDK, IBM JDK, Azul Zulu JDK, Amazon Coretto JDK | |
final String command = System.getProperty("sun.java.command"); | |
if (command == null || command.isEmpty()) { | |
return; | |
} | |
final String[] split = command.trim().split(" "); | |
if (split.length == 0 || split[0].isEmpty()) { | |
return; | |
} | |
final String candidate = split[0]; | |
if (candidate.toLowerCase(Locale.ROOT).endsWith(".jar")) { | |
jarFile = new File(candidate); | |
} else { | |
mainClass = candidate; | |
} | |
} |
So far, I would be in favor to keep it as is, document the limitation, and revisit it later when I will finally have time to do LP work (this dev is mostly based of R&D week and overnight time). WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes OK.
Eventually this can be a good call as a future improvement to leverage ProcessHandle
when the JVM is at least Java 9.
components/environment/src/main/java/datadog/environment/CommandLine.java Outdated Show resolved Hide resolved
components/environment/src/main/java/datadog/environment/JvmOptions.java Outdated Show resolved Hide resolved
fa4ca74
to cf7e701
Compare components/environment/src/main/java/datadog/environment/CommandLine.java Show resolved Hide resolved
cf7e701
to c99f499
Compare c99f499
to a96389e
Compare // Try Oracle-based | ||
// IBM Semeru Runtime 1.8.0_345-b01 will throw UnsatisfiedLinkError here. | ||
try { | ||
final Class<?> managementFactoryHelperClass = | ||
Class.forName("sun.management.ManagementFactoryHelper"); | ||
final Class<?> vmManagementClass = Class.forName("sun.management.VMManagement"); | ||
| ||
Object vmManagement; | ||
try { | ||
vmManagement = | ||
managementFactoryHelperClass.getDeclaredMethod("getVMManagement").invoke(null); | ||
} catch (final Throwable e) { | ||
// Older vm before getVMManagement() existed | ||
final Field field = managementFactoryHelperClass.getDeclaredField("jvm"); | ||
field.setAccessible(true); | ||
vmManagement = field.get(null); | ||
field.setAccessible(false); | ||
} | ||
//noinspection unchecked | ||
return (List<String>) vmManagementClass.getMethod("getVmArguments").invoke(vmManagement); | ||
} catch (final Throwable ignored) { | ||
// Ignored exception | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it makes sense to do a simpler check like if (JavaVirtualMachine.isOracle()) { ... }
?
Same for IBM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the idea is to try it even if the system properties do not match so you get a chance to capture the data whenever it's available and improve the detection overall. But you would have to ask the original implementer if you would like the reasoning behind.
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.39.0` -> `2.40.0` | | [org.apache.commons:commons-lang3](https://commons.apache.org/proper/commons-lang/) ([source](https://gitbox.apache.org/repos/asf/commons-lang.git)) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.17.0` -> `3.18.0` | | [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) | plugin | misk/gradle/libs.versions.toml | gradle | patch | `0.18.0` -> `0.18.1` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.50.1` -> `1.51.0` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | --- ### Release Notes <details> <summary>google/error-prone (com.google.errorprone:error_prone_annotations)</summary> ### [`v2.40.0`](https://github.com/google/error-prone/releases/tag/v2.40.0): Error Prone 2.40.0 Changes: - Bug fixes and improvements - Releases (including snapshots) have migrated from [OSSRH to the Central Publisher Portal](https://central.sonatype.org/pages/ossrh-eol/#process-to-migrate) Full changelog: google/error-prone@v2.39.0...v2.40.0 </details> <details> <summary>Kotlin/binary-compatibility-validator (org.jetbrains.kotlinx.binary-compatibility-validator)</summary> ### [`v0.18.1`](https://github.com/Kotlin/binary-compatibility-validator/releases/tag/0.18.1) [Compare Source](Kotlin/binary-compatibility-validator@0.18.0...0.18.1) #### What's Changed - Fixed a bug preventing use of cross-compilation support during KLIB dump validation \[[#​304](https://github.com/Kotlin/binary-compatibility-validator/issues/304)]\[[#​306](https://github.com/Kotlin/binary-compatibility-validator/issues/306)] </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.51.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.51.0): 1.51.0 ### Components #### Application Security Management (IAST) - 🐛 Fix verify error when ctor params are used after a call site ([#​9083](DataDog/dd-trace-java#9083) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Limit the maximum size of the location path in IAST vulnerabilities ([#​9028](DataDog/dd-trace-java#9028) - [@​jandro996](https://github.com/jandro996)) - 🐛 Fix IAST gRPC handler with null superclass ([#​8984](DataDog/dd-trace-java#8984) - [@​smola](https://github.com/smola)) - ✨ Optimize IAST Vulnerability Detection ([#​8885](DataDog/dd-trace-java#8885) - [@​jandro996](https://github.com/jandro996)) #### Application Security Management (WAF) - ✨ Upgrade libddwaf-java to 15.0.0 ([#​9022](DataDog/dd-trace-java#9022) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Extract RestEasy json body response schemas ([#​9015](DataDog/dd-trace-java#9015) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract Jersey json body response schemas ([#​9014](DataDog/dd-trace-java#9014) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract Ratpack json body response schemas ([#​9013](DataDog/dd-trace-java#9013) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Enable API Security by default and make it lazy loading ([#​9009](DataDog/dd-trace-java#9009) - [@​smola](https://github.com/smola)) - ✨ Extract Vert.x json body response schemas ([#​9001](DataDog/dd-trace-java#9001) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Extract Play json body response schemas ([#​8995](DataDog/dd-trace-java#8995) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Fix Jackson nodes introspection for request/response schema extraction ([#​8980](DataDog/dd-trace-java#8980) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Extract Spring json body response schemas ([#​8938](DataDog/dd-trace-java#8938) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Default obfuscation regexp update ([#​8937](DataDog/dd-trace-java#8937) - [@​sezen-datadog](https://github.com/sezen-datadog)) #### Build & Tooling - ✨ Cancel GitLab running pipeline on new PR push ([#​9023](DataDog/dd-trace-java#9023) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Migrate publishing to Maven Central Portal ([#​8807](DataDog/dd-trace-java#8807) - [@​sarahchen6](https://github.com/sarahchen6)) #### Continuous Integration Visibility - 🐛 Fix Test Optimization to work with JDK 24 ([#​9114](DataDog/dd-trace-java#9114) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add repo root as safe directory on git client creation ([#​9033](DataDog/dd-trace-java#9033) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Add PR number tag and improve PR information building ([#​8990](DataDog/dd-trace-java#8990) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Update impacted tests logic ([#​8923](DataDog/dd-trace-java#8923) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Data Streams Monitoring - 🧹 Clean up DSM context injection ([#​8776](DataDog/dd-trace-java#8776) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Database Monitoring - 🐛 Set trace\_injected in try block ([#​9025](DataDog/dd-trace-java#9025) - [@​natashadada](https://github.com/natashadada)) #### Dynamic Instrumentation - 🐛 Add source file tracking enable option ([#​9115](DataDog/dd-trace-java#9115) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add java.util.Date support ([#​9111](DataDog/dd-trace-java#9111) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Update file probe format ([#​9047](DataDog/dd-trace-java#9047) - [@​jpbempel](https://github.com/jpbempel)) - ✨ add safe local var hoisting ([#​9034](DataDog/dd-trace-java#9034) - [@​jpbempel](https://github.com/jpbempel)) - 🧹 Add new config for debugger upload interval ([#​8959](DataDog/dd-trace-java#8959) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Enable Code Origin with Dynamic instrumentation ([#​8940](DataDog/dd-trace-java#8940) - [@​jpbempel](https://github.com/jpbempel)) #### ML Observability (LLMObs) - 💡 LLM Observability SDK ([#​8781](DataDog/dd-trace-java#8781) - [@​gary-huang](https://github.com/gary-huang), [@​nayeem-kamal](https://github.com/nayeem-kamal)) #### Metrics - 🐛 Ensure client stat reporter is started when the agent is not available at bootstrap ([#​9082](DataDog/dd-trace-java#9082) - [@​amarziali](https://github.com/amarziali)) - ✨ Create metric: appsec.waf.config\_errors ([#​8394](DataDog/dd-trace-java#8394) - [@​sezen-datadog](https://github.com/sezen-datadog)) #### Platform components - ✨ Introduce environment component ([#​9071](DataDog/dd-trace-java#9071) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Profiling - 🐛 Remove annoying warning for smap event parsing ([#​9119](DataDog/dd-trace-java#9119) - [@​jbachorik](https://github.com/jbachorik)) - 🐛 Fix ByteCountingInputStream when reading past EOF ([#​8988](DataDog/dd-trace-java#8988) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Realtime User Monitoring - ✨ Add RUM SDK injection for servlet based web servers ([#​9110](DataDog/dd-trace-java#9110) - [@​PerfectSlayer](https://github.com/PerfectSlayer) [@​amarziali](https://github.com/amarziali)) #### Telemetry - ✨ Update the config origin metric to match what it's mapping ([#​9045](DataDog/dd-trace-java#9045) - [@​sezen-datadog](https://github.com/sezen-datadog)) #### Testing - ✨ Add testing for latest stable version (JDK 24) ([#​8875](DataDog/dd-trace-java#8875) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - 🐛 Fix bug with dropping baggage when `TracePropagationBehaviorExtract=IGNORE` ([#​9037](DataDog/dd-trace-java#9037) - [@​mhlidd](https://github.com/mhlidd)) - 🐛 Fix ArrayIndexOutOfBoundsException in PercentEscaper ([#​9032](DataDog/dd-trace-java#9032) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Fix `Error` handling for trace interceptors ([#​9097](DataDog/dd-trace-java#9097) - [@​AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD)) - 💡 Add wildcard feature for `DD_TRACE_HEADER_TAGS` and enabling for Http Response headers ([#​9067](DataDog/dd-trace-java#9067) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer public API - 💡 Add LLM Observability SDK ([#​8781](DataDog/dd-trace-java#8781) - [@​gary-huang](https://github.com/gary-huang)) ### Instrumentations #### Akka instrumentation - 🐛 Fix NPE in akka-http and pekko-http integrations ([#​9019](DataDog/dd-trace-java#9019) - [@​mcculls](https://github.com/mcculls)) #### Eclipse Vert.x instrumentation - ✨ Extract Vert.x json body response schemas ([#​9001](DataDog/dd-trace-java#9001) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Write http.route tag as soon as possible in vert.x ([#​8952](DataDog/dd-trace-java#8952) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### JAX-WS instrumentation - 💡⚠️ Enable jax-ws integration by default ([#​9030](DataDog/dd-trace-java#9030) - [@​bm1549](https://github.com/bm1549)) - ✨ Extract Jersey json body response schemas ([#​9014](DataDog/dd-trace-java#9014) - [@​jandro996](https://github.com/jandro996)) #### Mule instrumentation - 🐛 Propagate grizzly http span in filters if nothing is active ([#​9016](DataDog/dd-trace-java#9016) - [@​amarziali](https://github.com/amarziali)) #### Play Framework instrumentation - ✨ Extract Play json body response schemas ([#​8995](DataDog/dd-trace-java#8995) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Ratpack instrumentation - ✨ Extract Ratpack json body response schemas ([#​9013](DataDog/dd-trace-java#9013) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Spring instrumentation - ✨ Extract Spring json body response schemas ([#​8938](DataDog/dd-trace-java#8938) - [@​sezen-datadog](https://github.com/sezen-datadog)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 649b690d4c9d7dcb572c457f0802b42b8e3e682e
What Does This Do
This PR introduces a new platform component dedicated to the interactions with the underlying OS and JVM.
Motivation
The goal is to gather a collection of helper related to environment query as a consistent and tested API.
So far, the environment API provides:
JVM information will now take into account:
JAVA_TOOL_OPTIONS
andJDK_JAVA_OPTIONS
environment variables so agent detection won't skip this kind of issueAdditional Notes
The JVM argument
--disable-@files
is not supported. It is supposed to work since Java 9 but was only fixed in some Java 20 update for some vendor. I does not seem to be used at all.This PR is the first of many stacked PRs to come.
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: LANGPLAT-458