Skip to content
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

Merged
merged 34 commits into from
Mar 3, 2025

Conversation

mhlidd
Copy link
Contributor

@mhlidd mhlidd commented Feb 3, 2025

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 and TRACE_BAGGAGE_MAX_BYTES, baggage specific encoding and decoding, and unit testing for functionality of both injection and extraction.

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@mhlidd mhlidd added the tag: do not merge Do not merge changes label Feb 3, 2025
@mhlidd mhlidd changed the title initial implementation and unit tests for inject/extract [WIP] initial implementation and unit tests for inject/extract Feb 3, 2025
@pr-commenter
Copy link

pr-commenter bot commented Feb 3, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mhlidd/otel_baggage_extract/inject
git_commit_date 1741018276 1741020973
git_commit_sha 31fb383 c4f6d7d
release_version 1.47.0-SNAPSHOT~31fb383838 1.47.0-SNAPSHOT~c4f6d7d603
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741023565 1741023565
ci_job_id 830227550 830227550
ci_pipeline_id 57532584 57532584
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-8ksbllmc-project-304-concurrent-0-6og0uren 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-8ksbllmc-project-304-concurrent-0-6og0uren 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 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 65 metrics, 6 unstable metrics.

Startup time reports for insecure-bank
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.137 s -
Agent iast 1.258 s 121.391 ms (10.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.263 s 126.035 ms (11.1%)
Agent iast_TELEMETRY_OFF 1.262 s 124.947 ms (11.0%)
Total tracing 9.293 s -
Total iast 9.856 s 563.526 ms (6.1%)
Total iast_HARDCODED_SECRET_DISABLED 9.894 s 601.61 ms (6.5%)
Total iast_TELEMETRY_OFF 9.921 s 627.888 ms (6.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.137 s -
Agent iast 1.259 s 122.064 ms (10.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.274 s 137.865 ms (12.1%)
Agent iast_TELEMETRY_OFF 1.259 s 122.708 ms (10.8%)
Total tracing 9.312 s -
Total iast 9.917 s 604.908 ms (6.5%)
Total iast_HARDCODED_SECRET_DISABLED 9.913 s 601.587 ms (6.5%)
Total iast_TELEMETRY_OFF 9.925 s 613.279 ms (6.6%)
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
Loading
Startup time reports for petclinic
gantt
    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
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.131 s -
Agent appsec 1.275 s 144.384 ms (12.8%)
Agent iast 1.261 s 130.402 ms (11.5%)
Agent profiling 1.394 s 263.497 ms (23.3%)
Total tracing 11.47 s -
Total appsec 11.709 s 238.188 ms (2.1%)
Total iast 11.95 s 479.711 ms (4.2%)
Total profiling 11.858 s 387.755 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.139 s -
Agent appsec 1.275 s 136.356 ms (12.0%)
Agent iast 1.261 s 122.469 ms (10.8%)
Agent profiling 1.382 s 243.33 ms (21.4%)
Total tracing 11.492 s -
Total appsec 11.69 s 198.599 ms (1.7%)
Total iast 11.975 s 482.69 ms (4.2%)
Total profiling 11.86 s 368.351 ms (3.2%)
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
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-03T17:07:20 2025-03-03T17:15:17
git_branch master mhlidd/otel_baggage_extract/inject
git_commit_date 1741018276 1741020973
git_commit_sha 31fb383 c4f6d7d
release_version 1.47.0-SNAPSHOT~31fb383838 1.47.0-SNAPSHOT~c4f6d7d603
start_time 2025-03-03T17:07:06 2025-03-03T17:15:03
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1741022528 1741022528
ci_job_id 830227552 830227552
ci_pipeline_id 57532584 57532584
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-8ksbllmc-project-304-concurrent-1-58e1u24l 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-8ksbllmc-project-304-concurrent-1-58e1u24l 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 390.833 µs [371.345 µs, 410.32 µs] -
iast 515.22 µs [493.398 µs, 537.042 µs] 124.387 µs (31.8%)
iast_FULL 739.647 µs [717.434 µs, 761.861 µs] 348.815 µs (89.2%)
iast_GLOBAL 566.578 µs [543.968 µs, 589.188 µs] 175.745 µs (45.0%)
iast_HARDCODED_SECRET_DISABLED 524.864 µs [503.09 µs, 546.639 µs] 134.032 µs (34.3%)
iast_INACTIVE 468.85 µs [447.354 µs, 490.346 µs] 78.017 µs (20.0%)
iast_TELEMETRY_OFF 510.221 µs [488.276 µs, 532.167 µs] 119.389 µs (30.5%)
tracing 469.398 µs [447.677 µs, 491.119 µs] 78.566 µs (20.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 384.564 µs [364.443 µs, 404.685 µs] -
iast 519.744 µs [497.718 µs, 541.77 µs] 135.18 µs (35.2%)
iast_FULL 736.085 µs [713.753 µs, 758.417 µs] 351.521 µs (91.4%)
iast_GLOBAL 564.579 µs [542.749 µs, 586.409 µs] 180.015 µs (46.8%)
iast_HARDCODED_SECRET_DISABLED 521.863 µs [500.001 µs, 543.724 µs] 137.298 µs (35.7%)
iast_INACTIVE 471.683 µs [450.147 µs, 493.219 µs] 87.119 µs (22.7%)
iast_TELEMETRY_OFF 517.182 µs [494.482 µs, 539.883 µs] 132.618 µs (34.5%)
tracing 466.364 µs [445.381 µs, 487.347 µs] 81.8 µs (21.3%)
Request duration reports for petclinic
gantt
    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,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.377 ms [1.358 ms, 1.397 ms] -
appsec 1.736 ms [1.713 ms, 1.759 ms] 358.669 µs (26.0%)
appsec_no_iast 1.731 ms [1.708 ms, 1.755 ms] 353.775 µs (25.7%)
code_origins 1.689 ms [1.657 ms, 1.722 ms] 311.943 µs (22.6%)
iast 1.519 ms [1.494 ms, 1.544 ms] 141.438 µs (10.3%)
profiling 1.523 ms [1.499 ms, 1.548 ms] 146.098 µs (10.6%)
tracing 1.517 ms [1.494 ms, 1.541 ms] 140.023 µs (10.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.376 ms [1.357 ms, 1.395 ms] -
appsec 1.75 ms [1.727 ms, 1.774 ms] 374.233 µs (27.2%)
appsec_no_iast 1.745 ms [1.72 ms, 1.77 ms] 368.803 µs (26.8%)
code_origins 1.709 ms [1.677 ms, 1.741 ms] 332.93 µs (24.2%)
iast 1.54 ms [1.515 ms, 1.565 ms] 163.995 µs (11.9%)
profiling 1.58 ms [1.555 ms, 1.606 ms] 204.169 µs (14.8%)
tracing 1.503 ms [1.479 ms, 1.526 ms] 126.758 µs (9.2%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mhlidd/otel_baggage_extract/inject
git_commit_date 1741018276 1741020973
git_commit_sha 31fb383 c4f6d7d
release_version 1.47.0-SNAPSHOT~31fb383838 1.47.0-SNAPSHOT~c4f6d7d603
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1741023021 1741023021
ci_job_id 830227556 830227556
ci_pipeline_id 57532584 57532584
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-8ksbllmc-project-304-concurrent-2-w3x1h8uy 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Linux runner-8ksbllmc-project-304-concurrent-2-w3x1h8uy 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:50:46 UTC 2024 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 11 metrics, 1 unstable metrics.

Execution time for biojava
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.295 s [15.295 s, 15.295 s] -
appsec 15.072 s [15.072 s, 15.072 s] -223.0 ms (-1.5%)
iast 18.813 s [18.813 s, 18.813 s] 3.518 s (23.0%)
iast_GLOBAL 17.712 s [17.712 s, 17.712 s] 2.417 s (15.8%)
profiling 15.131 s [15.131 s, 15.131 s] -164.0 ms (-1.1%)
tracing 15.111 s [15.111 s, 15.111 s] -184.0 ms (-1.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.923 s [14.923 s, 14.923 s] -
appsec 14.822 s [14.822 s, 14.822 s] -101.0 ms (-0.7%)
iast 18.92 s [18.92 s, 18.92 s] 3.997 s (26.8%)
iast_GLOBAL 18.226 s [18.226 s, 18.226 s] 3.303 s (22.1%)
profiling 15.051 s [15.051 s, 15.051 s] 128.0 ms (0.9%)
tracing 14.84 s [14.84 s, 14.84 s] -83.0 ms (-0.6%)
Execution time for tomcat
gantt
    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,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.47 ms [1.458 ms, 1.481 ms] -
appsec 2.337 ms [2.293 ms, 2.38 ms] 867.315 µs (59.0%)
iast 2.098 ms [2.043 ms, 2.153 ms] 628.52 µs (42.8%)
iast_GLOBAL 2.162 ms [2.106 ms, 2.218 ms] 692.594 µs (47.1%)
profiling 1.959 ms [1.915 ms, 2.002 ms] 489.188 µs (33.3%)
tracing 1.937 ms [1.895 ms, 1.979 ms] 467.229 µs (31.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.466 ms [1.455 ms, 1.478 ms] -
appsec 2.33 ms [2.286 ms, 2.374 ms] 863.981 µs (58.9%)
iast 2.113 ms [2.058 ms, 2.168 ms] 646.715 µs (44.1%)
iast_GLOBAL 2.153 ms [2.098 ms, 2.209 ms] 687.301 µs (46.9%)
profiling 2.457 ms [2.27 ms, 2.645 ms] 991.07 µs (67.6%)
tracing 1.939 ms [1.897 ms, 1.981 ms] 472.927 µs (32.3%)

@mhlidd mhlidd force-pushed the mhlidd/otel_baggage_extract/inject branch from c9b2cc5 to bdb7932 Compare February 9, 2025 03:10
@mhlidd mhlidd added comp: core Tracer core and removed tag: do not merge Do not merge changes labels Feb 11, 2025
@mhlidd mhlidd changed the title [WIP] initial implementation and unit tests for inject/extract Implementation of BaggagePropagator and BaggageContext Feb 11, 2025
@mhlidd mhlidd marked this pull request as ready for review February 11, 2025 23:36
@mhlidd mhlidd requested a review from a team as a code owner February 11, 2025 23:36
Copy link
Contributor

github-actions bot commented Feb 11, 2025

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@mhlidd mhlidd requested review from mcculls and PerfectSlayer and removed request for manuel-alvarez-alvarez February 11, 2025 23:36
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.

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 TracePropagationStyles to not mess with the HttpCodec which is dedicated to the tracing propagation and I would rather add workaround on the config parsing side rather than the Tracing headers things (that would mess with config telemetry) You would have to skip the baggage style from HttpCodec.createExtractor() then.

@mhlidd
Copy link
Contributor Author

mhlidd commented Feb 12, 2025

  • It's missing cache since you have a dedicated BaggageContext object. Do you plan to implement it later?

I'm thinking that this can be added as a follow-up PR so we can focus on functionality first. WDYT?

  • About config, I would create dedicated method for Baggage (is propagated, is injected, is extracted) and remove
    Bagagge from the TracePropagationStyles to not mess with the HttpCodec which is dedicated to the tracing propagation and I would rather add workaround on the config parsing side rather than the Tracing headers things
    (that would mess with config telemetry) You would have to skip the baggage style from HttpCodec.createExtractor() then.

This sounds good to me. I can make a change to ignore baggage when creating extractors/injectors!

@PerfectSlayer
Copy link
Contributor

I'm thinking that this can be added as a follow-up PR so we can focus on functionality first. WDYT?

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

Copy link
Contributor

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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Code Quality Violation

Do not return an array that is a class member (...read more)

Avoid returning an array that was defined as a class member. If you want to return an array or the values of the array that is a class member, consider returning a copy of the array.

View in Datadog  Leave us feedback  Documentation

}

public boolean[] getUnsafeValOctets() {
return unsafeValOctets;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Code Quality Violation

Do not return an array that is a class member (...read more)

Avoid returning an array that was defined as a class member. If you want to return an array or the values of the array that is a class member, consider returning a copy of the array.

View in Datadog  Leave us feedback  Documentation

@mhlidd mhlidd added comp: core Tracer core and removed comp: core Tracer core labels Mar 3, 2025
@mhlidd mhlidd added inst: java Core Java language instrumentation type: feature request and removed inst: java Core Java language instrumentation labels Mar 3, 2025
@mhlidd mhlidd merged commit ffe33cd into master Mar 3, 2025
209 of 212 checks passed
@mhlidd mhlidd deleted the mhlidd/otel_baggage_extract/inject branch March 3, 2025 18:40
@github-actions github-actions bot added this to the 1.47.0 milestone Mar 3, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Mar 6, 2025
| 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
([#&#8203;8483](DataDog/dd-trace-java#8483) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Add exclusion to solve IAST weak randomness vulnerability false
positives
([#&#8203;8462](DataDog/dd-trace-java#8462) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Fix weak randomness false positive in Kafka client
([#&#8203;8408](DataDog/dd-trace-java#8408) -
[@&#8203;smola](https://github.com/smola))
- ✨ Fix location for SSRF with Kong Unirest
([#&#8203;8407](DataDog/dd-trace-java#8407) -
[@&#8203;smola](https://github.com/smola))
- ✨ Exclude IBM Instana from IAST
([#&#8203;8406](DataDog/dd-trace-java#8406) -
[@&#8203;smola](https://github.com/smola))
- 🐛 Fix org.json iast instrumentation test for latest dependency
([#&#8203;8347](DataDog/dd-trace-java#8347) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Configuration to Disable APM Tracing
([#&#8203;8219](DataDog/dd-trace-java#8219) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Address cookie vulnerability cardinality issues
([#&#8203;8210](DataDog/dd-trace-java#8210) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Email HTML Injection detection in IAST
([#&#8203;8205](DataDog/dd-trace-java#8205) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Application Security Management (WAF)

- 🐛✨ Ensure usr.exists tag is not overridden when
UsernameNotFoundException is thrown
([#&#8203;8376](DataDog/dd-trace-java#8376) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- 🐛✨ Ensure usr.exists tag is not overridden by auto
instrumentation
([#&#8203;8374](DataDog/dd-trace-java#8374) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Update appsec metrics with event_rules_version tag
([#&#8203;8354](DataDog/dd-trace-java#8354) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Update metrics: appsec.waf.requests
([#&#8203;8353](DataDog/dd-trace-java#8353) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Improve ASM support in vert.x 5.0
([#&#8203;8285](DataDog/dd-trace-java#8285) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- ✨ Update metrics: appsec.waf.updates and appsec.waf.init
([#&#8203;8280](DataDog/dd-trace-java#8280) -
[@&#8203;Mariovido](https://github.com/Mariovido))
- ✨ Configuration to Disable APM Tracing
([#&#8203;8219](DataDog/dd-trace-java#8219) -
[@&#8203;jandro996](https://github.com/jandro996))

##### Build & Tooling

- 🐛 Do not generate Muzzle references for primitive arrays in method
body
([#&#8203;8361](DataDog/dd-trace-java#8361) -
[@&#8203;amarziali](https://github.com/amarziali))
- 📖 Improve dev env setup documentation for Windows
([#&#8203;8180](DataDog/dd-trace-java#8180) -
[@&#8203;lucaspimentel](https://github.com/lucaspimentel))

##### Continuous Integration Visibility

- ✨ Add support for skip-EFD tagging
([#&#8203;8487](DataDog/dd-trace-java#8487) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix an NPE in Gradle Android instrumentation
([#&#8203;8484](DataDog/dd-trace-java#8484) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Consider modified tests when applying fail-fast tests
ordering
([#&#8203;8474](DataDog/dd-trace-java#8474) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement tests reordering for TestNG
([#&#8203;8467](DataDog/dd-trace-java#8467) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix Gradle Launcher instrumentation to not interfere with Gradle
Test Kit
([#&#8203;8465](DataDog/dd-trace-java#8465) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🧹 Use separate TestEventHandlers per framework in CI Vis
instrumentations
([#&#8203;8451](DataDog/dd-trace-java#8451) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Remove warning log when JUnit 4 test method cannot be
retrieved
([#&#8203;8445](DataDog/dd-trace-java#8445) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Fix Scalatest tracing for tests that are reported asynchronously
([#&#8203;8444](DataDog/dd-trace-java#8444) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement attempt to fix tests
([#&#8203;8393](DataDog/dd-trace-java#8393) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement test disabling
([#&#8203;8377](DataDog/dd-trace-java#8377) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Update CODEOWNERS parser to not log errors on comments with
leading whitespace
([#&#8203;8349](DataDog/dd-trace-java#8349) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Request Test Management tests list
([#&#8203;8345](DataDog/dd-trace-java#8345) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Receive test management settings from CIVis settings
request
([#&#8203;8331](DataDog/dd-trace-java#8331) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement quarantined tests tagging
([#&#8203;8326](DataDog/dd-trace-java#8326) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Implement tests quarantining
([#&#8203;8320](DataDog/dd-trace-java#8320) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Add tag to specify if the user is setting DD_SERVICE
([#&#8203;8318](DataDog/dd-trace-java#8318) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

##### Crash tracking

- ✨ Only fork jps when required
([#&#8203;8419](DataDog/dd-trace-java#8419) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Use Java home of the crashed process to launch crash uploader
([#&#8203;8348](DataDog/dd-trace-java#8348) -
[@&#8203;jbachorik](https://github.com/jbachorik))

##### Data Streams Monitoring

- 🐛 Fix error happening when sqs message attributes are readonly
([#&#8203;8473](DataDog/dd-trace-java#8473) -
[@&#8203;vandonr](https://github.com/vandonr))
- 🐛 Fix bug on proto schema extraction
([#&#8203;8403](DataDog/dd-trace-java#8403) -
[@&#8203;vandonr](https://github.com/vandonr))
- 🐛 Fix service name overrides in consumers
([#&#8203;8387](DataDog/dd-trace-java#8387) -
[@&#8203;piochelepiotr](https://github.com/piochelepiotr))

##### Database Monitoring

- ✨ Add DBMTracePreparedStatements to tracer configuration log
([#&#8203;8508](DataDog/dd-trace-java#8508) -
[@&#8203;cecile75](https://github.com/cecile75))

##### Dynamic Instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 🐛 Fix Exception Replay with Lambda proxy classes
([#&#8203;8452](DataDog/dd-trace-java#8452) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add code origin support for spring-webmvc
([#&#8203;8416](DataDog/dd-trace-java#8416) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add support for scanning jar from loaded class
([#&#8203;8370](DataDog/dd-trace-java#8370) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Disable capture of entry values
([#&#8203;8369](DataDog/dd-trace-java#8369) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix CodeOrigin for `@Trace` annotation
([#&#8203;8344](DataDog/dd-trace-java#8344) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix equals/hashCode for CodeOrigin probe
([#&#8203;8319](DataDog/dd-trace-java#8319) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add code origin support to kafka message listeners
([#&#8203;8301](DataDog/dd-trace-java#8301) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Metrics

- ✨ Create metric: appsec.waf.error
([#&#8203;8381](DataDog/dd-trace-java#8381) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))
- ✨ Create metric: appsec.rasp.error
([#&#8203;8364](DataDog/dd-trace-java#8364) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

##### Profiling

- ✨ Bump ddprof library to 1.22.0
([#&#8203;8463](DataDog/dd-trace-java#8463) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- IBM J9 8u361 corresponds to OpenJDK 8u362 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#187
- Fix compatibility with musl libc 1.2.4 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#189
- Modify version extraction by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#179
- Do not write null values to jvminfo event by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#184
- Productize VMStructs-based stack walker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#177
- A few minor downport issues by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#180
- Enable ASGCT by default on fairly safe J9 JDK versions by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#181
- 🐛 Exclude OrderedThreadPoolExecutor from queue-time measurements
([#&#8203;8456](DataDog/dd-trace-java#8456) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Record JVM info on JVMs without JFR
([#&#8203;8431](DataDog/dd-trace-java#8431) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🐛 Actually use CleanupTask in TempLocationManager
([#&#8203;8420](DataDog/dd-trace-java#8420) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Only fork jps when required
([#&#8203;8419](DataDog/dd-trace-java#8419) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Adjust JFR checks for J9
([#&#8203;8405](DataDog/dd-trace-java#8405) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🧹 Disable smap RSS parsing by default
([#&#8203;8342](DataDog/dd-trace-java#8342) -
[@&#8203;MattAlp](https://github.com/MattAlp))

##### Telemetry

- 🐛 Add support for JBoss jar:file format to DependencyResolver
([#&#8203;8428](DataDog/dd-trace-java#8428) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Update metrics: appsec.waf.requests
([#&#8203;8353](DataDog/dd-trace-java#8353) -
[@&#8203;Mariovido](https://github.com/Mariovido))

##### Trace context propagation

- ✨ Introduce tracing propagator
([#&#8203;8313](DataDog/dd-trace-java#8313) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Tracer core

- 🐛 Fix Stable Config telemetry source names
([#&#8203;8460](DataDog/dd-trace-java#8460) -
[@&#8203;BaptisteFoy](https://github.com/BaptisteFoy))
- ✨ Probe trace endpoints with a valid payload of empty arrays
([#&#8203;8414](DataDog/dd-trace-java#8414) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Add 1 minute fail-safe to JUL/JMX class-loading callback
([#&#8203;8399](DataDog/dd-trace-java#8399) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Migrate DSM injection calls to context-first APIs
([#&#8203;8383](DataDog/dd-trace-java#8383) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 🧹 Move continuation capture methods from scope to tracer
([#&#8203;8371](DataDog/dd-trace-java#8371) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Migrate context extraction calls to context-first APIs
([#&#8203;8368](DataDog/dd-trace-java#8368) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 🧹 Migrate context injection calls to context-first APIs
([#&#8203;8358](DataDog/dd-trace-java#8358) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- 💡 Support reading configurations from files
([#&#8203;8338](DataDog/dd-trace-java#8338) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- 💡 Implementation of BaggagePropagator and BaggageContext
([#&#8203;8330](DataDog/dd-trace-java#8330) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- 🧹 Combine continuation implementations into one which supports
multiple activations
([#&#8203;8324](DataDog/dd-trace-java#8324) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Introduce tracing propagator
([#&#8203;8313](DataDog/dd-trace-java#8313) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Remove old context propagation API
([#&#8203;8271](DataDog/dd-trace-java#8271) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

##### Instrumentations

##### AWS Lambda instrumentation

- 🐛 Send error message and stack to Lambda extension
([#&#8203;8417](DataDog/dd-trace-java#8417) -
[@&#8203;nhulston](https://github.com/nhulston))

##### AWS SDK instrumentation

- 🐛 Fix error happening when sqs message attributes are readonly
([#&#8203;8473](DataDog/dd-trace-java#8473) -
[@&#8203;vandonr](https://github.com/vandonr))
- 💡 Inject trace context into AWS Step Functions input
([#&#8203;7585](DataDog/dd-trace-java#7585) -
[@&#8203;DylanLovesCoffee](https://github.com/DylanLovesCoffee))

##### Core Java language instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- ✨ Add code origin support for spring-webmvc
([#&#8203;8416](DataDog/dd-trace-java#8416) -
[@&#8203;evanchooly](https://github.com/evanchooly))
- 💡 Implementation of BaggagePropagator and BaggageContext
([#&#8203;8330](DataDog/dd-trace-java#8330) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add code origin support to kafka message listeners
([#&#8203;8301](DataDog/dd-trace-java#8301) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### gRPC instrumentation

- ✨ Look in another location for grpc service methods
([#&#8203;8468](DataDog/dd-trace-java#8468) -
[@&#8203;evanchooly](https://github.com/evanchooly))

##### Kafka instrumentation

- ✨ Add messaging.destination.name tag to kafka integrations
([#&#8203;8366](DataDog/dd-trace-java#8366) -
[@&#8203;rarguelloF](https://github.com/rarguelloF))

##### Protocol Buffer instrumentation

- 🐛 Fix bug on proto schema extraction
([#&#8203;8403](DataDog/dd-trace-java#8403) -
[@&#8203;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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: core Tracer core inst: java Core Java language instrumentation type: feature request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants