Skip to content

Conversation

amarziali
Copy link
Contributor

@amarziali amarziali commented Mar 14, 2025

What Does This Do

This PR completes the JSR356 chapter by adding instrumentations for jetty pojo that were excluded.

In fact Jetty did not implement POJO websocket support like other servers (i.e. tomcat) by wrapping the POJO into a class extending Endpoint but uses a complex metadata parsing and deal with MethodHandle direct call.

That made difficult the instrumentation. Now this PR addresses that by swapping the method handle jetty uses for opening, closing , and onMessage. Using instrumentation intercepting the jsr annotations (like @OnOpen, @OnMessage) would not have worked since the spec states that parameter like Session are optional hence it's not guaranteed they are there and they are vital to lookup the context store.

Hopefully jetty seems to do a couple of thing that limits the risk of swapping method handles and ensure that the needed parameters are always there:

  1. it permutes the method handle arguments so we can rely on a certain deterministic order
  2. it binds every time the session

I tried to put particular care in securing the datadog code in a try-catch-throwable blocks and reporting errors to the instrumentation telemetry.
Also, I added extensive testing trying several combination of arguments annotated pojo might have

Motivation

Additional Notes

Supports from 10 included to 12.1 excluded. 12.1 introduced a refactoring that needs to be covered but it's still in alpha

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@amarziali amarziali added type: enhancement Enhancements and improvements inst: websocket WebSocket Instrumentation labels Mar 14, 2025
@amarziali amarziali requested review from a team as code owners March 14, 2025 09:49
@amarziali amarziali force-pushed the andrea.marziali/jetty-websocket branch from 184045b to 617189f Compare March 14, 2025 09:50
@amarziali amarziali force-pushed the andrea.marziali/jetty-websocket branch 2 times, most recently from 88e09fb to 7d49987 Compare March 14, 2025 10:17
@pr-commenter
Copy link

pr-commenter bot commented Mar 14, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/jetty-websocket
git_commit_date 1742520091 1742547559
git_commit_sha fe9f968 03a01af
release_version 1.48.0-SNAPSHOT~fe9f968edb 1.48.0-SNAPSHOT~03a01afa7b
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742550664 1742550664
ci_job_id 858396298 858396298
ci_pipeline_id 59556411 59556411
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-9n9spsyq-project-304-concurrent-0-1lzky1b3 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-9n9spsyq-project-304-concurrent-0-1lzky1b3 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 56 metrics, 7 unstable metrics.

Startup time reports for petclinic
gantt title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section tracing Agent [baseline] (1.042 s) : 0, 1042171 Total [baseline] (10.492 s) : 0, 10492314 Agent [candidate] (1.044 s) : 0, 1044070 Total [candidate] (10.473 s) : 0, 10473342 section appsec Agent [baseline] (1.184 s) : 0, 1184453 Total [baseline] (10.759 s) : 0, 10758562 Agent [candidate] (1.186 s) : 0, 1185624 Total [candidate] (10.715 s) : 0, 10715116 section iast Agent [baseline] (1.174 s) : 0, 1174434 Total [baseline] (11.001 s) : 0, 11000740 Agent [candidate] (1.175 s) : 0, 1174957 Total [candidate] (11.032 s) : 0, 11032173 section profiling Agent [baseline] (1.265 s) : 0, 1264886 Total [baseline] (10.875 s) : 0, 10875110 Agent [candidate] (1.262 s) : 0, 1261993 Total [candidate] (10.801 s) : 0, 10801491 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent appsec 1.184 s 142.282 ms (13.7%)
Agent iast 1.174 s 132.263 ms (12.7%)
Agent profiling 1.265 s 222.715 ms (21.4%)
Total tracing 10.492 s -
Total appsec 10.759 s 266.248 ms (2.5%)
Total iast 11.001 s 508.426 ms (4.8%)
Total profiling 10.875 s 382.796 ms (3.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.044 s -
Agent appsec 1.186 s 141.554 ms (13.6%)
Agent iast 1.175 s 130.887 ms (12.5%)
Agent profiling 1.262 s 217.923 ms (20.9%)
Total tracing 10.473 s -
Total appsec 10.715 s 241.774 ms (2.3%)
Total iast 11.032 s 558.832 ms (5.3%)
Total profiling 10.801 s 328.149 ms (3.1%)
gantt title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (717.565 ms) : 0, 717565 BytebuddyAgent [candidate] (719.178 ms) : 0, 719178 GlobalTracer [baseline] (239.38 ms) : 0, 239380 GlobalTracer [candidate] (240.125 ms) : 0, 240125 AppSec [baseline] (54.958 ms) : 0, 54958 AppSec [candidate] (54.686 ms) : 0, 54686 Remote Config [baseline] (699.415 µs) : 0, 699 Remote Config [candidate] (683.643 µs) : 0, 684 Telemetry [baseline] (13.58 ms) : 0, 13580 Telemetry [candidate] (13.484 ms) : 0, 13484 section appsec BytebuddyAgent [baseline] (736.316 ms) : 0, 736316 BytebuddyAgent [candidate] (737.445 ms) : 0, 737445 GlobalTracer [baseline] (236.267 ms) : 0, 236267 GlobalTracer [candidate] (236.311 ms) : 0, 236311 IAST [baseline] (21.435 ms) : 0, 21435 IAST [candidate] (21.508 ms) : 0, 21508 AppSec [baseline] (176.261 ms) : 0, 176261 AppSec [candidate] (175.458 ms) : 0, 175458 Remote Config [baseline] (664.381 µs) : 0, 664 Remote Config [candidate] (668.878 µs) : 0, 669 Telemetry [baseline] (8.311 ms) : 0, 8311 Telemetry [candidate] (9.05 ms) : 0, 9050 section iast BytebuddyAgent [baseline] (840.19 ms) : 0, 840190 BytebuddyAgent [candidate] (840.396 ms) : 0, 840396 GlobalTracer [baseline] (230.343 ms) : 0, 230343 GlobalTracer [candidate] (230.533 ms) : 0, 230533 IAST [baseline] (23.577 ms) : 0, 23577 IAST [candidate] (22.78 ms) : 0, 22780 AppSec [baseline] (55.147 ms) : 0, 55147 AppSec [candidate] (55.985 ms) : 0, 55985 Remote Config [baseline] (608.489 µs) : 0, 608 Remote Config [candidate] (603.537 µs) : 0, 604 Telemetry [baseline] (8.701 ms) : 0, 8701 Telemetry [candidate] (8.693 ms) : 0, 8693 section profiling BytebuddyAgent [baseline] (712.718 ms) : 0, 712718 BytebuddyAgent [candidate] (710.718 ms) : 0, 710718 GlobalTracer [baseline] (349.868 ms) : 0, 349868 GlobalTracer [candidate] (350.747 ms) : 0, 350747 AppSec [baseline] (54.232 ms) : 0, 54232 AppSec [candidate] (53.553 ms) : 0, 53553 Remote Config [baseline] (705.34 µs) : 0, 705 Remote Config [candidate] (698.157 µs) : 0, 698 Telemetry [baseline] (8.873 ms) : 0, 8873 Telemetry [candidate] (8.989 ms) : 0, 8989 ProfilingAgent [baseline] (96.828 ms) : 0, 96828 ProfilingAgent [candidate] (95.786 ms) : 0, 95786 Profiling [baseline] (96.854 ms) : 0, 96854 Profiling [candidate] (95.81 ms) : 0, 95810 
Loading
Startup time reports for insecure-bank
gantt title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section tracing Agent [baseline] (1.05 s) : 0, 1050359 Total [baseline] (8.731 s) : 0, 8730819 Agent [candidate] (1.044 s) : 0, 1043903 Total [candidate] (8.649 s) : 0, 8649038 section iast Agent [baseline] (1.171 s) : 0, 1170651 Total [baseline] (9.24 s) : 0, 9240231 Agent [candidate] (1.175 s) : 0, 1174926 Total [candidate] (9.254 s) : 0, 9253624 section iast_HARDCODED_SECRET_DISABLED Agent [baseline] (1.173 s) : 0, 1173360 Total [baseline] (9.202 s) : 0, 9201574 Agent [candidate] (1.189 s) : 0, 1189239 Total [candidate] (9.225 s) : 0, 9225055 section iast_TELEMETRY_OFF Agent [baseline] (1.179 s) : 0, 1178853 Total [baseline] (9.252 s) : 0, 9251528 Agent [candidate] (1.189 s) : 0, 1189317 Total [candidate] (9.309 s) : 0, 9308735 
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.05 s -
Agent iast 1.171 s 120.292 ms (11.5%)
Agent iast_HARDCODED_SECRET_DISABLED 1.173 s 123.001 ms (11.7%)
Agent iast_TELEMETRY_OFF 1.179 s 128.493 ms (12.2%)
Total tracing 8.731 s -
Total iast 9.24 s 509.412 ms (5.8%)
Total iast_HARDCODED_SECRET_DISABLED 9.202 s 470.755 ms (5.4%)
Total iast_TELEMETRY_OFF 9.252 s 520.709 ms (6.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.044 s -
Agent iast 1.175 s 131.023 ms (12.6%)
Agent iast_HARDCODED_SECRET_DISABLED 1.189 s 145.336 ms (13.9%)
Agent iast_TELEMETRY_OFF 1.189 s 145.414 ms (13.9%)
Total tracing 8.649 s -
Total iast 9.254 s 604.586 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.225 s 576.017 ms (6.7%)
Total iast_TELEMETRY_OFF 9.309 s 659.697 ms (7.6%)
gantt title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (723.587 ms) : 0, 723587 BytebuddyAgent [candidate] (720.05 ms) : 0, 720050 GlobalTracer [baseline] (241.461 ms) : 0, 241461 GlobalTracer [candidate] (239.637 ms) : 0, 239637 AppSec [baseline] (55.337 ms) : 0, 55337 AppSec [candidate] (54.8 ms) : 0, 54800 Remote Config [baseline] (708.755 µs) : 0, 709 Remote Config [candidate] (672.947 µs) : 0, 673 Telemetry [baseline] (13.184 ms) : 0, 13184 Telemetry [candidate] (12.817 ms) : 0, 12817 section iast BytebuddyAgent [baseline] (836.733 ms) : 0, 836733 BytebuddyAgent [candidate] (840.314 ms) : 0, 840314 GlobalTracer [baseline] (229.595 ms) : 0, 229595 GlobalTracer [candidate] (230.522 ms) : 0, 230522 IAST [baseline] (22.986 ms) : 0, 22986 IAST [candidate] (22.953 ms) : 0, 22953 AppSec [baseline] (56.045 ms) : 0, 56045 AppSec [candidate] (55.899 ms) : 0, 55899 Remote Config [baseline] (611.623 µs) : 0, 612 Remote Config [candidate] (663.206 µs) : 0, 663 Telemetry [baseline] (8.733 ms) : 0, 8733 Telemetry [candidate] (8.714 ms) : 0, 8714 section iast_HARDCODED_SECRET_DISABLED BytebuddyAgent [baseline] (837.346 ms) : 0, 837346 BytebuddyAgent [candidate] (851.336 ms) : 0, 851336 GlobalTracer [baseline] (230.686 ms) : 0, 230686 GlobalTracer [candidate] (232.577 ms) : 0, 232577 IAST [baseline] (23.919 ms) : 0, 23919 IAST [candidate] (23.474 ms) : 0, 23474 AppSec [baseline] (56.001 ms) : 0, 56001 AppSec [candidate] (56.287 ms) : 0, 56287 Remote Config [baseline] (617.134 µs) : 0, 617 Remote Config [candidate] (613.384 µs) : 0, 613 Telemetry [baseline] (8.835 ms) : 0, 8835 Telemetry [candidate] (8.83 ms) : 0, 8830 section iast_TELEMETRY_OFF BytebuddyAgent [baseline] (842.666 ms) : 0, 842666 BytebuddyAgent [candidate] (851.242 ms) : 0, 851242 GlobalTracer [baseline] (231.29 ms) : 0, 231290 GlobalTracer [candidate] (232.885 ms) : 0, 232885 IAST [baseline] (22.721 ms) : 0, 22721 IAST [candidate] (22.832 ms) : 0, 22832 AppSec [baseline] (56.736 ms) : 0, 56736 AppSec [candidate] (56.795 ms) : 0, 56795 Remote Config [baseline] (623.089 µs) : 0, 623 Remote Config [candidate] (632.614 µs) : 0, 633 Telemetry [baseline] (8.697 ms) : 0, 8697 Telemetry [candidate] (8.798 ms) : 0, 8798 
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-03-21T09:21:09 2025-03-21T09:28:56
git_branch master andrea.marziali/jetty-websocket
git_commit_date 1742520091 1742547559
git_commit_sha fe9f968 03a01af
release_version 1.48.0-SNAPSHOT~fe9f968edb 1.48.0-SNAPSHOT~03a01afa7b
start_time 2025-03-21T09:20:55 2025-03-21T09:28:42
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1742549735 1742549735
ci_job_id 858396299 858396299
ci_pipeline_id 59556411 59556411
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-9n9spsyq-project-304-concurrent-1-jvj2855l 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-9n9spsyq-project-304-concurrent-1-jvj2855l 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 14 metrics, 16 unstable metrics.

Request duration reports for insecure-bank
gantt title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section baseline no_agent (382.098 µs) : 362, 402 . : milestone, 382, iast (513.834 µs) : 492, 536 . : milestone, 514, iast_FULL (738.722 µs) : 716, 761 . : milestone, 739, iast_GLOBAL (560.27 µs) : 538, 582 . : milestone, 560, iast_HARDCODED_SECRET_DISABLED (524.252 µs) : 502, 547 . : milestone, 524, iast_INACTIVE (470.198 µs) : 449, 492 . : milestone, 470, iast_TELEMETRY_OFF (503.18 µs) : 481, 525 . : milestone, 503, tracing (458.546 µs) : 438, 479 . : milestone, 459, section candidate no_agent (388.508 µs) : 369, 408 . : milestone, 389, iast (520.596 µs) : 499, 543 . : milestone, 521, iast_FULL (735.614 µs) : 713, 758 . : milestone, 736, iast_GLOBAL (570.884 µs) : 549, 593 . : milestone, 571, iast_HARDCODED_SECRET_DISABLED (521.17 µs) : 499, 543 . : milestone, 521, iast_INACTIVE (474.265 µs) : 453, 496 . : milestone, 474, iast_TELEMETRY_OFF (499.14 µs) : 478, 521 . : milestone, 499, tracing (477.192 µs) : 456, 499 . : milestone, 477, 
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 382.098 µs [362.187 µs, 402.008 µs] -
iast 513.834 µs [491.902 µs, 535.766 µs] 131.736 µs (34.5%)
iast_FULL 738.722 µs [716.447 µs, 760.996 µs] 356.624 µs (93.3%)
iast_GLOBAL 560.27 µs [538.102 µs, 582.438 µs] 178.172 µs (46.6%)
iast_HARDCODED_SECRET_DISABLED 524.252 µs [501.868 µs, 546.635 µs] 142.154 µs (37.2%)
iast_INACTIVE 470.198 µs [448.844 µs, 491.552 µs] 88.1 µs (23.1%)
iast_TELEMETRY_OFF 503.18 µs [481.485 µs, 524.874 µs] 121.082 µs (31.7%)
tracing 458.546 µs [437.897 µs, 479.194 µs] 76.448 µs (20.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 388.508 µs [368.818 µs, 408.198 µs] -
iast 520.596 µs [498.637 µs, 542.556 µs] 132.088 µs (34.0%)
iast_FULL 735.614 µs [713.498 µs, 757.729 µs] 347.106 µs (89.3%)
iast_GLOBAL 570.884 µs [549.07 µs, 592.699 µs] 182.376 µs (46.9%)
iast_HARDCODED_SECRET_DISABLED 521.17 µs [499.357 µs, 542.983 µs] 132.662 µs (34.1%)
iast_INACTIVE 474.265 µs [452.522 µs, 496.008 µs] 85.757 µs (22.1%)
iast_TELEMETRY_OFF 499.14 µs [477.539 µs, 520.741 µs] 110.632 µs (28.5%)
tracing 477.192 µs [455.575 µs, 498.809 µs] 88.684 µs (22.8%)
Request duration reports for petclinic
gantt title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section baseline no_agent (1.364 ms) : 1344, 1384 . : milestone, 1364, appsec (1.738 ms) : 1714, 1762 . : milestone, 1738, appsec_no_iast (1.757 ms) : 1733, 1781 . : milestone, 1757, code_origins (1.698 ms) : 1671, 1725 . : milestone, 1698, iast (1.522 ms) : 1497, 1547 . : milestone, 1522, profiling (1.566 ms) : 1540, 1591 . : milestone, 1566, tracing (1.52 ms) : 1496, 1544 . : milestone, 1520, section candidate no_agent (1.359 ms) : 1339, 1378 . : milestone, 1359, appsec (1.731 ms) : 1708, 1755 . : milestone, 1731, appsec_no_iast (1.75 ms) : 1725, 1774 . : milestone, 1750, code_origins (1.702 ms) : 1675, 1728 . : milestone, 1702, iast (1.518 ms) : 1493, 1542 . : milestone, 1518, profiling (1.533 ms) : 1509, 1556 . : milestone, 1533, tracing (1.498 ms) : 1473, 1524 . : milestone, 1498, 
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.364 ms [1.344 ms, 1.384 ms] -
appsec 1.738 ms [1.714 ms, 1.762 ms] 373.785 µs (27.4%)
appsec_no_iast 1.757 ms [1.733 ms, 1.781 ms] 392.946 µs (28.8%)
code_origins 1.698 ms [1.671 ms, 1.725 ms] 333.98 µs (24.5%)
iast 1.522 ms [1.497 ms, 1.547 ms] 158.178 µs (11.6%)
profiling 1.566 ms [1.54 ms, 1.591 ms] 201.813 µs (14.8%)
tracing 1.52 ms [1.496 ms, 1.544 ms] 156.483 µs (11.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.359 ms [1.339 ms, 1.378 ms] -
appsec 1.731 ms [1.708 ms, 1.755 ms] 372.855 µs (27.4%)
appsec_no_iast 1.75 ms [1.725 ms, 1.774 ms] 391.331 µs (28.8%)
code_origins 1.702 ms [1.675 ms, 1.728 ms] 343.11 µs (25.3%)
iast 1.518 ms [1.493 ms, 1.542 ms] 158.943 µs (11.7%)
profiling 1.533 ms [1.509 ms, 1.556 ms] 174.263 µs (12.8%)
tracing 1.498 ms [1.473 ms, 1.524 ms] 139.63 µs (10.3%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/jetty-websocket
git_commit_date 1742520091 1742547559
git_commit_sha fe9f968 03a01af
release_version 1.48.0-SNAPSHOT~fe9f968edb 1.48.0-SNAPSHOT~03a01afa7b
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1742550301 1742550301
ci_job_id 858396300 858396300
ci_pipeline_id 59556411 59556411
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-yzulyy-j-project-304-concurrent-2-nsa9p0em 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-yzulyy-j-project-304-concurrent-2-nsa9p0em 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 tomcat
gantt title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section baseline no_agent (1.478 ms) : 1467, 1489 . : milestone, 1478, appsec (2.359 ms) : 2315, 2403 . : milestone, 2359, iast (2.132 ms) : 2076, 2188 . : milestone, 2132, iast_GLOBAL (2.169 ms) : 2113, 2225 . : milestone, 2169, profiling (2.46 ms) : 2278, 2643 . : milestone, 2460, tracing (1.97 ms) : 1927, 2013 . : milestone, 1970, section candidate no_agent (1.478 ms) : 1467, 1490 . : milestone, 1478, appsec (2.359 ms) : 2315, 2403 . : milestone, 2359, iast (2.128 ms) : 2072, 2183 . : milestone, 2128, iast_GLOBAL (2.171 ms) : 2115, 2227 . : milestone, 2171, profiling (1.973 ms) : 1929, 2017 . : milestone, 1973, tracing (1.958 ms) : 1916, 2001 . : milestone, 1958, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.467 ms, 1.489 ms] -
appsec 2.359 ms [2.315 ms, 2.403 ms] 881.006 µs (59.6%)
iast 2.132 ms [2.076 ms, 2.188 ms] 654.012 µs (44.2%)
iast_GLOBAL 2.169 ms [2.113 ms, 2.225 ms] 691.108 µs (46.8%)
profiling 2.46 ms [2.278 ms, 2.643 ms] 982.312 µs (66.5%)
tracing 1.97 ms [1.927 ms, 2.013 ms] 491.867 µs (33.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.467 ms, 1.49 ms] -
appsec 2.359 ms [2.315 ms, 2.403 ms] 880.899 µs (59.6%)
iast 2.128 ms [2.072 ms, 2.183 ms] 649.461 µs (43.9%)
iast_GLOBAL 2.171 ms [2.115 ms, 2.227 ms] 692.534 µs (46.9%)
profiling 1.973 ms [1.929 ms, 2.017 ms] 494.807 µs (33.5%)
tracing 1.958 ms [1.916 ms, 2.001 ms] 480.093 µs (32.5%)
Execution time for biojava
gantt title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~03a01afa7b, baseline=1.48.0-SNAPSHOT~fe9f968edb dateFormat X axisFormat %s section baseline no_agent (15.031 s) : 15031000, 15031000 . : milestone, 15031000, appsec (14.955 s) : 14955000, 14955000 . : milestone, 14955000, iast (18.938 s) : 18938000, 18938000 . : milestone, 18938000, iast_GLOBAL (17.878 s) : 17878000, 17878000 . : milestone, 17878000, profiling (14.847 s) : 14847000, 14847000 . : milestone, 14847000, tracing (15.231 s) : 15231000, 15231000 . : milestone, 15231000, section candidate no_agent (15.3 s) : 15300000, 15300000 . : milestone, 15300000, appsec (14.849 s) : 14849000, 14849000 . : milestone, 14849000, iast (18.508 s) : 18508000, 18508000 . : milestone, 18508000, iast_GLOBAL (17.667 s) : 17667000, 17667000 . : milestone, 17667000, profiling (15.042 s) : 15042000, 15042000 . : milestone, 15042000, tracing (15.275 s) : 15275000, 15275000 . : milestone, 15275000, 
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.031 s [15.031 s, 15.031 s] -
appsec 14.955 s [14.955 s, 14.955 s] -76.0 ms (-0.5%)
iast 18.938 s [18.938 s, 18.938 s] 3.907 s (26.0%)
iast_GLOBAL 17.878 s [17.878 s, 17.878 s] 2.847 s (18.9%)
profiling 14.847 s [14.847 s, 14.847 s] -184.0 ms (-1.2%)
tracing 15.231 s [15.231 s, 15.231 s] 200.0 ms (1.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.3 s [15.3 s, 15.3 s] -
appsec 14.849 s [14.849 s, 14.849 s] -451.0 ms (-2.9%)
iast 18.508 s [18.508 s, 18.508 s] 3.208 s (21.0%)
iast_GLOBAL 17.667 s [17.667 s, 17.667 s] 2.367 s (15.5%)
profiling 15.042 s [15.042 s, 15.042 s] -258.0 ms (-1.7%)
tracing 15.275 s [15.275 s, 15.275 s] -25.0 ms (-0.2%)
@amarziali amarziali force-pushed the andrea.marziali/jetty-websocket branch from a83c33a to 49a2bec Compare March 17, 2025 09:05
@amarziali amarziali force-pushed the andrea.marziali/jetty-websocket branch from cb50a9f to 049b1b0 Compare March 17, 2025 11:41
DECORATE.onFrameEnd(closeContext);
}
} else {
delegate.invoke(session, closeReason);
Copy link
Contributor

Choose a reason for hiding this comment

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

Do we need to know if we are missing handlerContext assuming these handlers are successfully installed? I mean, could the fact that handlerContext is null highlight a problem that we would like to know about?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I considered add a logging here however the fact that the context is not there is just before we failed capturing the handshake span (or because the feature is just disabled). So adding a log here did not add valuable information in my opinion

Copy link
Contributor

Choose a reason for hiding this comment

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

I see. Thank you for the explanation.

Copy link
Contributor

@ygree ygree left a comment

Choose a reason for hiding this comment

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

Overall, it looks good to me, with small suggestions on how to improve clarity for the reader.

@amarziali amarziali requested a review from ygree March 21, 2025 09:01
MethodHandleWrappers.OPEN_METHOD_HANDLE,
0,
openHandle,
InstrumentationContext.get(Session.class, HandlerContext.Sender.class),

Choose a reason for hiding this comment

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

It's a pity that we don't rewrite helpers so we could leverage contexts in cases like this 😢

}

@Override
public Map<String, String> adviceShading() {

Choose a reason for hiding this comment

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

Didn't know about this guy, nice!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

it's a gift from @mcculls ❤️

Copy link
Member

@manuel-alvarez-alvarez manuel-alvarez-alvarez left a comment

Choose a reason for hiding this comment

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

LGTM, although a more informed review is needed.

P.S. Great job with the java.lang.invoke work in the PR! 😄

Copy link
Contributor

@ygree ygree left a comment

Choose a reason for hiding this comment

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

Looks good! It was also interesting to see some new instrumentation approaches you used in the PR. Congratulations on completing another WS instrumentation!

@amarziali amarziali merged commit dfe3134 into master Mar 24, 2025
246 of 269 checks passed
@amarziali amarziali deleted the andrea.marziali/jetty-websocket branch March 24, 2025 09:31
@github-actions github-actions bot added this to the 1.48.0 milestone Mar 24, 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: websocket WebSocket Instrumentation type: enhancement Enhancements and improvements

3 participants