-
Notifications
You must be signed in to change notification settings - Fork 293
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
Implementation of BaggagePropagator and BaggageContext #8330
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 65 metrics, 6 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.137 s) : 0, 1136569
Total [baseline] (9.293 s) : 0, 9292707
Agent [candidate] (1.137 s) : 0, 1136635
Total [candidate] (9.312 s) : 0, 9311789
section iast
Agent [baseline] (1.258 s) : 0, 1257960
Total [baseline] (9.856 s) : 0, 9856233
Agent [candidate] (1.259 s) : 0, 1258699
Total [candidate] (9.917 s) : 0, 9916697
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.263 s) : 0, 1262604
Total [baseline] (9.894 s) : 0, 9894317
Agent [candidate] (1.274 s) : 0, 1274500
Total [candidate] (9.913 s) : 0, 9913377
section iast_TELEMETRY_OFF
Agent [baseline] (1.262 s) : 0, 1261516
Total [baseline] (9.921 s) : 0, 9920595
Agent [candidate] (1.259 s) : 0, 1259343
Total [candidate] (9.925 s) : 0, 9925068
gantt
title insecure-bank - break down per module: candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (718.404 ms) : 0, 718404
BytebuddyAgent [candidate] (717.202 ms) : 0, 717202
GlobalTracer [baseline] (239.377 ms) : 0, 239377
GlobalTracer [candidate] (240.205 ms) : 0, 240205
AppSec [baseline] (55.505 ms) : 0, 55505
AppSec [candidate] (55.724 ms) : 0, 55724
Debugger [baseline] (95.258 ms) : 0, 95258
Debugger [candidate] (95.357 ms) : 0, 95357
Remote Config [baseline] (590.035 µs) : 0, 590
Remote Config [candidate] (605.61 µs) : 0, 606
Telemetry [baseline] (12.37 ms) : 0, 12370
Telemetry [candidate] (12.521 ms) : 0, 12521
section iast
BytebuddyAgent [baseline] (836.251 ms) : 0, 836251
BytebuddyAgent [candidate] (835.66 ms) : 0, 835660
GlobalTracer [baseline] (230.057 ms) : 0, 230057
GlobalTracer [candidate] (230.854 ms) : 0, 230854
IAST [baseline] (22.775 ms) : 0, 22775
IAST [candidate] (22.545 ms) : 0, 22545
AppSec [baseline] (57.249 ms) : 0, 57249
AppSec [candidate] (57.115 ms) : 0, 57115
Debugger [baseline] (83.902 ms) : 0, 83902
Debugger [candidate] (83.309 ms) : 0, 83309
Remote Config [baseline] (540.733 µs) : 0, 541
Remote Config [candidate] (522.78 µs) : 0, 523
Telemetry [baseline] (12.132 ms) : 0, 12132
Telemetry [candidate] (13.681 ms) : 0, 13681
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (840.331 ms) : 0, 840331
BytebuddyAgent [candidate] (846.97 ms) : 0, 846970
GlobalTracer [baseline] (229.966 ms) : 0, 229966
GlobalTracer [candidate] (232.911 ms) : 0, 232911
IAST [baseline] (22.963 ms) : 0, 22963
IAST [candidate] (23.177 ms) : 0, 23177
AppSec [baseline] (57.478 ms) : 0, 57478
AppSec [candidate] (57.747 ms) : 0, 57747
Debugger [baseline] (83.889 ms) : 0, 83889
Debugger [candidate] (84.21 ms) : 0, 84210
Remote Config [baseline] (515.796 µs) : 0, 516
Remote Config [candidate] (527.323 µs) : 0, 527
Telemetry [baseline] (12.288 ms) : 0, 12288
Telemetry [candidate] (13.673 ms) : 0, 13673
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (838.486 ms) : 0, 838486
BytebuddyAgent [candidate] (836.041 ms) : 0, 836041
GlobalTracer [baseline] (230.639 ms) : 0, 230639
GlobalTracer [candidate] (231.667 ms) : 0, 231667
IAST [baseline] (23.507 ms) : 0, 23507
IAST [candidate] (23.411 ms) : 0, 23411
AppSec [baseline] (56.778 ms) : 0, 56778
AppSec [candidate] (56.621 ms) : 0, 56621
Debugger [baseline] (84.328 ms) : 0, 84328
Debugger [candidate] (83.882 ms) : 0, 83882
Remote Config [baseline] (516.977 µs) : 0, 517
Remote Config [candidate] (524.743 µs) : 0, 525
Telemetry [baseline] (12.182 ms) : 0, 12182
Telemetry [candidate] (12.175 ms) : 0, 12175
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.131 s) : 0, 1130749
Total [baseline] (11.47 s) : 0, 11470415
Agent [candidate] (1.139 s) : 0, 1138958
Total [candidate] (11.492 s) : 0, 11491899
section appsec
Agent [baseline] (1.275 s) : 0, 1275132
Total [baseline] (11.709 s) : 0, 11708603
Agent [candidate] (1.275 s) : 0, 1275314
Total [candidate] (11.69 s) : 0, 11690498
section iast
Agent [baseline] (1.261 s) : 0, 1261151
Total [baseline] (11.95 s) : 0, 11950127
Agent [candidate] (1.261 s) : 0, 1261427
Total [candidate] (11.975 s) : 0, 11974589
section profiling
Agent [baseline] (1.394 s) : 0, 1394246
Total [baseline] (11.858 s) : 0, 11858170
Agent [candidate] (1.382 s) : 0, 1382288
Total [candidate] (11.86 s) : 0, 11860250
gantt
title petclinic - break down per module: candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (714.694 ms) : 0, 714694
BytebuddyAgent [candidate] (718.028 ms) : 0, 718028
GlobalTracer [baseline] (238.204 ms) : 0, 238204
GlobalTracer [candidate] (241.124 ms) : 0, 241124
AppSec [baseline] (55.274 ms) : 0, 55274
AppSec [candidate] (56.115 ms) : 0, 56115
Debugger [baseline] (94.655 ms) : 0, 94655
Debugger [candidate] (95.564 ms) : 0, 95564
Remote Config [baseline] (595.699 µs) : 0, 596
Remote Config [candidate] (588.694 µs) : 0, 589
Telemetry [baseline] (12.32 ms) : 0, 12320
Telemetry [candidate] (12.427 ms) : 0, 12427
section appsec
BytebuddyAgent [baseline] (737.272 ms) : 0, 737272
BytebuddyAgent [candidate] (737.057 ms) : 0, 737057
GlobalTracer [baseline] (236.805 ms) : 0, 236805
GlobalTracer [candidate] (237.129 ms) : 0, 237129
AppSec [baseline] (177.969 ms) : 0, 177969
AppSec [candidate] (177.959 ms) : 0, 177959
Debugger [baseline] (84.143 ms) : 0, 84143
Debugger [candidate] (84.361 ms) : 0, 84361
Remote Config [baseline] (632.234 µs) : 0, 632
Remote Config [candidate] (622.444 µs) : 0, 622
Telemetry [baseline] (12.479 ms) : 0, 12479
Telemetry [candidate] (12.322 ms) : 0, 12322
IAST [baseline] (21.544 ms) : 0, 21544
IAST [candidate] (21.602 ms) : 0, 21602
section iast
BytebuddyAgent [baseline] (838.452 ms) : 0, 838452
BytebuddyAgent [candidate] (836.132 ms) : 0, 836132
GlobalTracer [baseline] (230.447 ms) : 0, 230447
GlobalTracer [candidate] (230.932 ms) : 0, 230932
AppSec [baseline] (57.658 ms) : 0, 57658
AppSec [candidate] (57.434 ms) : 0, 57434
Debugger [baseline] (83.809 ms) : 0, 83809
Debugger [candidate] (83.278 ms) : 0, 83278
Remote Config [baseline] (517.127 µs) : 0, 517
Remote Config [candidate] (519.401 µs) : 0, 519
Telemetry [baseline] (12.242 ms) : 0, 12242
Telemetry [candidate] (15.082 ms) : 0, 15082
IAST [baseline] (22.95 ms) : 0, 22950
IAST [candidate] (23.014 ms) : 0, 23014
section profiling
BytebuddyAgent [baseline] (718.184 ms) : 0, 718184
BytebuddyAgent [candidate] (710.109 ms) : 0, 710109
GlobalTracer [baseline] (351.974 ms) : 0, 351974
GlobalTracer [candidate] (351.393 ms) : 0, 351393
AppSec [baseline] (55.976 ms) : 0, 55976
AppSec [candidate] (54.415 ms) : 0, 54415
Debugger [baseline] (88.879 ms) : 0, 88879
Debugger [candidate] (88.749 ms) : 0, 88749
Remote Config [baseline] (612.816 µs) : 0, 613
Remote Config [candidate] (614.858 µs) : 0, 615
Telemetry [baseline] (12.628 ms) : 0, 12628
Telemetry [candidate] (12.559 ms) : 0, 12559
ProfilingAgent [baseline] (125.061 ms) : 0, 125061
ProfilingAgent [candidate] (124.049 ms) : 0, 124049
Profiling [baseline] (125.082 ms) : 0, 125082
Profiling [candidate] (124.07 ms) : 0, 124070
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 14 metrics, 16 unstable metrics. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section baseline
no_agent (390.833 µs) : 371, 410
. : milestone, 391,
iast (515.22 µs) : 493, 537
. : milestone, 515,
iast_FULL (739.647 µs) : 717, 762
. : milestone, 740,
iast_GLOBAL (566.578 µs) : 544, 589
. : milestone, 567,
iast_HARDCODED_SECRET_DISABLED (524.864 µs) : 503, 547
. : milestone, 525,
iast_INACTIVE (468.85 µs) : 447, 490
. : milestone, 469,
iast_TELEMETRY_OFF (510.221 µs) : 488, 532
. : milestone, 510,
tracing (469.398 µs) : 448, 491
. : milestone, 469,
section candidate
no_agent (384.564 µs) : 364, 405
. : milestone, 385,
iast (519.744 µs) : 498, 542
. : milestone, 520,
iast_FULL (736.085 µs) : 714, 758
. : milestone, 736,
iast_GLOBAL (564.579 µs) : 543, 586
. : milestone, 565,
iast_HARDCODED_SECRET_DISABLED (521.863 µs) : 500, 544
. : milestone, 522,
iast_INACTIVE (471.683 µs) : 450, 493
. : milestone, 472,
iast_TELEMETRY_OFF (517.182 µs) : 494, 540
. : milestone, 517,
tracing (466.364 µs) : 445, 487
. : milestone, 466,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section baseline
no_agent (1.377 ms) : 1358, 1397
. : milestone, 1377,
appsec (1.736 ms) : 1713, 1759
. : milestone, 1736,
appsec_no_iast (1.731 ms) : 1708, 1755
. : milestone, 1731,
code_origins (1.689 ms) : 1657, 1722
. : milestone, 1689,
iast (1.519 ms) : 1494, 1544
. : milestone, 1519,
profiling (1.523 ms) : 1499, 1548
. : milestone, 1523,
tracing (1.517 ms) : 1494, 1541
. : milestone, 1517,
section candidate
no_agent (1.376 ms) : 1357, 1395
. : milestone, 1376,
appsec (1.75 ms) : 1727, 1774
. : milestone, 1750,
appsec_no_iast (1.745 ms) : 1720, 1770
. : milestone, 1745,
code_origins (1.709 ms) : 1677, 1741
. : milestone, 1709,
iast (1.54 ms) : 1515, 1565
. : milestone, 1540,
profiling (1.58 ms) : 1555, 1606
. : milestone, 1580,
tracing (1.503 ms) : 1479, 1526
. : milestone, 1503,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section baseline
no_agent (15.295 s) : 15295000, 15295000
. : milestone, 15295000,
appsec (15.072 s) : 15072000, 15072000
. : milestone, 15072000,
iast (18.813 s) : 18813000, 18813000
. : milestone, 18813000,
iast_GLOBAL (17.712 s) : 17712000, 17712000
. : milestone, 17712000,
profiling (15.131 s) : 15131000, 15131000
. : milestone, 15131000,
tracing (15.111 s) : 15111000, 15111000
. : milestone, 15111000,
section candidate
no_agent (14.923 s) : 14923000, 14923000
. : milestone, 14923000,
appsec (14.822 s) : 14822000, 14822000
. : milestone, 14822000,
iast (18.92 s) : 18920000, 18920000
. : milestone, 18920000,
iast_GLOBAL (18.226 s) : 18226000, 18226000
. : milestone, 18226000,
profiling (15.051 s) : 15051000, 15051000
. : milestone, 15051000,
tracing (14.84 s) : 14840000, 14840000
. : milestone, 14840000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.47.0-SNAPSHOT~c4f6d7d603, baseline=1.47.0-SNAPSHOT~31fb383838
dateFormat X
axisFormat %s
section baseline
no_agent (1.47 ms) : 1458, 1481
. : milestone, 1470,
appsec (2.337 ms) : 2293, 2380
. : milestone, 2337,
iast (2.098 ms) : 2043, 2153
. : milestone, 2098,
iast_GLOBAL (2.162 ms) : 2106, 2218
. : milestone, 2162,
profiling (1.959 ms) : 1915, 2002
. : milestone, 1959,
tracing (1.937 ms) : 1895, 1979
. : milestone, 1937,
section candidate
no_agent (1.466 ms) : 1455, 1478
. : milestone, 1466,
appsec (2.33 ms) : 2286, 2374
. : milestone, 2330,
iast (2.113 ms) : 2058, 2168
. : milestone, 2113,
iast_GLOBAL (2.153 ms) : 2098, 2209
. : milestone, 2153,
profiling (2.457 ms) : 2270, 2645
. : milestone, 2457,
tracing (1.939 ms) : 1897, 1981
. : milestone, 1939,
|
dd-trace-core/src/main/java/datadog/trace/core/propagation/BaggageHttpCodec.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/propagation/BaggageHttpCodec.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/propagation/BaggageHttpCodec.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/propagation/BaggageHttpCodec.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/propagation/BaggageHttpCodec.java
Outdated
Show resolved
Hide resolved
c9b2cc5
to
bdb7932
Compare
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
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.
That looks good! 👍
I left a bunch of comments but nothing to worry about.
I still have two concerns though:
- It's missing cache since you have a dedicated
BaggageContext
object. Do you plan to implement it later? - About config, I would create dedicated method for Baggage (is propagated, is injected, is extracted) and
remove Bagagge from the(that would mess with config telemetry) You would have to skip the baggage style fromTracePropagationStyles
to not mess with theHttpCodec
which is dedicated to the tracing propagation and I would rather add workaround on the config parsing side rather than the Tracing headers thingsHttpCodec.createExtractor()
then.
dd-trace-api/src/main/java/datadog/trace/api/TracePropagationStyle.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/baggage/BaggagePropagatorTest.groovy
Show resolved
Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/baggage/BaggagePropagatorTest.groovy
Show resolved
Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/baggage/BaggagePropagatorTest.groovy
Show resolved
Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/baggage/BaggagePropagatorTest.groovy
Outdated
Show resolved
Hide resolved
dd-trace-core/src/test/groovy/datadog/trace/core/baggage/BaggagePropagatorTest.groovy
Outdated
Show resolved
Hide resolved
I'm thinking that this can be added as a follow-up PR so we can focus on functionality first. WDYT?
This sounds good to me. I can make a change to ignore baggage when creating extractors/injectors! |
If it is enabled by default (ie Baggage is part of the default propagation style, or customers are already aware about this config), you might introduce performance overhead as the propagator will be effective. If it's not, it might be okay to leave it as it for the next release (that left few weeks to get the cache merged 😉 ) |
rebasing
rebasing
dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.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.
The only addition I had to Bruce's comments was around using Character.toString(c).getBytes(StandardCharsets.UTF_8)
to get the encoded bytes which seems wasteful, given all that information is already in c
} | ||
|
||
public boolean[] getUnsafeKeyOctets() { | ||
return unsafeKeyOctets; |
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.
} | ||
|
||
public boolean[] getUnsafeValOctets() { | ||
return unsafeValOctets; |
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.
dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.java
Outdated
Show resolved
Hide resolved
dd-trace-core/src/main/java/datadog/trace/core/baggage/BaggagePropagator.java
Outdated
Show resolved
Hide resolved
internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/BaggageContext.java
Show resolved
Hide resolved
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.46.1` -> `1.47.0` | | [com.datadoghq:dd-trace-ot](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.46.1` -> `1.47.0` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.30.33` -> `2.30.34` | --- ### Release Notes <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.47.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.47.0): 1.47.0 ##### Components ##### Application Security Management (IAST) - 🐛 Exclude com.stripe.net.HttpURLConnectionClient to solve IAST SSRF vulnerability false positives ([#​8483](DataDog/dd-trace-java#8483) - [@​jandro996](https://github.com/jandro996)) - 🐛 Add exclusion to solve IAST weak randomness vulnerability false positives ([#​8462](DataDog/dd-trace-java#8462) - [@​jandro996](https://github.com/jandro996)) - ✨ Fix weak randomness false positive in Kafka client ([#​8408](DataDog/dd-trace-java#8408) - [@​smola](https://github.com/smola)) - ✨ Fix location for SSRF with Kong Unirest ([#​8407](DataDog/dd-trace-java#8407) - [@​smola](https://github.com/smola)) - ✨ Exclude IBM Instana from IAST ([#​8406](DataDog/dd-trace-java#8406) - [@​smola](https://github.com/smola)) - 🐛 Fix org.json iast instrumentation test for latest dependency ([#​8347](DataDog/dd-trace-java#8347) - [@​jandro996](https://github.com/jandro996)) - ✨ Configuration to Disable APM Tracing ([#​8219](DataDog/dd-trace-java#8219) - [@​jandro996](https://github.com/jandro996)) - ✨ Address cookie vulnerability cardinality issues ([#​8210](DataDog/dd-trace-java#8210) - [@​jandro996](https://github.com/jandro996)) - ✨ Email HTML Injection detection in IAST ([#​8205](DataDog/dd-trace-java#8205) - [@​sezen-datadog](https://github.com/sezen-datadog)) ##### Application Security Management (WAF) - 🐛✨ Ensure usr.exists tag is not overridden when UsernameNotFoundException is thrown ([#​8376](DataDog/dd-trace-java#8376) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛✨ Ensure usr.exists tag is not overridden by auto instrumentation ([#​8374](DataDog/dd-trace-java#8374) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Update appsec metrics with event_rules_version tag ([#​8354](DataDog/dd-trace-java#8354) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Update metrics: appsec.waf.requests ([#​8353](DataDog/dd-trace-java#8353) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Improve ASM support in vert.x 5.0 ([#​8285](DataDog/dd-trace-java#8285) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Update metrics: appsec.waf.updates and appsec.waf.init ([#​8280](DataDog/dd-trace-java#8280) - [@​Mariovido](https://github.com/Mariovido)) - ✨ Configuration to Disable APM Tracing ([#​8219](DataDog/dd-trace-java#8219) - [@​jandro996](https://github.com/jandro996)) ##### Build & Tooling - 🐛 Do not generate Muzzle references for primitive arrays in method body ([#​8361](DataDog/dd-trace-java#8361) - [@​amarziali](https://github.com/amarziali)) - 📖 Improve dev env setup documentation for Windows ([#​8180](DataDog/dd-trace-java#8180) - [@​lucaspimentel](https://github.com/lucaspimentel)) ##### Continuous Integration Visibility - ✨ Add support for skip-EFD tagging ([#​8487](DataDog/dd-trace-java#8487) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix an NPE in Gradle Android instrumentation ([#​8484](DataDog/dd-trace-java#8484) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Consider modified tests when applying fail-fast tests ordering ([#​8474](DataDog/dd-trace-java#8474) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement tests reordering for TestNG ([#​8467](DataDog/dd-trace-java#8467) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Gradle Launcher instrumentation to not interfere with Gradle Test Kit ([#​8465](DataDog/dd-trace-java#8465) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🧹 Use separate TestEventHandlers per framework in CI Vis instrumentations ([#​8451](DataDog/dd-trace-java#8451) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Remove warning log when JUnit 4 test method cannot be retrieved ([#​8445](DataDog/dd-trace-java#8445) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - 🐛 Fix Scalatest tracing for tests that are reported asynchronously ([#​8444](DataDog/dd-trace-java#8444) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement attempt to fix tests ([#​8393](DataDog/dd-trace-java#8393) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement test disabling ([#​8377](DataDog/dd-trace-java#8377) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Update CODEOWNERS parser to not log errors on comments with leading whitespace ([#​8349](DataDog/dd-trace-java#8349) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Request Test Management tests list ([#​8345](DataDog/dd-trace-java#8345) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Receive test management settings from CIVis settings request ([#​8331](DataDog/dd-trace-java#8331) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Implement quarantined tests tagging ([#​8326](DataDog/dd-trace-java#8326) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Implement tests quarantining ([#​8320](DataDog/dd-trace-java#8320) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add tag to specify if the user is setting DD_SERVICE ([#​8318](DataDog/dd-trace-java#8318) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) ##### Crash tracking - ✨ Only fork jps when required ([#​8419](DataDog/dd-trace-java#8419) - [@​mcculls](https://github.com/mcculls)) - 🐛 Use Java home of the crashed process to launch crash uploader ([#​8348](DataDog/dd-trace-java#8348) - [@​jbachorik](https://github.com/jbachorik)) ##### Data Streams Monitoring - 🐛 Fix error happening when sqs message attributes are readonly ([#​8473](DataDog/dd-trace-java#8473) - [@​vandonr](https://github.com/vandonr)) - 🐛 Fix bug on proto schema extraction ([#​8403](DataDog/dd-trace-java#8403) - [@​vandonr](https://github.com/vandonr)) - 🐛 Fix service name overrides in consumers ([#​8387](DataDog/dd-trace-java#8387) - [@​piochelepiotr](https://github.com/piochelepiotr)) ##### Database Monitoring - ✨ Add DBMTracePreparedStatements to tracer configuration log ([#​8508](DataDog/dd-trace-java#8508) - [@​cecile75](https://github.com/cecile75)) ##### Dynamic Instrumentation - ✨ Look in another location for grpc service methods ([#​8468](DataDog/dd-trace-java#8468) - [@​evanchooly](https://github.com/evanchooly)) - 🐛 Fix Exception Replay with Lambda proxy classes ([#​8452](DataDog/dd-trace-java#8452) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add code origin support for spring-webmvc ([#​8416](DataDog/dd-trace-java#8416) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Add support for scanning jar from loaded class ([#​8370](DataDog/dd-trace-java#8370) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Disable capture of entry values ([#​8369](DataDog/dd-trace-java#8369) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Fix CodeOrigin for `@Trace` annotation ([#​8344](DataDog/dd-trace-java#8344) - [@​jpbempel](https://github.com/jpbempel)) - 🐛 Fix equals/hashCode for CodeOrigin probe ([#​8319](DataDog/dd-trace-java#8319) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add code origin support to kafka message listeners ([#​8301](DataDog/dd-trace-java#8301) - [@​evanchooly](https://github.com/evanchooly)) ##### Metrics - ✨ Create metric: appsec.waf.error ([#​8381](DataDog/dd-trace-java#8381) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Create metric: appsec.rasp.error ([#​8364](DataDog/dd-trace-java#8364) - [@​sezen-datadog](https://github.com/sezen-datadog)) ##### Profiling - ✨ Bump ddprof library to 1.22.0 ([#​8463](DataDog/dd-trace-java#8463) - [@​jbachorik](https://github.com/jbachorik)) - IBM J9 8u361 corresponds to OpenJDK 8u362 by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#187 - Fix compatibility with musl libc 1.2.4 by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#189 - Modify version extraction by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#179 - Do not write null values to jvminfo event by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#184 - Productize VMStructs-based stack walker by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#177 - A few minor downport issues by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#180 - Enable ASGCT by default on fairly safe J9 JDK versions by [@​jbachorik](https://github.com/jbachorik) in DataDog/java-profiler#181 - 🐛 Exclude OrderedThreadPoolExecutor from queue-time measurements ([#​8456](DataDog/dd-trace-java#8456) - [@​jbachorik](https://github.com/jbachorik)) - ✨ Record JVM info on JVMs without JFR ([#​8431](DataDog/dd-trace-java#8431) - [@​jbachorik](https://github.com/jbachorik)) - 🐛 Actually use CleanupTask in TempLocationManager ([#​8420](DataDog/dd-trace-java#8420) - [@​mcculls](https://github.com/mcculls)) - ✨ Only fork jps when required ([#​8419](DataDog/dd-trace-java#8419) - [@​mcculls](https://github.com/mcculls)) - 🐛 Adjust JFR checks for J9 ([#​8405](DataDog/dd-trace-java#8405) - [@​jbachorik](https://github.com/jbachorik)) - 🧹 Disable smap RSS parsing by default ([#​8342](DataDog/dd-trace-java#8342) - [@​MattAlp](https://github.com/MattAlp)) ##### Telemetry - 🐛 Add support for JBoss jar:file format to DependencyResolver ([#​8428](DataDog/dd-trace-java#8428) - [@​jandro996](https://github.com/jandro996)) - ✨ Update metrics: appsec.waf.requests ([#​8353](DataDog/dd-trace-java#8353) - [@​Mariovido](https://github.com/Mariovido)) ##### Trace context propagation - ✨ Introduce tracing propagator ([#​8313](DataDog/dd-trace-java#8313) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Tracer core - 🐛 Fix Stable Config telemetry source names ([#​8460](DataDog/dd-trace-java#8460) - [@​BaptisteFoy](https://github.com/BaptisteFoy)) - ✨ Probe trace endpoints with a valid payload of empty arrays ([#​8414](DataDog/dd-trace-java#8414) - [@​mcculls](https://github.com/mcculls)) - ✨ Add 1 minute fail-safe to JUL/JMX class-loading callback ([#​8399](DataDog/dd-trace-java#8399) - [@​mcculls](https://github.com/mcculls)) - ✨ Migrate DSM injection calls to context-first APIs ([#​8383](DataDog/dd-trace-java#8383) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - 🧹 Move continuation capture methods from scope to tracer ([#​8371](DataDog/dd-trace-java#8371) - [@​mcculls](https://github.com/mcculls)) - ✨ Migrate context extraction calls to context-first APIs ([#​8368](DataDog/dd-trace-java#8368) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - 🧹 Migrate context injection calls to context-first APIs ([#​8358](DataDog/dd-trace-java#8358) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - 💡 Support reading configurations from files ([#​8338](DataDog/dd-trace-java#8338) - [@​mtoffl01](https://github.com/mtoffl01)) - 💡 Implementation of BaggagePropagator and BaggageContext ([#​8330](DataDog/dd-trace-java#8330) - [@​mhlidd](https://github.com/mhlidd)) - 🧹 Combine continuation implementations into one which supports multiple activations ([#​8324](DataDog/dd-trace-java#8324) - [@​mcculls](https://github.com/mcculls)) - ✨ Introduce tracing propagator ([#​8313](DataDog/dd-trace-java#8313) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Remove old context propagation API ([#​8271](DataDog/dd-trace-java#8271) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) ##### Instrumentations ##### AWS Lambda instrumentation - 🐛 Send error message and stack to Lambda extension ([#​8417](DataDog/dd-trace-java#8417) - [@​nhulston](https://github.com/nhulston)) ##### AWS SDK instrumentation - 🐛 Fix error happening when sqs message attributes are readonly ([#​8473](DataDog/dd-trace-java#8473) - [@​vandonr](https://github.com/vandonr)) - 💡 Inject trace context into AWS Step Functions input ([#​7585](DataDog/dd-trace-java#7585) - [@​DylanLovesCoffee](https://github.com/DylanLovesCoffee)) ##### Core Java language instrumentation - ✨ Look in another location for grpc service methods ([#​8468](DataDog/dd-trace-java#8468) - [@​evanchooly](https://github.com/evanchooly)) - ✨ Add code origin support for spring-webmvc ([#​8416](DataDog/dd-trace-java#8416) - [@​evanchooly](https://github.com/evanchooly)) - 💡 Implementation of BaggagePropagator and BaggageContext ([#​8330](DataDog/dd-trace-java#8330) - [@​mhlidd](https://github.com/mhlidd)) - ✨ Add code origin support to kafka message listeners ([#​8301](DataDog/dd-trace-java#8301) - [@​evanchooly](https://github.com/evanchooly)) ##### gRPC instrumentation - ✨ Look in another location for grpc service methods ([#​8468](DataDog/dd-trace-java#8468) - [@​evanchooly](https://github.com/evanchooly)) ##### Kafka instrumentation - ✨ Add messaging.destination.name tag to kafka integrations ([#​8366](DataDog/dd-trace-java#8366) - [@​rarguelloF](https://github.com/rarguelloF)) ##### Protocol Buffer instrumentation - 🐛 Fix bug on proto schema extraction ([#​8403](DataDog/dd-trace-java#8403) - [@​vandonr](https://github.com/vandonr)) </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: 108a0f86aa59ab4c938cbac0688dd4c19cb301fa
What Does This Do
Implement Baggage support and decoupling Baggage propagation from tracecontext propagation by using the Context API. Introduces two new Configs:
TRACE_BAGGAGE_MAX_ITEMS
andTRACE_BAGGAGE_MAX_BYTES
, baggage specific encoding and decoding, and unit testing for functionality of both injection and extraction.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: [PROJ-IDENT]