Skip to content

Conversation

mhlidd
Copy link
Contributor

@mhlidd mhlidd commented Mar 10, 2025

What Does This Do

Introduces support for a new config TRACE_PROPAGATION_BEHAVIOR_EXTRACT. RFC

Accepted 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

Jira ticket: APMAPI-1010

@mhlidd mhlidd added type: enhancement Enhancements and improvements comp: context propagation Trace context propagation labels Mar 10, 2025
@pr-commenter
Copy link

pr-commenter bot commented Mar 10, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mhlidd/tracecontext_propagation_restart
git_commit_date 1742305462 1742328620
git_commit_sha ffa2073 534b1ff
release_version 1.48.0-SNAPSHOT~ffa2073a5c 1.48.0-SNAPSHOT~534b1ffcfb
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742331144 1742331144
ci_job_id 853838903 853838903
ci_pipeline_id 59245016 59245016
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-ybd4envy-project-304-concurrent-0-55oavc10 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-ybd4envy-project-304-concurrent-0-55oavc10 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 6 unstable metrics.

Startup time reports for insecure-bank
gantt 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 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.049 s -
Agent iast 1.171 s 121.796 ms (11.6%)
Agent iast_HARDCODED_SECRET_DISABLED 1.182 s 132.986 ms (12.7%)
Agent iast_TELEMETRY_OFF 1.175 s 126.462 ms (12.1%)
Total tracing 8.677 s -
Total iast 9.238 s 560.434 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.173 s 495.918 ms (5.7%)
Total iast_TELEMETRY_OFF 9.247 s 569.955 ms (6.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.044 s -
Agent iast 1.177 s 132.121 ms (12.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.187 s 142.325 ms (13.6%)
Agent iast_TELEMETRY_OFF 1.171 s 126.922 ms (12.2%)
Total tracing 8.666 s -
Total iast 9.275 s 608.769 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.213 s 546.806 ms (6.3%)
Total iast_TELEMETRY_OFF 9.294 s 627.517 ms (7.2%)
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 
Loading
Startup time reports for petclinic
gantt 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 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.047 s -
Agent appsec 1.186 s 139.03 ms (13.3%)
Agent iast 1.172 s 124.938 ms (11.9%)
Agent profiling 1.26 s 213.463 ms (20.4%)
Total tracing 10.524 s -
Total appsec 10.753 s 229.503 ms (2.2%)
Total iast 10.976 s 452.101 ms (4.3%)
Total profiling 10.864 s 340.095 ms (3.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.044 s -
Agent appsec 1.183 s 139.803 ms (13.4%)
Agent iast 1.18 s 136.088 ms (13.0%)
Agent profiling 1.267 s 223.948 ms (21.5%)
Total tracing 10.434 s -
Total appsec 10.77 s 335.672 ms (3.2%)
Total iast 11.036 s 601.359 ms (5.8%)
Total profiling 10.844 s 410.123 ms (3.9%)
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 
Loading

Load

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mhlidd/tracecontext_propagation_restart
git_commit_date 1742305462 1742328620
git_commit_sha ffa2073 534b1ff
release_version 1.48.0-SNAPSHOT~ffa2073a5c 1.48.0-SNAPSHOT~534b1ffcfb
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1742330699 1742330699
ci_job_id 853838905 853838905
ci_pipeline_id 59245016 59245016
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-psmztocj-project-304-concurrent-3-dxvpohve 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-psmztocj-project-304-concurrent-3-dxvpohve 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for tomcat
gantt 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, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.461 ms, 1.484 ms] -
appsec 2.34 ms [2.296 ms, 2.384 ms] 867.412 µs (58.9%)
iast 2.124 ms [2.068 ms, 2.179 ms] 651.194 µs (44.2%)
iast_GLOBAL 2.172 ms [2.116 ms, 2.229 ms] 699.721 µs (47.5%)
profiling 2.001 ms [1.956 ms, 2.046 ms] 528.407 µs (35.9%)
tracing 1.948 ms [1.906 ms, 1.991 ms] 475.855 µs (32.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.464 ms, 1.487 ms] -
appsec 2.343 ms [2.299 ms, 2.387 ms] 866.915 µs (58.7%)
iast 2.135 ms [2.079 ms, 2.192 ms] 659.288 µs (44.7%)
iast_GLOBAL 2.161 ms [2.105 ms, 2.218 ms] 685.563 µs (46.5%)
profiling 1.973 ms [1.929 ms, 2.018 ms] 497.278 µs (33.7%)
tracing 1.958 ms [1.916 ms, 2.001 ms] 482.635 µs (32.7%)
Execution time for biojava
gantt 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, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.496 s [15.496 s, 15.496 s] -
appsec 14.829 s [14.829 s, 14.829 s] -667.0 ms (-4.3%)
iast 18.44 s [18.44 s, 18.44 s] 2.944 s (19.0%)
iast_GLOBAL 17.755 s [17.755 s, 17.755 s] 2.259 s (14.6%)
profiling 15.61 s [15.61 s, 15.61 s] 114.0 ms (0.7%)
tracing 14.951 s [14.951 s, 14.951 s] -545.0 ms (-3.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.256 s [15.256 s, 15.256 s] -
appsec 14.86 s [14.86 s, 14.86 s] -396.0 ms (-2.6%)
iast 18.783 s [18.783 s, 18.783 s] 3.527 s (23.1%)
iast_GLOBAL 18.237 s [18.237 s, 18.237 s] 2.981 s (19.5%)
profiling 14.975 s [14.975 s, 14.975 s] -281.0 ms (-1.8%)
tracing 14.943 s [14.943 s, 14.943 s] -313.0 ms (-2.1%)
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a 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 🙏

@mhlidd mhlidd marked this pull request as ready for review March 14, 2025 19:57
@mhlidd mhlidd requested review from a team as code owners March 14, 2025 19:57
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a 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;
Copy link
Contributor

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.

Copy link
Contributor Author

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.

Copy link
Contributor

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 😉

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a 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;
Copy link
Contributor

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) {
Copy link
Contributor

@amarziali amarziali Mar 18, 2025

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; 
Copy link
Contributor

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 :)

Copy link
Contributor Author

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? 🤔

@mhlidd mhlidd merged commit c67bed5 into master Mar 19, 2025
271 checks passed
@mhlidd mhlidd deleted the mhlidd/tracecontext_propagation_restart branch March 19, 2025 14:48
@github-actions github-actions bot added this to the 1.48.0 milestone Mar 19, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Apr 11, 2025
| 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 ([#&#8203;8687](DataDog/dd-trace-java#8687) - [@&#8203;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 ([#&#8203;8610](DataDog/dd-trace-java#8610) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness in oracle.ucp.util.OpaqueString ([#&#8203;8609](DataDog/dd-trace-java#8609) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Fix weak hash false positive in oracle.security.o5logon.O5Logon ([#&#8203;8608](DataDog/dd-trace-java#8608) - [@&#8203;jandro996](https://github.com/jandro996)) - 🐛 Prevent before callsites targeting constructors in super calls ([#&#8203;8549](DataDog/dd-trace-java#8549) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Application Security Management (WAF) - ✨ Update login events public SDK to V2 ([#&#8203;8620](DataDog/dd-trace-java#8620) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#&#8203;8573](DataDog/dd-trace-java#8573) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Improve detection of missing request end events ([#&#8203;8510](DataDog/dd-trace-java#8510) - [@&#8203;smola](https://github.com/smola)) - 🧹 Remove remote configuration for API Security sampling rate ([#&#8203;8486](DataDog/dd-trace-java#8486) - [@&#8203;smola](https://github.com/smola)) - ✨ Add setUser to user monitoring SDK ([#&#8203;8482](DataDog/dd-trace-java#8482) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add missing address for signup event ([#&#8203;8469](DataDog/dd-trace-java#8469) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Allow login events SDK to be used with appsec disabled ([#&#8203;8464](DataDog/dd-trace-java#8464) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Add support for endpoint discovery in spring mvc ([#&#8203;8352](DataDog/dd-trace-java#8352) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ New API Security sampling algorithm ([#&#8203;8178](DataDog/dd-trace-java#8178) - [@&#8203;ValentinZakharov](https://github.com/ValentinZakharov)) #### Build & Tooling - ✨ Add buffer size customizability to JDK UDS support ([#&#8203;8629](DataDog/dd-trace-java#8629) - [@&#8203;sarahchen6](https://github.com/sarahchen6)) - ✨ Add JDK built-in support for UDS on Java 16+ ([#&#8203;8314](DataDog/dd-trace-java#8314) - [@&#8203;sarahchen6](https://github.com/sarahchen6)) #### Configuration at Runtime - 🐛 Send RASP LFI capability only when AppSec is statically enabled ([#&#8203;8573](DataDog/dd-trace-java#8573) - [@&#8203;jandro996](https://github.com/jandro996)) #### Continuous Integration Visibility - 🐛 Prevent double reporting of Scalatest events when using SBT with test forking ([#&#8203;8682](DataDog/dd-trace-java#8682) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Shutdown CI Visibility test event handlers before tracer ([#&#8203;8677](DataDog/dd-trace-java#8677) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Do not apply JUnit 4 instrumentation to MUnit runners ([#&#8203;8675](DataDog/dd-trace-java#8675), [#&#8203;8683](DataDog/dd-trace-java#8683) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Remove error log when source path resolution fails on isModified check ([#&#8203;8663](DataDog/dd-trace-java#8663) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement tests reordering for JUnit 4 ([#&#8203;8650](DataDog/dd-trace-java#8650) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - 🐛 Set default Attempt to Fix retries if none provided from the backend ([#&#8203;8615](DataDog/dd-trace-java#8615) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Allow to manually set PR info ([#&#8203;8566](DataDog/dd-trace-java#8566) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Test Optimization init when repo root cannot be determined ([#&#8203;8533](DataDog/dd-trace-java#8533) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add capabilities tagging ([#&#8203;8499](DataDog/dd-trace-java#8499), [#&#8203;8540](DataDog/dd-trace-java#8540) - [@&#8203;daniel-mohedano](https://github.com/daniel-mohedano)) #### Crash tracking - 🐛 Remove dependency on bash from crash/oome uploder scripts ([#&#8203;8652](DataDog/dd-trace-java#8652) - [@&#8203;jbachorik](https://github.com/jbachorik)) #### Data Streams Monitoring - ✨ e2e pipeline configuration when data jobs is enabled ([#&#8203;8553](DataDog/dd-trace-java#8553) - [@&#8203;kr-igor](https://github.com/kr-igor)) #### Dynamic Instrumentation - 🐛 Fix In-Product when config is empty ([#&#8203;8679](DataDog/dd-trace-java#8679) - [@&#8203;jpbempel](https://github.com/jpbempel)) - ✨ Add support for filtering shaded third-party libs ([#&#8203;8612](DataDog/dd-trace-java#8612) - [@&#8203;jpbempel](https://github.com/jpbempel)) - ✨ Add In-Product Enablement ([#&#8203;8587](DataDog/dd-trace-java#8587) - [@&#8203;jpbempel](https://github.com/jpbempel)) - ✨⚡ Reduce footprint of SourceFile tracking ([#&#8203;8524](DataDog/dd-trace-java#8524) - [@&#8203;jpbempel](https://github.com/jpbempel)) - ✨⚡ Optimize the SourceFile tracking ([#&#8203;8520](DataDog/dd-trace-java#8520) - [@&#8203;jpbempel](https://github.com/jpbempel)) #### OpenTracing - 🧹 Remove activeScope() use in OpenTracing shim ([#&#8203;8478](DataDog/dd-trace-java#8478) - [@&#8203;mcculls](https://github.com/mcculls)) #### Profiling - ✨ Add profiler env check command to AgentCLI ([#&#8203;8671](DataDog/dd-trace-java#8671) - [@&#8203;jbachorik](https://github.com/jbachorik)) - ✨ Bump ddprof to 1.23.0 ([#&#8203;8668](DataDog/dd-trace-java#8668) - [@&#8203;jbachorik](https://github.com/jbachorik)) - Fix a crash related to ElfParser::loadSymbolTable ([#&#8203;191](DataDog/dd-trace-java#191)) by [@&#8203;yanglong1010](https://github.com/yanglong1010) in DataDog/java-profiler#192 - Unwind String.indexOf intrinsic on AArch64 by [@&#8203;MattAlp](https://github.com/MattAlp) in DataDog/java-profiler#193 - Fix Java 24 support by [@&#8203;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 [@&#8203;jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#199 - 🐛 Remove process information from JFR recording ([#&#8203;8661](DataDog/dd-trace-java#8661) - [@&#8203;r1viollet](https://github.com/r1viollet)) - 🐛 Make TempLocationManager USER aware ([#&#8203;8605](DataDog/dd-trace-java#8605) - [@&#8203;jbachorik](https://github.com/jbachorik)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#&#8203;8561](DataDog/dd-trace-java#8561) - [@&#8203;wmouchere](https://github.com/wmouchere)) #### Telemetry - 🐛 Fix appsec.rasp.error and appsec.waf.error telemetry metrics ([#&#8203;8624](DataDog/dd-trace-java#8624) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Create metric: appsec.rasp.rule.skipped ([#&#8203;8618](DataDog/dd-trace-java#8618) - [@&#8203;jandro996](https://github.com/jandro996)) - ✨ Extract git tags from embedded git.properties and datadog_git.properties ([#&#8203;8561](DataDog/dd-trace-java#8561) - [@&#8203;wmouchere](https://github.com/wmouchere)) #### Testing - 🧹 Simplify ssi tests one-pipeline ([#&#8203;8558](DataDog/dd-trace-java#8558) - [@&#8203;robertomonteromiguel](https://github.com/robertomonteromiguel)) - ✨ Add smoke tests for java's concurrent API ([#&#8203;8438](DataDog/dd-trace-java#8438) - [@&#8203;sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - ✨ Adding Support for `TRACE_PROPAGATION_BEHAVIOR_EXTRACT` ([#&#8203;8535](DataDog/dd-trace-java#8535) - [@&#8203;mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Ensure shaded helpers have unique names ([#&#8203;8559](DataDog/dd-trace-java#8559) - [@&#8203;amarziali](https://github.com/amarziali)) - ✨ Support common config sources for user-provided git info ([#&#8203;8547](DataDog/dd-trace-java#8547) - [@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Make the default config sources more robust when a security manager is installed ([#&#8203;8544](DataDog/dd-trace-java#8544) - [@&#8203;mcculls](https://github.com/mcculls)) - ✨ Support targeting services with configurations in stable configuration file ([#&#8203;8526](DataDog/dd-trace-java#8526) - [@&#8203;mtoffl01](https://github.com/mtoffl01)) - ✨ Add new parser for `DD_TAGS` and prioritizing `DD_SERVICE` ([#&#8203;8296](DataDog/dd-trace-java#8296) - [@&#8203;mhlidd](https://github.com/mhlidd)) #### Tracer internal logging - 🐛 Add missing debug log for the cloudPayloadTaggingServices config ([#&#8203;8600](DataDog/dd-trace-java#8600) - [@&#8203;ygree](https://github.com/ygree)) - ✨ Add the possibility to output the logs of the Java tracer in JSON ([#&#8203;8083](DataDog/dd-trace-java#8083) - [@&#8203;cecile75](https://github.com/cecile75)) #### Tracer public API - ✨ Introducing `DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED` Config ([#&#8203;8536](DataDog/dd-trace-java#8536) - [@&#8203;mhlidd](https://github.com/mhlidd)) - ✨ Config Consistency Round 2 ([#&#8203;8489](DataDog/dd-trace-java#8489) - [@&#8203;mhlidd](https://github.com/mhlidd)) ### Instrumentations #### - 🐛 Fix NPE in getMdcCopy of LoggingEventInstrumentation ([#&#8203;8599](DataDog/dd-trace-java#8599) - [@&#8203;ygree](https://github.com/ygree)) #### Apache Spark instrumentation - ✨ Instrument Runtime.exit() to finish spark application spans ([#&#8203;8572](DataDog/dd-trace-java#8572) - [@&#8203;paul-laffon-dd](https://github.com/paul-laffon-dd)) - ✨ Configure OpenLineage if present in Spark instrumentation ([#&#8203;8541](DataDog/dd-trace-java#8541) - [@&#8203;mobuchowski](https://github.com/mobuchowski)) #### Armeria Instrumentation - ✨ Support armeria grpc 1.32.3 ([#&#8203;8606](DataDog/dd-trace-java#8606) - [@&#8203;github-actions](https://github.com/github-actions)\[bot]) #### AWS DynamoDB Instrumentation - ✨ Create DynamoDB instrumentation + add span pointers for `updateItem` and `deleteItem` ([#&#8203;8490](DataDog/dd-trace-java#8490) - [@&#8203;nhulston](https://github.com/nhulston)) #### AWS SDK instrumentation - ✨ Add DynamoDB in DEFAULT_TRACE_CLOUD_PAYLOAD_TAGGING_SERVICES ([#&#8203;8595](DataDog/dd-trace-java#8595) - [@&#8203;joeyzhao2018](https://github.com/joeyzhao2018)) #### Azure Functions instrumentation - ✨ Enable tracer computed trace metrics by default for Azure Functions ([#&#8203;8518](DataDog/dd-trace-java#8518) - [@&#8203;duncanpharvey](https://github.com/duncanpharvey)) - 💡 Add azure-functions instrumentation ([#&#8203;8432](DataDog/dd-trace-java#8432) - [@&#8203;duncanpharvey](https://github.com/duncanpharvey)) #### Core Java language instrumentation - 🐛 Fix ForkJoinPool.execute() instrumentation on Java 21+ ([#&#8203;8560](DataDog/dd-trace-java#8560) - [@&#8203;PerfectSlayer](https://github.com/PerfectSlayer)) #### Eclipse Vert.x instrumentation - ✨ Add vertx postgresql client instrumentation ([#&#8203;8471](DataDog/dd-trace-java#8471) - [@&#8203;vandonr](https://github.com/vandonr) - thanks for the contribution!) #### Kafka instrumentation - ✨ Support and test kafka-clients 4 ([#&#8203;8581](DataDog/dd-trace-java#8581) - [@&#8203;amarziali](https://github.com/amarziali)) #### Kotlin instrumentation - ✨ Avoid disconnected traces when using Kotlin flowOn ([#&#8203;8651](DataDog/dd-trace-java#8651) - [@&#8203;mcculls](https://github.com/mcculls)) #### OpenTelemetry instrumentation - 🧹 Migrate OtelContext wrapper to new internal Context API ([#&#8203;8645](DataDog/dd-trace-java#8645) - [@&#8203;mcculls](https://github.com/mcculls)) #### Spring instrumentation - 🐛 Support CompletableFuture on spring webmvc controllers ([#&#8203;8659](DataDog/dd-trace-java#8659) - [@&#8203;amarziali](https://github.com/amarziali)) - ✨ Add support for endpoint discovery in spring mvc ([#&#8203;8352](DataDog/dd-trace-java#8352) - [@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### WebSocket Instrumentation - ✨ Instrument Jetty websocket pojo ([#&#8203;8562](DataDog/dd-trace-java#8562) - [@&#8203;amarziali](https://github.com/amarziali)) - 💡 Instrument Java Websocket API (JSR356) ([#&#8203;8440](DataDog/dd-trace-java#8440) - [@&#8203;amarziali](https://github.com/amarziali)) #### All other instrumentations - ✨ Introduce cache for peer.hostname lookup ([#&#8203;8601](DataDog/dd-trace-java#8601) - [@&#8203;mcculls](https://github.com/mcculls)) - ✨ Support pekko http 1.1 ([#&#8203;8532](DataDog/dd-trace-java#8532) - [@&#8203;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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: context propagation Trace context propagation type: enhancement Enhancements and improvements

3 participants