Skip to content

Migrate OtelContext wrapper to new internal Context API #8645

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

Merged
merged 1 commit into from
Apr 1, 2025

Conversation

mcculls
Copy link
Contributor

@mcculls mcculls commented Mar 31, 2025

Motivation

The new internal Context API aligns better with OpenTelemetry and lets us simplify management of contexts from manual instrumentation (no need to shadow the scope management with an attachable wrapper. and therefore no need for scopes or their wrappers to have state - they are true closeables)

Contributor Checklist

Jira ticket: APMAPI-855

@mcculls mcculls added type: refactoring inst: opentelemetry OpenTelemetry instrumentation labels Mar 31, 2025
@pr-commenter
Copy link

pr-commenter bot commented Mar 31, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/migrate-otel-shim-to-context
git_commit_date 1743434026 1743434060
git_commit_sha d08dc3a d56c702
release_version 1.48.0-SNAPSHOT~d08dc3a3c5 1.48.0-SNAPSHOT~d56c70221e
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1743437045 1743437045
ci_job_id 872806356 872806356
ci_pipeline_id 60531355 60531355
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-xjcpkyqs-project-304-concurrent-0-oslc0nsd 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-xjcpkyqs-project-304-concurrent-0-oslc0nsd 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 68 metrics, 3 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.06 s) : 0, 1059704
Total [baseline] (10.448 s) : 0, 10448452
Agent [candidate] (1.053 s) : 0, 1053019
Total [candidate] (10.427 s) : 0, 10426695
section appsec
Agent [baseline] (1.189 s) : 0, 1188752
Total [baseline] (10.74 s) : 0, 10739808
Agent [candidate] (1.196 s) : 0, 1195763
Total [candidate] (10.726 s) : 0, 10726240
section iast
Agent [baseline] (1.179 s) : 0, 1179094
Total [baseline] (11.01 s) : 0, 11010443
Agent [candidate] (1.189 s) : 0, 1189470
Total [candidate] (10.991 s) : 0, 10991271
section profiling
Agent [baseline] (1.274 s) : 0, 1274440
Total [baseline] (10.839 s) : 0, 10839335
Agent [candidate] (1.277 s) : 0, 1276953
Total [candidate] (10.9 s) : 0, 10899979
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent appsec 1.189 s 129.048 ms (12.2%)
Agent iast 1.179 s 119.39 ms (11.3%)
Agent profiling 1.274 s 214.736 ms (20.3%)
Total tracing 10.448 s -
Total appsec 10.74 s 291.356 ms (2.8%)
Total iast 11.01 s 561.991 ms (5.4%)
Total profiling 10.839 s 390.882 ms (3.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.053 s -
Agent appsec 1.196 s 142.744 ms (13.6%)
Agent iast 1.189 s 136.451 ms (13.0%)
Agent profiling 1.277 s 223.934 ms (21.3%)
Total tracing 10.427 s -
Total appsec 10.726 s 299.545 ms (2.9%)
Total iast 10.991 s 564.576 ms (5.4%)
Total profiling 10.9 s 473.284 ms (4.5%)
gantt
    title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (722.544 ms) : 0, 722544
BytebuddyAgent [candidate] (717.673 ms) : 0, 717673
GlobalTracer [baseline] (240.623 ms) : 0, 240623
GlobalTracer [candidate] (239.48 ms) : 0, 239480
AppSec [baseline] (54.883 ms) : 0, 54883
AppSec [candidate] (54.509 ms) : 0, 54509
Debugger [baseline] (4.486 ms) : 0, 4486
Debugger [candidate] (4.431 ms) : 0, 4431
Remote Config [baseline] (719.738 µs) : 0, 720
Remote Config [candidate] (679.145 µs) : 0, 679
Telemetry [baseline] (15.886 ms) : 0, 15886
Telemetry [candidate] (15.786 ms) : 0, 15786
section appsec
BytebuddyAgent [baseline] (733.739 ms) : 0, 733739
BytebuddyAgent [candidate] (738.69 ms) : 0, 738690
GlobalTracer [baseline] (234.907 ms) : 0, 234907
GlobalTracer [candidate] (236.194 ms) : 0, 236194
AppSec [baseline] (175.912 ms) : 0, 175912
AppSec [candidate] (176.459 ms) : 0, 176459
Debugger [baseline] (4.234 ms) : 0, 4234
Debugger [candidate] (4.281 ms) : 0, 4281
Remote Config [baseline] (629.651 µs) : 0, 630
Remote Config [candidate] (647.949 µs) : 0, 648
Telemetry [baseline] (8.135 ms) : 0, 8135
Telemetry [candidate] (8.208 ms) : 0, 8208
IAST [baseline] (21.601 ms) : 0, 21601
IAST [candidate] (21.545 ms) : 0, 21545
section iast
BytebuddyAgent [baseline] (836.473 ms) : 0, 836473
BytebuddyAgent [candidate] (844.97 ms) : 0, 844970
GlobalTracer [baseline] (229.375 ms) : 0, 229375
GlobalTracer [candidate] (230.776 ms) : 0, 230776
AppSec [baseline] (56.466 ms) : 0, 56466
AppSec [candidate] (56.48 ms) : 0, 56480
Debugger [baseline] (4.21 ms) : 0, 4210
Debugger [candidate] (4.183 ms) : 0, 4183
Remote Config [baseline] (606.201 µs) : 0, 606
Remote Config [candidate] (616.506 µs) : 0, 617
Telemetry [baseline] (8.885 ms) : 0, 8885
Telemetry [candidate] (8.845 ms) : 0, 8845
IAST [baseline] (22.704 ms) : 0, 22704
IAST [candidate] (22.989 ms) : 0, 22989
section profiling
ProfilingAgent [baseline] (101.767 ms) : 0, 101767
ProfilingAgent [candidate] (102.811 ms) : 0, 102811
BytebuddyAgent [baseline] (710.298 ms) : 0, 710298
BytebuddyAgent [candidate] (711.616 ms) : 0, 711616
GlobalTracer [baseline] (348.787 ms) : 0, 348787
GlobalTracer [candidate] (349.719 ms) : 0, 349719
AppSec [baseline] (54.102 ms) : 0, 54102
AppSec [candidate] (53.234 ms) : 0, 53234
Debugger [baseline] (4.269 ms) : 0, 4269
Debugger [candidate] (4.267 ms) : 0, 4267
Remote Config [baseline] (686.053 µs) : 0, 686
Remote Config [candidate] (693.904 µs) : 0, 694
Telemetry [baseline] (8.869 ms) : 0, 8869
Telemetry [candidate] (8.905 ms) : 0, 8905
Profiling [baseline] (101.793 ms) : 0, 101793
Profiling [candidate] (102.836 ms) : 0, 102836
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1056821
Total [baseline] (8.683 s) : 0, 8682648
Agent [candidate] (1.052 s) : 0, 1051528
Total [candidate] (8.668 s) : 0, 8668288
section iast
Agent [baseline] (1.187 s) : 0, 1187009
Total [baseline] (9.225 s) : 0, 9224840
Agent [candidate] (1.198 s) : 0, 1197687
Total [candidate] (9.278 s) : 0, 9277797
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.183 s) : 0, 1182812
Total [baseline] (9.243 s) : 0, 9243019
Agent [candidate] (1.18 s) : 0, 1180263
Total [candidate] (9.201 s) : 0, 9201103
section iast_TELEMETRY_OFF
Agent [baseline] (1.175 s) : 0, 1175184
Total [baseline] (9.2 s) : 0, 9199572
Agent [candidate] (1.174 s) : 0, 1173565
Total [candidate] (9.202 s) : 0, 9201847
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent iast 1.187 s 130.188 ms (12.3%)
Agent iast_HARDCODED_SECRET_DISABLED 1.183 s 125.992 ms (11.9%)
Agent iast_TELEMETRY_OFF 1.175 s 118.363 ms (11.2%)
Total tracing 8.683 s -
Total iast 9.225 s 542.192 ms (6.2%)
Total iast_HARDCODED_SECRET_DISABLED 9.243 s 560.371 ms (6.5%)
Total iast_TELEMETRY_OFF 9.2 s 516.924 ms (6.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.052 s -
Agent iast 1.198 s 146.159 ms (13.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.18 s 128.735 ms (12.2%)
Agent iast_TELEMETRY_OFF 1.174 s 122.036 ms (11.6%)
Total tracing 8.668 s -
Total iast 9.278 s 609.509 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.201 s 532.815 ms (6.1%)
Total iast_TELEMETRY_OFF 9.202 s 533.559 ms (6.2%)
gantt
    title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (719.419 ms) : 0, 719419
BytebuddyAgent [candidate] (718.405 ms) : 0, 718405
GlobalTracer [baseline] (241.159 ms) : 0, 241159
GlobalTracer [candidate] (239.653 ms) : 0, 239653
AppSec [baseline] (55.088 ms) : 0, 55088
AppSec [candidate] (55.882 ms) : 0, 55882
Debugger [baseline] (4.557 ms) : 0, 4557
Debugger [candidate] (4.441 ms) : 0, 4441
Remote Config [baseline] (742.131 µs) : 0, 742
Remote Config [candidate] (679.795 µs) : 0, 680
Telemetry [baseline] (15.298 ms) : 0, 15298
Telemetry [candidate] (12.027 ms) : 0, 12027
section iast
BytebuddyAgent [baseline] (843.144 ms) : 0, 843144
BytebuddyAgent [candidate] (851.761 ms) : 0, 851761
GlobalTracer [baseline] (230.612 ms) : 0, 230612
GlobalTracer [candidate] (231.48 ms) : 0, 231480
IAST [baseline] (23.11 ms) : 0, 23110
IAST [candidate] (23.138 ms) : 0, 23138
AppSec [baseline] (55.88 ms) : 0, 55880
AppSec [candidate] (56.793 ms) : 0, 56793
Debugger [baseline] (4.221 ms) : 0, 4221
Debugger [candidate] (4.274 ms) : 0, 4274
Remote Config [baseline] (615.615 µs) : 0, 616
Remote Config [candidate] (632.335 µs) : 0, 632
Telemetry [baseline] (8.87 ms) : 0, 8870
Telemetry [candidate] (8.948 ms) : 0, 8948
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (838.818 ms) : 0, 838818
BytebuddyAgent [candidate] (837.953 ms) : 0, 837953
GlobalTracer [baseline] (230.538 ms) : 0, 230538
GlobalTracer [candidate] (229.754 ms) : 0, 229754
IAST [baseline] (23.086 ms) : 0, 23086
IAST [candidate] (22.72 ms) : 0, 22720
AppSec [baseline] (56.174 ms) : 0, 56174
AppSec [candidate] (55.682 ms) : 0, 55682
Debugger [baseline] (4.253 ms) : 0, 4253
Debugger [candidate] (4.202 ms) : 0, 4202
Remote Config [baseline] (608.46 µs) : 0, 608
Remote Config [candidate] (607.784 µs) : 0, 608
Telemetry [baseline] (8.89 ms) : 0, 8890
Telemetry [candidate] (8.897 ms) : 0, 8897
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (833.95 ms) : 0, 833950
BytebuddyAgent [candidate] (832.524 ms) : 0, 832524
GlobalTracer [baseline] (228.831 ms) : 0, 228831
GlobalTracer [candidate] (229.231 ms) : 0, 229231
IAST [baseline] (22.417 ms) : 0, 22417
IAST [candidate] (22.215 ms) : 0, 22215
AppSec [baseline] (56.064 ms) : 0, 56064
AppSec [candidate] (55.753 ms) : 0, 55753
Debugger [baseline] (4.191 ms) : 0, 4191
Debugger [candidate] (4.175 ms) : 0, 4175
Remote Config [baseline] (633.461 µs) : 0, 633
Remote Config [candidate] (610.687 µs) : 0, 611
Telemetry [baseline] (8.692 ms) : 0, 8692
Telemetry [candidate] (8.671 ms) : 0, 8671
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-31T15:34:28 2025-03-31T15:42:13
git_branch master mcculls/migrate-otel-shim-to-context
git_commit_date 1743434026 1743434060
git_commit_sha d08dc3a d56c702
release_version 1.48.0-SNAPSHOT~d08dc3a3c5 1.48.0-SNAPSHOT~d56c70221e
start_time 2025-03-31T15:34:14 2025-03-31T15:41:59
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1743436132 1743436132
ci_job_id 872806357 872806357
ci_pipeline_id 60531355 60531355
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-vapngg-f-project-304-concurrent-0-pvl11e3l 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-vapngg-f-project-304-concurrent-0-pvl11e3l 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 iast iast

Summary

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

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.348 ms) : 1329, 1367
.   : milestone, 1348,
appsec (1.738 ms) : 1714, 1761
.   : milestone, 1738,
appsec_no_iast (1.746 ms) : 1723, 1768
.   : milestone, 1746,
code_origins (1.701 ms) : 1674, 1728
.   : milestone, 1701,
iast (1.525 ms) : 1501, 1549
.   : milestone, 1525,
profiling (1.528 ms) : 1505, 1551
.   : milestone, 1528,
tracing (1.508 ms) : 1482, 1534
.   : milestone, 1508,
section candidate
no_agent (1.364 ms) : 1343, 1385
.   : milestone, 1364,
appsec (1.74 ms) : 1715, 1764
.   : milestone, 1740,
appsec_no_iast (1.746 ms) : 1723, 1769
.   : milestone, 1746,
code_origins (1.706 ms) : 1679, 1733
.   : milestone, 1706,
iast (1.511 ms) : 1487, 1535
.   : milestone, 1511,
profiling (1.519 ms) : 1495, 1542
.   : milestone, 1519,
tracing (1.493 ms) : 1467, 1518
.   : milestone, 1493,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.348 ms [1.329 ms, 1.367 ms] -
appsec 1.738 ms [1.714 ms, 1.761 ms] 389.598 µs (28.9%)
appsec_no_iast 1.746 ms [1.723 ms, 1.768 ms] 397.546 µs (29.5%)
code_origins 1.701 ms [1.674 ms, 1.728 ms] 353.026 µs (26.2%)
iast 1.525 ms [1.501 ms, 1.549 ms] 176.705 µs (13.1%)
profiling 1.528 ms [1.505 ms, 1.551 ms] 179.978 µs (13.4%)
tracing 1.508 ms [1.482 ms, 1.534 ms] 160.099 µs (11.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.364 ms [1.343 ms, 1.385 ms] -
appsec 1.74 ms [1.715 ms, 1.764 ms] 375.467 µs (27.5%)
appsec_no_iast 1.746 ms [1.723 ms, 1.769 ms] 381.74 µs (28.0%)
code_origins 1.706 ms [1.679 ms, 1.733 ms] 342.156 µs (25.1%)
iast 1.511 ms [1.487 ms, 1.535 ms] 147.101 µs (10.8%)
profiling 1.519 ms [1.495 ms, 1.542 ms] 154.566 µs (11.3%)
tracing 1.493 ms [1.467 ms, 1.518 ms] 128.355 µs (9.4%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (379.73 µs) : 360, 400
.   : milestone, 380,
iast (518.074 µs) : 496, 540
.   : milestone, 518,
iast_FULL (727.666 µs) : 706, 750
.   : milestone, 728,
iast_GLOBAL (565.808 µs) : 542, 589
.   : milestone, 566,
iast_HARDCODED_SECRET_DISABLED (513.912 µs) : 492, 536
.   : milestone, 514,
iast_INACTIVE (476.04 µs) : 452, 500
.   : milestone, 476,
iast_TELEMETRY_OFF (502.767 µs) : 481, 525
.   : milestone, 503,
tracing (466.454 µs) : 445, 488
.   : milestone, 466,
section candidate
no_agent (378.842 µs) : 358, 400
.   : milestone, 379,
iast (513.046 µs) : 492, 535
.   : milestone, 513,
iast_FULL (736.159 µs) : 714, 758
.   : milestone, 736,
iast_GLOBAL (561.367 µs) : 539, 583
.   : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (514.88 µs) : 493, 537
.   : milestone, 515,
iast_INACTIVE (476.879 µs) : 455, 498
.   : milestone, 477,
iast_TELEMETRY_OFF (503.675 µs) : 482, 525
.   : milestone, 504,
tracing (458.151 µs) : 438, 479
.   : milestone, 458,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 379.73 µs [359.8 µs, 399.659 µs] -
iast 518.074 µs [496.282 µs, 539.867 µs] 138.345 µs (36.4%)
iast_FULL 727.666 µs [705.65 µs, 749.682 µs] 347.936 µs (91.6%)
iast_GLOBAL 565.808 µs [542.43 µs, 589.186 µs] 186.079 µs (49.0%)
iast_HARDCODED_SECRET_DISABLED 513.912 µs [491.778 µs, 536.045 µs] 134.182 µs (35.3%)
iast_INACTIVE 476.04 µs [451.972 µs, 500.109 µs] 96.311 µs (25.4%)
iast_TELEMETRY_OFF 502.767 µs [480.96 µs, 524.574 µs] 123.038 µs (32.4%)
tracing 466.454 µs [445.053 µs, 487.855 µs] 86.724 µs (22.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 378.842 µs [358.127 µs, 399.557 µs] -
iast 513.046 µs [491.535 µs, 534.556 µs] 134.204 µs (35.4%)
iast_FULL 736.159 µs [714.27 µs, 758.048 µs] 357.317 µs (94.3%)
iast_GLOBAL 561.367 µs [539.369 µs, 583.364 µs] 182.525 µs (48.2%)
iast_HARDCODED_SECRET_DISABLED 514.88 µs [492.824 µs, 536.936 µs] 136.038 µs (35.9%)
iast_INACTIVE 476.879 µs [455.457 µs, 498.302 µs] 98.038 µs (25.9%)
iast_TELEMETRY_OFF 503.675 µs [482.097 µs, 525.253 µs] 124.833 µs (33.0%)
tracing 458.151 µs [437.551 µs, 478.751 µs] 79.309 µs (20.9%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/migrate-otel-shim-to-context
git_commit_date 1743434026 1743434060
git_commit_sha d08dc3a d56c702
release_version 1.48.0-SNAPSHOT~d08dc3a3c5 1.48.0-SNAPSHOT~d56c70221e
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1743436600 1743436600
ci_job_id 872806358 872806358
ci_pipeline_id 60531355 60531355
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-ie6fuauo-project-304-concurrent-0-nx7u1ghc 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-ie6fuauo-project-304-concurrent-0-nx7u1ghc 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 11 metrics, 1 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.027 s) : 15027000, 15027000
.   : milestone, 15027000,
appsec (15.254 s) : 15254000, 15254000
.   : milestone, 15254000,
iast (18.634 s) : 18634000, 18634000
.   : milestone, 18634000,
iast_GLOBAL (18.305 s) : 18305000, 18305000
.   : milestone, 18305000,
profiling (15.521 s) : 15521000, 15521000
.   : milestone, 15521000,
tracing (15.047 s) : 15047000, 15047000
.   : milestone, 15047000,
section candidate
no_agent (14.968 s) : 14968000, 14968000
.   : milestone, 14968000,
appsec (14.918 s) : 14918000, 14918000
.   : milestone, 14918000,
iast (18.446 s) : 18446000, 18446000
.   : milestone, 18446000,
iast_GLOBAL (18.346 s) : 18346000, 18346000
.   : milestone, 18346000,
profiling (15.233 s) : 15233000, 15233000
.   : milestone, 15233000,
tracing (15.056 s) : 15056000, 15056000
.   : milestone, 15056000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.027 s [15.027 s, 15.027 s] -
appsec 15.254 s [15.254 s, 15.254 s] 227.0 ms (1.5%)
iast 18.634 s [18.634 s, 18.634 s] 3.607 s (24.0%)
iast_GLOBAL 18.305 s [18.305 s, 18.305 s] 3.278 s (21.8%)
profiling 15.521 s [15.521 s, 15.521 s] 494.0 ms (3.3%)
tracing 15.047 s [15.047 s, 15.047 s] 20.0 ms (0.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.968 s [14.968 s, 14.968 s] -
appsec 14.918 s [14.918 s, 14.918 s] -50.0 ms (-0.3%)
iast 18.446 s [18.446 s, 18.446 s] 3.478 s (23.2%)
iast_GLOBAL 18.346 s [18.346 s, 18.346 s] 3.378 s (22.6%)
profiling 15.233 s [15.233 s, 15.233 s] 265.0 ms (1.8%)
tracing 15.056 s [15.056 s, 15.056 s] 88.0 ms (0.6%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~d56c70221e, baseline=1.48.0-SNAPSHOT~d08dc3a3c5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.479 ms) : 1468, 1491
.   : milestone, 1479,
appsec (2.355 ms) : 2311, 2399
.   : milestone, 2355,
iast (2.13 ms) : 2074, 2186
.   : milestone, 2130,
iast_GLOBAL (2.176 ms) : 2121, 2232
.   : milestone, 2176,
profiling (2.453 ms) : 2273, 2633
.   : milestone, 2453,
tracing (1.958 ms) : 1916, 2001
.   : milestone, 1958,
section candidate
no_agent (1.48 ms) : 1469, 1492
.   : milestone, 1480,
appsec (2.364 ms) : 2320, 2408
.   : milestone, 2364,
iast (2.131 ms) : 2075, 2186
.   : milestone, 2131,
iast_GLOBAL (2.18 ms) : 2124, 2236
.   : milestone, 2180,
profiling (1.993 ms) : 1948, 2038
.   : milestone, 1993,
tracing (1.979 ms) : 1936, 2021
.   : milestone, 1979,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.479 ms [1.468 ms, 1.491 ms] -
appsec 2.355 ms [2.311 ms, 2.399 ms] 875.606 µs (59.2%)
iast 2.13 ms [2.074 ms, 2.186 ms] 650.7 µs (44.0%)
iast_GLOBAL 2.176 ms [2.121 ms, 2.232 ms] 696.94 µs (47.1%)
profiling 2.453 ms [2.273 ms, 2.633 ms] 973.644 µs (65.8%)
tracing 1.958 ms [1.916 ms, 2.001 ms] 479.028 µs (32.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.48 ms [1.469 ms, 1.492 ms] -
appsec 2.364 ms [2.32 ms, 2.408 ms] 883.352 µs (59.7%)
iast 2.131 ms [2.075 ms, 2.186 ms] 650.372 µs (43.9%)
iast_GLOBAL 2.18 ms [2.124 ms, 2.236 ms] 699.591 µs (47.3%)
profiling 1.993 ms [1.948 ms, 2.038 ms] 512.159 µs (34.6%)
tracing 1.979 ms [1.936 ms, 2.021 ms] 498.192 µs (33.7%)

Base automatically changed from mcculls/context-scope-bridge to master March 31, 2025 15:13
@mcculls mcculls force-pushed the mcculls/migrate-otel-shim-to-context branch from c2c2dff to d56c702 Compare March 31, 2025 15:15
@mcculls mcculls marked this pull request as ready for review March 31, 2025 15:15
@mcculls mcculls requested review from a team as code owners March 31, 2025 15:15
@mcculls mcculls requested a review from amarziali March 31, 2025 15:15
@mcculls
Copy link
Contributor Author

mcculls commented Mar 31, 2025

Note this was previously reviewed on the project/context feature branch under #8530

/** Keep track of propagated context that has not been captured on the scope stack. */
private static final ThreadLocal<OtelContext> lastPropagated = new ThreadLocal<>();
/** Records the keys needed to access the delegate context, mapped by key name. */
private static final Map<ContextKey<?>, datadog.context.ContextKey<?>> DELEGATE_KEYS =
Copy link
Collaborator

Choose a reason for hiding this comment

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

I imagine that this is not that big. However I did not see any cleanup or expiry but only entry insertion. Is that on purpose?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Correct, this is never going to grow that big because only a handful of context keys will ever be created and each one only takes up a small amount of space.

Context keys are also meant to be stored as constants, because each one is unique and must be available to allow querying - so even if we did have some kind of weak map here it wouldn't be evicting much because it would be rare for the mapped key to become unreachable during the application lifetime.

Copy link
Collaborator

Choose a reason for hiding this comment

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

ok thank you for having given more "context for this context" :)

@mcculls mcculls merged commit d8de104 into master Apr 1, 2025
253 of 254 checks passed
@mcculls mcculls deleted the mcculls/migrate-otel-shim-to-context branch April 1, 2025 17:33
@github-actions github-actions bot added this to the 1.48.0 milestone Apr 1, 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
inst: opentelemetry OpenTelemetry instrumentation type: refactoring
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants