- Notifications
You must be signed in to change notification settings - Fork 313
Adding Support for TRACE_PROPAGATION_BEHAVIOR_EXTRACT
#8535
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
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 6 unstable metrics. Startup time reports for insecure-bankgantt title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~534b1ffcfb, baseline=1.48.0-SNAPSHOT~ffa2073a5c dateFormat X axisFormat %s section tracing Agent [baseline] (1.049 s) : 0, 1048889 Total [baseline] (8.677 s) : 0, 8677363 Agent [candidate] (1.044 s) : 0, 1044417 Total [candidate] (8.666 s) : 0, 8666246 section iast Agent [baseline] (1.171 s) : 0, 1170685 Total [baseline] (9.238 s) : 0, 9237796 Agent [candidate] (1.177 s) : 0, 1176538 Total [candidate] (9.275 s) : 0, 9275015 section iast_HARDCODED_SECRET_DISABLED Agent [baseline] (1.182 s) : 0, 1181875 Total [baseline] (9.173 s) : 0, 9173281 Agent [candidate] (1.187 s) : 0, 1186743 Total [candidate] (9.213 s) : 0, 9213052 section iast_TELEMETRY_OFF Agent [baseline] (1.175 s) : 0, 1175351 Total [baseline] (9.247 s) : 0, 9247318 Agent [candidate] (1.171 s) : 0, 1171339 Total [candidate] (9.294 s) : 0, 9293763
gantt title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~534b1ffcfb, baseline=1.48.0-SNAPSHOT~ffa2073a5c dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (723.247 ms) : 0, 723247 BytebuddyAgent [candidate] (721.921 ms) : 0, 721921 GlobalTracer [baseline] (240.989 ms) : 0, 240989 GlobalTracer [candidate] (239.567 ms) : 0, 239567 AppSec [baseline] (54.938 ms) : 0, 54938 AppSec [candidate] (54.742 ms) : 0, 54742 Remote Config [baseline] (693.039 µs) : 0, 693 Remote Config [candidate] (684.42 µs) : 0, 684 Telemetry [baseline] (13.77 ms) : 0, 13770 Telemetry [candidate] (12.237 ms) : 0, 12237 section iast BytebuddyAgent [baseline] (837.408 ms) : 0, 837408 BytebuddyAgent [candidate] (842.859 ms) : 0, 842859 GlobalTracer [baseline] (229.756 ms) : 0, 229756 GlobalTracer [candidate] (230.202 ms) : 0, 230202 AppSec [baseline] (56.348 ms) : 0, 56348 AppSec [candidate] (56.24 ms) : 0, 56240 Remote Config [baseline] (605.82 µs) : 0, 606 Remote Config [candidate] (603.061 µs) : 0, 603 Telemetry [baseline] (8.629 ms) : 0, 8629 Telemetry [candidate] (8.662 ms) : 0, 8662 IAST [baseline] (22.77 ms) : 0, 22770 IAST [candidate] (22.725 ms) : 0, 22725 section iast_HARDCODED_SECRET_DISABLED BytebuddyAgent [baseline] (845.758 ms) : 0, 845758 BytebuddyAgent [candidate] (848.264 ms) : 0, 848264 GlobalTracer [baseline] (231.571 ms) : 0, 231571 GlobalTracer [candidate] (233.225 ms) : 0, 233225 AppSec [baseline] (56.509 ms) : 0, 56509 AppSec [candidate] (56.982 ms) : 0, 56982 Remote Config [baseline] (614.409 µs) : 0, 614 Remote Config [candidate] (621.607 µs) : 0, 622 Telemetry [baseline] (8.837 ms) : 0, 8837 Telemetry [candidate] (8.883 ms) : 0, 8883 IAST [baseline] (23.249 ms) : 0, 23249 IAST [candidate] (23.416 ms) : 0, 23416 section iast_TELEMETRY_OFF BytebuddyAgent [baseline] (840.791 ms) : 0, 840791 BytebuddyAgent [candidate] (836.583 ms) : 0, 836583 GlobalTracer [baseline] (231.479 ms) : 0, 231479 GlobalTracer [candidate] (231.1 ms) : 0, 231100 AppSec [baseline] (55.388 ms) : 0, 55388 AppSec [candidate] (56.691 ms) : 0, 56691 Remote Config [baseline] (596.34 µs) : 0, 596 Remote Config [candidate] (600.795 µs) : 0, 601 Telemetry [baseline] (8.566 ms) : 0, 8566 Telemetry [candidate] (8.68 ms) : 0, 8680 IAST [baseline] (23.235 ms) : 0, 23235 IAST [candidate] (22.431 ms) : 0, 22431 Startup time reports for petclinicgantt title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~534b1ffcfb, baseline=1.48.0-SNAPSHOT~ffa2073a5c dateFormat X axisFormat %s section tracing Agent [baseline] (1.047 s) : 0, 1046822 Total [baseline] (10.524 s) : 0, 10523514 Agent [candidate] (1.044 s) : 0, 1043508 Total [candidate] (10.434 s) : 0, 10434263 section appsec Agent [baseline] (1.186 s) : 0, 1185852 Total [baseline] (10.753 s) : 0, 10753017 Agent [candidate] (1.183 s) : 0, 1183312 Total [candidate] (10.77 s) : 0, 10769935 section iast Agent [baseline] (1.172 s) : 0, 1171760 Total [baseline] (10.976 s) : 0, 10975615 Agent [candidate] (1.18 s) : 0, 1179596 Total [candidate] (11.036 s) : 0, 11035622 section profiling Agent [baseline] (1.26 s) : 0, 1260285 Total [baseline] (10.864 s) : 0, 10863608 Agent [candidate] (1.267 s) : 0, 1267457 Total [candidate] (10.844 s) : 0, 10844387
gantt title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~534b1ffcfb, baseline=1.48.0-SNAPSHOT~ffa2073a5c dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (722.443 ms) : 0, 722443 BytebuddyAgent [candidate] (718.508 ms) : 0, 718508 GlobalTracer [baseline] (240.505 ms) : 0, 240505 GlobalTracer [candidate] (239.431 ms) : 0, 239431 AppSec [baseline] (54.906 ms) : 0, 54906 AppSec [candidate] (54.646 ms) : 0, 54646 Remote Config [baseline] (692.308 µs) : 0, 692 Remote Config [candidate] (687.2 µs) : 0, 687 Telemetry [baseline] (12.959 ms) : 0, 12959 Telemetry [candidate] (15.076 ms) : 0, 15076 section appsec BytebuddyAgent [baseline] (738.024 ms) : 0, 738024 BytebuddyAgent [candidate] (735.882 ms) : 0, 735882 GlobalTracer [baseline] (237.275 ms) : 0, 237275 GlobalTracer [candidate] (236.169 ms) : 0, 236169 AppSec [baseline] (175.566 ms) : 0, 175566 AppSec [candidate] (176.353 ms) : 0, 176353 Remote Config [baseline] (662.662 µs) : 0, 663 Remote Config [candidate] (662.556 µs) : 0, 663 Telemetry [baseline] (8.315 ms) : 0, 8315 Telemetry [candidate] (8.294 ms) : 0, 8294 IAST [baseline] (21.656 ms) : 0, 21656 IAST [candidate] (21.495 ms) : 0, 21495 section iast BytebuddyAgent [baseline] (838.34 ms) : 0, 838340 BytebuddyAgent [candidate] (843.645 ms) : 0, 843645 GlobalTracer [baseline] (230.122 ms) : 0, 230122 GlobalTracer [candidate] (231.257 ms) : 0, 231257 AppSec [baseline] (55.979 ms) : 0, 55979 AppSec [candidate] (56.025 ms) : 0, 56025 Remote Config [baseline] (606.331 µs) : 0, 606 Remote Config [candidate] (618.955 µs) : 0, 619 Telemetry [baseline] (8.668 ms) : 0, 8668 Telemetry [candidate] (8.885 ms) : 0, 8885 IAST [baseline] (22.887 ms) : 0, 22887 IAST [candidate] (23.914 ms) : 0, 23914 section profiling BytebuddyAgent [baseline] (709.43 ms) : 0, 709430 BytebuddyAgent [candidate] (714.053 ms) : 0, 714053 GlobalTracer [baseline] (350.23 ms) : 0, 350230 GlobalTracer [candidate] (351.943 ms) : 0, 351943 AppSec [baseline] (54.22 ms) : 0, 54220 AppSec [candidate] (53.771 ms) : 0, 53771 Remote Config [baseline] (675.358 µs) : 0, 675 Remote Config [candidate] (726.714 µs) : 0, 727 Telemetry [baseline] (8.958 ms) : 0, 8958 Telemetry [candidate] (8.966 ms) : 0, 8966 ProfilingAgent [baseline] (96.043 ms) : 0, 96043 ProfilingAgent [candidate] (96.926 ms) : 0, 96926 Profiling [baseline] (96.067 ms) : 0, 96067 Profiling [candidate] (96.95 ms) : 0, 96950 LoadDacapoParameters
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.48.0-SNAPSHOT~534b1ffcfb, baseline=1.48.0-SNAPSHOT~ffa2073a5c dateFormat X axisFormat %s section baseline no_agent (1.472 ms) : 1461, 1484 . : milestone, 1472, appsec (2.34 ms) : 2296, 2384 . : milestone, 2340, iast (2.124 ms) : 2068, 2179 . : milestone, 2124, iast_GLOBAL (2.172 ms) : 2116, 2229 . : milestone, 2172, profiling (2.001 ms) : 1956, 2046 . : milestone, 2001, tracing (1.948 ms) : 1906, 1991 . : milestone, 1948, section candidate no_agent (1.476 ms) : 1464, 1487 . : milestone, 1476, appsec (2.343 ms) : 2299, 2387 . : milestone, 2343, iast (2.135 ms) : 2079, 2192 . : milestone, 2135, iast_GLOBAL (2.161 ms) : 2105, 2218 . : milestone, 2161, profiling (1.973 ms) : 1929, 2018 . : milestone, 1973, tracing (1.958 ms) : 1916, 2001 . : milestone, 1958,
Execution time for biojavagantt title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~534b1ffcfb, baseline=1.48.0-SNAPSHOT~ffa2073a5c dateFormat X axisFormat %s section baseline no_agent (15.496 s) : 15496000, 15496000 . : milestone, 15496000, appsec (14.829 s) : 14829000, 14829000 . : milestone, 14829000, iast (18.44 s) : 18440000, 18440000 . : milestone, 18440000, iast_GLOBAL (17.755 s) : 17755000, 17755000 . : milestone, 17755000, profiling (15.61 s) : 15610000, 15610000 . : milestone, 15610000, tracing (14.951 s) : 14951000, 14951000 . : milestone, 14951000, section candidate no_agent (15.256 s) : 15256000, 15256000 . : milestone, 15256000, appsec (14.86 s) : 14860000, 14860000 . : milestone, 14860000, iast (18.783 s) : 18783000, 18783000 . : milestone, 18783000, iast_GLOBAL (18.237 s) : 18237000, 18237000 . : milestone, 18237000, profiling (14.975 s) : 14975000, 14975000 . : milestone, 14975000, tracing (14.943 s) : 14943000, 14943000 . : milestone, 14943000,
|
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.
Left few comments as part of early review 🙏
dd-trace-core/src/main/java/datadog/trace/core/propagation/HttpCodec.java Outdated Show resolved Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/propagation/HttpCodec.java Show resolved Hide resolved
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.
Looking good! Left a bunch of comments for polish but everything's here 👍
RESTART, | ||
IGNORE; | ||
| ||
private String displayName; |
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.
For the record, enum can have constructor too.
So you should be able to set the displayName
final and compute it in constructor.
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.
TBH I'm not sure what the benefit of having a constructor here... where would it actually be used? I added one constructor in the new commit, but not sure if it is what you were imagining.
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.
The main difference between the lazy and the constructor will be the initialization time.
For the lazy, it will be done when accessing the string representation (so when parsing config).
For the constructor one, it will be done when loading the type.
For lazy initialization, you might need to care about async access and prevent double initialization on concurrent access.
All of those is advice for general programming. In this case, it does not matter much as Config
will appear near startup, and the initialized resources are not significant.
What I had in mind about the constructor was:
TracePropagationBehaviorExtract() { this.displayName = name().toLowerCase(ROOT); }
The same initialization than yours on toString()
but moved already to simplify the logic.
Its mostly for the sake of Java discussion, there is no real impact for you PR 😉
dd-trace-core/src/main/java/datadog/trace/core/propagation/HttpCodec.java Show resolved Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/propagation/HttpExtractorTest.groovy Outdated Show resolved Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/propagation/HttpExtractorTest.groovy Outdated Show resolved Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/CoreSpanBuilderTest.groovy Show resolved Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpanContext.java Show resolved Hide resolved
...nal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/NotSampledSpanContext.java Outdated Show resolved Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/TagContext.java Outdated Show resolved Hide resolved
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.
Looking good! 🎉
RESTART, | ||
IGNORE; | ||
| ||
private String displayName; |
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.
The main difference between the lazy and the constructor will be the initialization time.
For the lazy, it will be done when accessing the string representation (so when parsing config).
For the constructor one, it will be done when loading the type.
For lazy initialization, you might need to care about async access and prevent double initialization on concurrent access.
All of those is advice for general programming. In this case, it does not matter much as Config
will appear near startup, and the initialized resources are not significant.
What I had in mind about the constructor was:
TracePropagationBehaviorExtract() { this.displayName = name().toLowerCase(ROOT); }
The same initialization than yours on toString()
but moved already to simplify the logic.
Its mostly for the sake of Java discussion, there is no real impact for you PR 😉
@Override | ||
public String toString() { | ||
String string = displayName; | ||
if (displayName == null) { |
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.
This can just be simplified like this:
if (displayName == null) { displayName = name().toLowerCase(Locale.ROOT); } return displayName;
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 even proposed an early initialization in constructor :)
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.
Does implementing the initialization in the constructor take care of all cases where toString()
might be called? 🤔
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | org.flywaydb.flyway | plugin | misk/gradle/libs.versions.toml | gradle | minor | `11.6.0` -> `11.7.0` | | [com.squareup.okio:okio-fakefilesystem](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.squareup.okio:okio](https://github.com/square/okio) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.10.2` -> `3.11.0` | | [com.autonomousapps.dependency-analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin) | plugin | misk/gradle/libs.versions.toml | gradle | minor | `2.15.0` -> `2.16.0` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.47.3` -> `1.48.1` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.18` -> `2.31.20` | --- ### Release Notes <details> <summary>square/okio (com.squareup.okio:okio-fakefilesystem)</summary> ### [`v3.11.0`](https://github.com/square/okio/blob/HEAD/CHANGELOG.md#Version-3110) *2025-04-09* - Fix: Clear the deflater's byte array reference - New: Faster implementation of `String.decodeHex()` on Kotlin/JS. - New: Declare `EXACTLY_ONCE` execution for blocks like `Closeable.use {}` and `FileSystem.read {}`. - Upgrade: \[Kotlin 2.1.20]\[kotlin\_2\_1\_20]. </details> <details> <summary>autonomousapps/dependency-analysis-android-gradle-plugin (com.autonomousapps.dependency-analysis)</summary> ### [`v2.16.0`](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin/blob/HEAD/CHANGELOG.md#Version-2160) - \[Feat]: support `com.android.test` projects. - \[Feat]: support typesafe project accessors with opt-in. ```kotlin dependencyAnalysis { useTypesafeProjectAccessors(true) // false by default } ``` </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.48.1`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.1): 1.48.1 ### Components #### Tracer internal logging - 🐛 Remove print line causing unnecessary logs ([#​8687](DataDog/dd-trace-java#8687) - [@​sarahchen6](https://github.com/sarahchen6)) ### [`v1.48.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.48.0): 1.48.0 ### Known Bugs > \[!NOTE] > If you are experiencing issues with spamming timeout logs, please update to the [latest version](https://github.com/DataDog/dd-trace-java/releases/latest) or set [JDK_SOCKET_ENABLED](https://github.com/DataDog/dd-trace-java/blob/33fc3c9a9b7cda3beda88b8b3e5224ae2b10764a/dd-trace-api/src/main/java/datadog/trace/api/config/GeneralConfig.java#L98) to false. ### Components #### Application Security Management (IAST) - ✨ Fix vulnerability location org.jose4j.lang.HashUtil ([#​8610](DataDog/dd-trace-java#8610) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#​8609](DataDog/dd-trace-java#8609) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#​8608](DataDog/dd-trace-java#8608) - [@​jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#​8549](DataDog/dd-trace-java#8549) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#​8620](DataDog/dd-trace-java#8620) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#​8510](DataDog/dd-trace-java#8510) - [@​smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#​8486](DataDog/dd-trace-java#8486) - [@​smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#​8482](DataDog/dd-trace-java#8482) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#​8469](DataDog/dd-trace-java#8469) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#​8464](DataDog/dd-trace-java#8464) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#​8178](DataDog/dd-trace-java#8178) - [@​ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#​8629](DataDog/dd-trace-java#8629) - [@​sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#​8314](DataDog/dd-trace-java#8314) - [@​sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#​8573](DataDog/dd-trace-java#8573) - [@​jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#​8682](DataDog/dd-trace-java#8682) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#​8677](DataDog/dd-trace-java#8677) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#​8675](DataDog/dd-trace-java#8675), [#​8683](DataDog/dd-trace-java#8683) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#​8663](DataDog/dd-trace-java#8663) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#​8650](DataDog/dd-trace-java#8650) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#​8615](DataDog/dd-trace-java#8615) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#​8566](DataDog/dd-trace-java#8566) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#​8533](DataDog/dd-trace-java#8533) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#​8499](DataDog/dd-trace-java#8499), [#​8540](DataDog/dd-trace-java#8540) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#​8652](DataDog/dd-trace-java#8652) - [@​jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#​8553](DataDog/dd-trace-java#8553) - [@​kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#​8679](DataDog/dd-trace-java#8679) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#​8612](DataDog/dd-trace-java#8612) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#​8587](DataDog/dd-trace-java#8587) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#​8524](DataDog/dd-trace-java#8524) - [@​jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#​8520](DataDog/dd-trace-java#8520) - [@​jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#​8478](DataDog/dd-trace-java#8478) - [@​mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#​8671](DataDog/dd-trace-java#8671) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#​8668](DataDog/dd-trace-java#8668) - [@​jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#​191](DataDog/dd-trace-java#191)) by [@​yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@​MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#194 - A set of fixes related to clang, aarch64 and musl pecularities of vmstructs stack unwinder by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#​8661](DataDog/dd-trace-java#8661) - [@​r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#​8605](DataDog/dd-trace-java#8605) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#​8624](DataDog/dd-trace-java#8624) - [@​jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#​8618](DataDog/dd-trace-java#8618) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#​8561](DataDog/dd-trace-java#8561) - [@​wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#​8558](DataDog/dd-trace-java#8558) - [@​robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#​8438](DataDog/dd-trace-java#8438) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#​8535](DataDog/dd-trace-java#8535) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#​8559](DataDog/dd-trace-java#8559) - [@​amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#​8547](DataDog/dd-trace-java#8547) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#​8544](DataDog/dd-trace-java#8544) - [@​mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#​8526](DataDog/dd-trace-java#8526) - [@​mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#​8296](DataDog/dd-trace-java#8296) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#​8600](DataDog/dd-trace-java#8600) - [@​ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#​8083](DataDog/dd-trace-java#8083) - [@​cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#​8536](DataDog/dd-trace-java#8536) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#​8489](DataDog/dd-trace-java#8489) - [@​mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#​8599](DataDog/dd-trace-java#8599) - [@​ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#​8572](DataDog/dd-trace-java#8572) - [@​paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#​8541](DataDog/dd-trace-java#8541) - [@​mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#​8606](DataDog/dd-trace-java#8606) - [@​github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#​8490](DataDog/dd-trace-java#8490) - [@​nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#​8595](DataDog/dd-trace-java#8595) - [@​joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#​8518](DataDog/dd-trace-java#8518) - [@​duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#​8432](DataDog/dd-trace-java#8432) - [@​duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#​8560](DataDog/dd-trace-java#8560) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#​8471](DataDog/dd-trace-java#8471) - [@​vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#​8581](DataDog/dd-trace-java#8581) - [@​amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#​8651](DataDog/dd-trace-java#8651) - [@​mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#​8645](DataDog/dd-trace-java#8645) - [@​mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#​8659](DataDog/dd-trace-java#8659) - [@​amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#​8352](DataDog/dd-trace-java#8352) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#​8562](DataDog/dd-trace-java#8562) - [@​amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#​8440](DataDog/dd-trace-java#8440) - [@​amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#​8601](DataDog/dd-trace-java#8601) - [@​mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#​8532](DataDog/dd-trace-java#8532) - [@​amarziali](https://github.com/amarziali)) </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**: Disabled by config. Please merge this manually once you are satisfied. ♻ **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: 331314f71acaced3adc75ea5d7e855c248d593fc
What Does This Do
Introduces support for a new config
TRACE_PROPAGATION_BEHAVIOR_EXTRACT
. RFCAccepted Values:
continue
: The tracing library continues the trace from the incoming headers, if present. Also, incoming baggage is propagated. (Default Value)restart
: The tracing library always starts a new trace with a new trace-id. Context extraction will occur as otherwise configured, except that the local span will no longer have a parent-child span relationship with the incoming trace context, instead it will reference the incoming trace context via a span link. Also, incoming baggage is propagated.ignore
: The tracing library always starts a new trace with a new trace-id without creating any span links. Also, incoming baggage is dropped.Motivation
Additional Notes
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: APMAPI-1010