Skip to content

Conversation

@amarziali
Copy link
Contributor

What Does This Do

Extend the in-place netty pipeline to trace websocket messages when reactor-netty is used. Spring webflux is composing the pipeline by adding separately frame decoder/encoder hence our instrumentation was not applied correctly.
This applies only to netty 4.1+ (since reactor-netty at worst uses a 4.1+ version). I also did a small refactoring of what was in place

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@amarziali amarziali requested a review from a team as a code owner May 15, 2025 14:09
@github-actions
Copy link
Contributor

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.

@amarziali amarziali added type: feature request inst: spring Spring instrumentation inst: websocket WebSocket Instrumentation labels May 15, 2025
@amarziali amarziali force-pushed the andrea.marziali/reactor-netty-ws branch from 0821079 to 35d1c5c Compare May 15, 2025 14:18
@pr-commenter
Copy link

pr-commenter bot commented May 15, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/reactor-netty-ws
git_commit_date 1747407449 1747418729
git_commit_sha 2dab68d 70b5aa2
release_version 1.50.0-SNAPSHOT~2dab68de32 1.50.0-SNAPSHOT~70b5aa2151
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1747421338 1747421338
ci_job_id 942319088 942319088
ci_pipeline_id 65362423 65362423
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-ucdbooq-project-304-concurrent-0-4zt1iiez 6.8.0-1028-aws #30~22.04.1-Ubuntu SMP Sun Apr 20 06:03:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-ucdbooq-project-304-concurrent-0-4zt1iiez 6.8.0-1028-aws #30~22.04.1-Ubuntu SMP Sun Apr 20 06:03:30 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 54 metrics, 17 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.027 s) : 0, 1026995
Total [baseline] (8.662 s) : 0, 8661803
Agent [candidate] (1.027 s) : 0, 1026779
Total [candidate] (8.634 s) : 0, 8634465
section iast
Agent [baseline] (1.146 s) : 0, 1146012
Total [baseline] (9.186 s) : 0, 9185777
Agent [candidate] (1.149 s) : 0, 1149293
Total [candidate] (9.228 s) : 0, 9227632
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.148 s) : 0, 1147907
Total [baseline] (9.214 s) : 0, 9213617
Agent [candidate] (1.157 s) : 0, 1156938
Total [candidate] (9.162 s) : 0, 9162056
section iast_TELEMETRY_OFF
Agent [baseline] (1.154 s) : 0, 1154453
Total [baseline] (9.195 s) : 0, 9194847
Agent [candidate] (1.143 s) : 0, 1142733
Total [candidate] (9.189 s) : 0, 9188583
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.027 s -
Agent iast 1.146 s 119.017 ms (11.6%)
Agent iast_HARDCODED_SECRET_DISABLED 1.148 s 120.912 ms (11.8%)
Agent iast_TELEMETRY_OFF 1.154 s 127.457 ms (12.4%)
Total tracing 8.662 s -
Total iast 9.186 s 523.975 ms (6.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.214 s 551.815 ms (6.4%)
Total iast_TELEMETRY_OFF 9.195 s 533.045 ms (6.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.027 s -
Agent iast 1.149 s 122.514 ms (11.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.157 s 130.159 ms (12.7%)
Agent iast_TELEMETRY_OFF 1.143 s 115.954 ms (11.3%)
Total tracing 8.634 s -
Total iast 9.228 s 593.166 ms (6.9%)
Total iast_HARDCODED_SECRET_DISABLED 9.162 s 527.59 ms (6.1%)
Total iast_TELEMETRY_OFF 9.189 s 554.117 ms (6.4%)
gantt
    title insecure-bank - break down per module: candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (687.112 ms) : 0, 687112
BytebuddyAgent [candidate] (687.469 ms) : 0, 687469
GlobalTracer [baseline] (241.134 ms) : 0, 241134
GlobalTracer [candidate] (241.67 ms) : 0, 241670
AppSec [baseline] (56.157 ms) : 0, 56157
AppSec [candidate] (55.585 ms) : 0, 55585
Debugger [baseline] (8.299 ms) : 0, 8299
Debugger [candidate] (7.741 ms) : 0, 7741
Remote Config [baseline] (711.144 µs) : 0, 711
Remote Config [candidate] (716.971 µs) : 0, 717
Telemetry [baseline] (9.808 ms) : 0, 9808
Telemetry [candidate] (9.936 ms) : 0, 9936
section iast
BytebuddyAgent [baseline] (799.587 ms) : 0, 799587
BytebuddyAgent [candidate] (801.99 ms) : 0, 801990
GlobalTracer [baseline] (229.84 ms) : 0, 229840
GlobalTracer [candidate] (230.665 ms) : 0, 230665
IAST [baseline] (29.305 ms) : 0, 29305
IAST [candidate] (30.084 ms) : 0, 30084
AppSec [baseline] (49.401 ms) : 0, 49401
AppSec [candidate] (48.683 ms) : 0, 48683
Debugger [baseline] (5.934 ms) : 0, 5934
Debugger [candidate] (5.893 ms) : 0, 5893
Remote Config [baseline] (599.071 µs) : 0, 599
Remote Config [candidate] (610.79 µs) : 0, 611
Telemetry [baseline] (7.874 ms) : 0, 7874
Telemetry [candidate] (7.9 ms) : 0, 7900
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (800.873 ms) : 0, 800873
BytebuddyAgent [candidate] (808.123 ms) : 0, 808123
GlobalTracer [baseline] (230.47 ms) : 0, 230470
GlobalTracer [candidate] (231.889 ms) : 0, 231889
IAST [baseline] (28.284 ms) : 0, 28284
IAST [candidate] (28.619 ms) : 0, 28619
AppSec [baseline] (49.504 ms) : 0, 49504
AppSec [candidate] (50.289 ms) : 0, 50289
Debugger [baseline] (5.908 ms) : 0, 5908
Debugger [candidate] (5.907 ms) : 0, 5907
Remote Config [baseline] (593.539 µs) : 0, 594
Remote Config [candidate] (591.08 µs) : 0, 591
Telemetry [baseline] (7.913 ms) : 0, 7913
Telemetry [candidate] (7.872 ms) : 0, 7872
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (805.443 ms) : 0, 805443
BytebuddyAgent [candidate] (797.419 ms) : 0, 797419
GlobalTracer [baseline] (231.674 ms) : 0, 231674
GlobalTracer [candidate] (229.525 ms) : 0, 229525
IAST [baseline] (24.189 ms) : 0, 24189
IAST [candidate] (23.035 ms) : 0, 23035
AppSec [baseline] (55.016 ms) : 0, 55016
AppSec [candidate] (55.043 ms) : 0, 55043
Debugger [baseline] (6.016 ms) : 0, 6016
Debugger [candidate] (5.924 ms) : 0, 5924
Remote Config [baseline] (614.884 µs) : 0, 615
Remote Config [candidate] (600.001 µs) : 0, 600
Telemetry [baseline] (7.826 ms) : 0, 7826
Telemetry [candidate] (7.737 ms) : 0, 7737
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.021 s) : 0, 1020695
Total [baseline] (10.409 s) : 0, 10408661
Agent [candidate] (1.026 s) : 0, 1026142
Total [candidate] (10.521 s) : 0, 10521246
section appsec
Agent [baseline] (1.164 s) : 0, 1163660
Total [baseline] (10.677 s) : 0, 10677449
Agent [candidate] (1.162 s) : 0, 1161525
Total [candidate] (10.685 s) : 0, 10684827
section iast
Agent [baseline] (1.151 s) : 0, 1150611
Total [baseline] (10.909 s) : 0, 10908821
Agent [candidate] (1.149 s) : 0, 1148915
Total [candidate] (10.943 s) : 0, 10943368
section profiling
Agent [baseline] (1.277 s) : 0, 1277039
Total [baseline] (10.8 s) : 0, 10799721
Agent [candidate] (1.286 s) : 0, 1285675
Total [candidate] (10.823 s) : 0, 10822579
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.021 s -
Agent appsec 1.164 s 142.966 ms (14.0%)
Agent iast 1.151 s 129.916 ms (12.7%)
Agent profiling 1.277 s 256.344 ms (25.1%)
Total tracing 10.409 s -
Total appsec 10.677 s 268.788 ms (2.6%)
Total iast 10.909 s 500.16 ms (4.8%)
Total profiling 10.8 s 391.06 ms (3.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.026 s -
Agent appsec 1.162 s 135.382 ms (13.2%)
Agent iast 1.149 s 122.772 ms (12.0%)
Agent profiling 1.286 s 259.532 ms (25.3%)
Total tracing 10.521 s -
Total appsec 10.685 s 163.582 ms (1.6%)
Total iast 10.943 s 422.122 ms (4.0%)
Total profiling 10.823 s 301.334 ms (2.9%)
gantt
    title petclinic - break down per module: candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (683.384 ms) : 0, 683384
BytebuddyAgent [candidate] (686.473 ms) : 0, 686473
GlobalTracer [baseline] (240.41 ms) : 0, 240410
GlobalTracer [candidate] (241.093 ms) : 0, 241093
AppSec [baseline] (55.264 ms) : 0, 55264
AppSec [candidate] (55.343 ms) : 0, 55343
Debugger [baseline] (7.591 ms) : 0, 7591
Debugger [candidate] (9.836 ms) : 0, 9836
Remote Config [baseline] (701.589 µs) : 0, 702
Remote Config [candidate] (697.649 µs) : 0, 698
Telemetry [baseline] (9.74 ms) : 0, 9740
Telemetry [candidate] (9.072 ms) : 0, 9072
section appsec
BytebuddyAgent [baseline] (702.475 ms) : 0, 702475
BytebuddyAgent [candidate] (700.783 ms) : 0, 700783
GlobalTracer [baseline] (236.918 ms) : 0, 236918
GlobalTracer [candidate] (236.724 ms) : 0, 236724
AppSec [baseline] (175.479 ms) : 0, 175479
AppSec [candidate] (175.271 ms) : 0, 175271
Debugger [baseline] (5.964 ms) : 0, 5964
Debugger [candidate] (5.941 ms) : 0, 5941
Remote Config [baseline] (631.848 µs) : 0, 632
Remote Config [candidate] (629.931 µs) : 0, 630
Telemetry [baseline] (7.793 ms) : 0, 7793
Telemetry [candidate] (7.801 ms) : 0, 7801
IAST [baseline] (21.648 ms) : 0, 21648
IAST [candidate] (21.609 ms) : 0, 21609
section iast
BytebuddyAgent [baseline] (802.666 ms) : 0, 802666
BytebuddyAgent [candidate] (802.003 ms) : 0, 802003
GlobalTracer [baseline] (231.163 ms) : 0, 231163
GlobalTracer [candidate] (230.269 ms) : 0, 230269
AppSec [baseline] (48.883 ms) : 0, 48883
AppSec [candidate] (50.287 ms) : 0, 50287
Debugger [baseline] (5.911 ms) : 0, 5911
Debugger [candidate] (5.89 ms) : 0, 5890
Remote Config [baseline] (602.918 µs) : 0, 603
Remote Config [candidate] (598.672 µs) : 0, 599
Telemetry [baseline] (7.879 ms) : 0, 7879
Telemetry [candidate] (7.947 ms) : 0, 7947
IAST [baseline] (30.001 ms) : 0, 30001
IAST [candidate] (28.301 ms) : 0, 28301
section profiling
BytebuddyAgent [baseline] (672.835 ms) : 0, 672835
BytebuddyAgent [candidate] (677.851 ms) : 0, 677851
GlobalTracer [baseline] (373.625 ms) : 0, 373625
GlobalTracer [candidate] (375.77 ms) : 0, 375770
AppSec [baseline] (61.842 ms) : 0, 61842
AppSec [candidate] (62.031 ms) : 0, 62031
Debugger [baseline] (6.301 ms) : 0, 6301
Debugger [candidate] (6.28 ms) : 0, 6280
Remote Config [baseline] (670.04 µs) : 0, 670
Remote Config [candidate] (658.669 µs) : 0, 659
Telemetry [baseline] (8.226 ms) : 0, 8226
Telemetry [candidate] (8.29 ms) : 0, 8290
ProfilingAgent [baseline] (102.802 ms) : 0, 102802
ProfilingAgent [candidate] (103.73 ms) : 0, 103730
Profiling [baseline] (102.825 ms) : 0, 102825
Profiling [candidate] (103.754 ms) : 0, 103754
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-05-16T18:19:23 2025-05-16T18:27:08
git_branch master andrea.marziali/reactor-netty-ws
git_commit_date 1747407449 1747418729
git_commit_sha 2dab68d 70b5aa2
release_version 1.50.0-SNAPSHOT~2dab68de32 1.50.0-SNAPSHOT~70b5aa2151
start_time 2025-05-16T18:19:09 2025-05-16T18:26:54
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1747420428 1747420428
ci_job_id 942319089 942319089
ci_pipeline_id 65362423 65362423
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-lrzlpyic-project-304-concurrent-0-7cruhw2g 6.8.0-1028-aws #30~22.04.1-Ubuntu SMP Sun Apr 20 06:03:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-lrzlpyic-project-304-concurrent-0-7cruhw2g 6.8.0-1028-aws #30~22.04.1-Ubuntu SMP Sun Apr 20 06:03:30 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 12 metrics, 18 unstable metrics.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.352 ms) : 1332, 1372
.   : milestone, 1352,
appsec (1.738 ms) : 1714, 1762
.   : milestone, 1738,
appsec_no_iast (1.734 ms) : 1710, 1757
.   : milestone, 1734,
code_origins (1.662 ms) : 1635, 1689
.   : milestone, 1662,
iast (1.523 ms) : 1499, 1548
.   : milestone, 1523,
profiling (1.511 ms) : 1486, 1536
.   : milestone, 1511,
tracing (1.502 ms) : 1478, 1526
.   : milestone, 1502,
section candidate
no_agent (1.362 ms) : 1342, 1381
.   : milestone, 1362,
appsec (1.727 ms) : 1704, 1750
.   : milestone, 1727,
appsec_no_iast (1.736 ms) : 1713, 1760
.   : milestone, 1736,
code_origins (1.701 ms) : 1674, 1727
.   : milestone, 1701,
iast (1.52 ms) : 1496, 1543
.   : milestone, 1520,
profiling (1.555 ms) : 1530, 1581
.   : milestone, 1555,
tracing (1.501 ms) : 1477, 1526
.   : milestone, 1501,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.352 ms [1.332 ms, 1.372 ms] -
appsec 1.738 ms [1.714 ms, 1.762 ms] 386.078 µs (28.6%)
appsec_no_iast 1.734 ms [1.71 ms, 1.757 ms] 381.644 µs (28.2%)
code_origins 1.662 ms [1.635 ms, 1.689 ms] 309.572 µs (22.9%)
iast 1.523 ms [1.499 ms, 1.548 ms] 171.274 µs (12.7%)
profiling 1.511 ms [1.486 ms, 1.536 ms] 158.884 µs (11.8%)
tracing 1.502 ms [1.478 ms, 1.526 ms] 149.819 µs (11.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.362 ms [1.342 ms, 1.381 ms] -
appsec 1.727 ms [1.704 ms, 1.75 ms] 365.417 µs (26.8%)
appsec_no_iast 1.736 ms [1.713 ms, 1.76 ms] 374.881 µs (27.5%)
code_origins 1.701 ms [1.674 ms, 1.727 ms] 339.151 µs (24.9%)
iast 1.52 ms [1.496 ms, 1.543 ms] 158.103 µs (11.6%)
profiling 1.555 ms [1.53 ms, 1.581 ms] 193.801 µs (14.2%)
tracing 1.501 ms [1.477 ms, 1.526 ms] 139.723 µs (10.3%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32
    dateFormat X
    axisFormat %s
section baseline
no_agent (388.651 µs) : 369, 408
.   : milestone, 389,
iast (524.93 µs) : 503, 547
.   : milestone, 525,
iast_FULL (741.323 µs) : 719, 763
.   : milestone, 741,
iast_GLOBAL (565.614 µs) : 543, 588
.   : milestone, 566,
iast_HARDCODED_SECRET_DISABLED (527.065 µs) : 504, 550
.   : milestone, 527,
iast_INACTIVE (471.734 µs) : 449, 494
.   : milestone, 472,
iast_TELEMETRY_OFF (522.252 µs) : 499, 546
.   : milestone, 522,
tracing (461.254 µs) : 439, 483
.   : milestone, 461,
section candidate
no_agent (391.695 µs) : 372, 412
.   : milestone, 392,
iast (515.21 µs) : 492, 538
.   : milestone, 515,
iast_FULL (744.434 µs) : 722, 766
.   : milestone, 744,
iast_GLOBAL (575.155 µs) : 553, 597
.   : milestone, 575,
iast_HARDCODED_SECRET_DISABLED (526.772 µs) : 504, 549
.   : milestone, 527,
iast_INACTIVE (469.298 µs) : 446, 493
.   : milestone, 469,
iast_TELEMETRY_OFF (519.298 µs) : 497, 542
.   : milestone, 519,
tracing (466.503 µs) : 444, 489
.   : milestone, 467,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 388.651 µs [369.121 µs, 408.181 µs] -
iast 524.93 µs [502.721 µs, 547.139 µs] 136.279 µs (35.1%)
iast_FULL 741.323 µs [719.455 µs, 763.19 µs] 352.672 µs (90.7%)
iast_GLOBAL 565.614 µs [543.192 µs, 588.036 µs] 176.963 µs (45.5%)
iast_HARDCODED_SECRET_DISABLED 527.065 µs [504.466 µs, 549.665 µs] 138.414 µs (35.6%)
iast_INACTIVE 471.734 µs [449.212 µs, 494.257 µs] 83.083 µs (21.4%)
iast_TELEMETRY_OFF 522.252 µs [499.002 µs, 545.501 µs] 133.601 µs (34.4%)
tracing 461.254 µs [439.289 µs, 483.219 µs] 72.603 µs (18.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 391.695 µs [371.582 µs, 411.808 µs] -
iast 515.21 µs [492.004 µs, 538.416 µs] 123.515 µs (31.5%)
iast_FULL 744.434 µs [722.414 µs, 766.454 µs] 352.739 µs (90.1%)
iast_GLOBAL 575.155 µs [552.989 µs, 597.321 µs] 183.46 µs (46.8%)
iast_HARDCODED_SECRET_DISABLED 526.772 µs [504.362 µs, 549.181 µs] 135.076 µs (34.5%)
iast_INACTIVE 469.298 µs [446.079 µs, 492.517 µs] 77.603 µs (19.8%)
iast_TELEMETRY_OFF 519.298 µs [496.65 µs, 541.945 µs] 127.602 µs (32.6%)
tracing 466.503 µs [443.826 µs, 489.18 µs] 74.807 µs (19.1%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/reactor-netty-ws
git_commit_date 1747407449 1747418729
git_commit_sha 2dab68d 70b5aa2
release_version 1.50.0-SNAPSHOT~2dab68de32 1.50.0-SNAPSHOT~70b5aa2151
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1747420958 1747420958
ci_job_id 942319091 942319091
ci_pipeline_id 65362423 65362423
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-luwakes2-project-304-concurrent-0-if0f1l9q 6.8.0-1028-aws #30~22.04.1-Ubuntu SMP Sun Apr 20 06:03:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-luwakes2-project-304-concurrent-0-if0f1l9q 6.8.0-1028-aws #30~22.04.1-Ubuntu SMP Sun Apr 20 06:03:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

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

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.48 ms) : 1469, 1492
.   : milestone, 1480,
appsec (2.405 ms) : 2356, 2455
.   : milestone, 2405,
iast (2.18 ms) : 2119, 2242
.   : milestone, 2180,
iast_GLOBAL (2.227 ms) : 2165, 2290
.   : milestone, 2227,
profiling (2.046 ms) : 1995, 2096
.   : milestone, 2046,
tracing (2.007 ms) : 1960, 2055
.   : milestone, 2007,
section candidate
no_agent (1.476 ms) : 1465, 1488
.   : milestone, 1476,
appsec (2.404 ms) : 2355, 2453
.   : milestone, 2404,
iast (2.184 ms) : 2122, 2246
.   : milestone, 2184,
iast_GLOBAL (2.227 ms) : 2165, 2289
.   : milestone, 2227,
profiling (2.052 ms) : 2002, 2102
.   : milestone, 2052,
tracing (2.01 ms) : 1962, 2058
.   : milestone, 2010,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.48 ms [1.469 ms, 1.492 ms] -
appsec 2.405 ms [2.356 ms, 2.455 ms] 924.995 µs (62.5%)
iast 2.18 ms [2.119 ms, 2.242 ms] 700.135 µs (47.3%)
iast_GLOBAL 2.227 ms [2.165 ms, 2.29 ms] 746.91 µs (50.5%)
profiling 2.046 ms [1.995 ms, 2.096 ms] 565.213 µs (38.2%)
tracing 2.007 ms [1.96 ms, 2.055 ms] 526.852 µs (35.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.465 ms, 1.488 ms] -
appsec 2.404 ms [2.355 ms, 2.453 ms] 928.021 µs (62.9%)
iast 2.184 ms [2.122 ms, 2.246 ms] 707.596 µs (47.9%)
iast_GLOBAL 2.227 ms [2.165 ms, 2.289 ms] 750.9 µs (50.9%)
profiling 2.052 ms [2.002 ms, 2.102 ms] 575.72 µs (39.0%)
tracing 2.01 ms [1.962 ms, 2.058 ms] 533.939 µs (36.2%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~70b5aa2151, baseline=1.50.0-SNAPSHOT~2dab68de32
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.912 s) : 14912000, 14912000
.   : milestone, 14912000,
appsec (14.718 s) : 14718000, 14718000
.   : milestone, 14718000,
iast (18.817 s) : 18817000, 18817000
.   : milestone, 18817000,
iast_GLOBAL (18.015 s) : 18015000, 18015000
.   : milestone, 18015000,
profiling (14.793 s) : 14793000, 14793000
.   : milestone, 14793000,
tracing (15.241 s) : 15241000, 15241000
.   : milestone, 15241000,
section candidate
no_agent (14.961 s) : 14961000, 14961000
.   : milestone, 14961000,
appsec (14.864 s) : 14864000, 14864000
.   : milestone, 14864000,
iast (18.76 s) : 18760000, 18760000
.   : milestone, 18760000,
iast_GLOBAL (17.857 s) : 17857000, 17857000
.   : milestone, 17857000,
profiling (14.815 s) : 14815000, 14815000
.   : milestone, 14815000,
tracing (14.992 s) : 14992000, 14992000
.   : milestone, 14992000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.912 s [14.912 s, 14.912 s] -
appsec 14.718 s [14.718 s, 14.718 s] -194.0 ms (-1.3%)
iast 18.817 s [18.817 s, 18.817 s] 3.905 s (26.2%)
iast_GLOBAL 18.015 s [18.015 s, 18.015 s] 3.103 s (20.8%)
profiling 14.793 s [14.793 s, 14.793 s] -119.0 ms (-0.8%)
tracing 15.241 s [15.241 s, 15.241 s] 329.0 ms (2.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.961 s [14.961 s, 14.961 s] -
appsec 14.864 s [14.864 s, 14.864 s] -97.0 ms (-0.6%)
iast 18.76 s [18.76 s, 18.76 s] 3.799 s (25.4%)
iast_GLOBAL 17.857 s [17.857 s, 17.857 s] 2.896 s (19.4%)
profiling 14.815 s [14.815 s, 14.815 s] -146.0 ms (-1.0%)
tracing 14.992 s [14.992 s, 14.992 s] 31.0 ms (0.2%)

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 to me!

@amarziali amarziali force-pushed the andrea.marziali/reactor-netty-ws branch from 35d1c5c to 8448b8b Compare May 16, 2025 14:17
@amarziali amarziali enabled auto-merge (squash) May 16, 2025 14:17
@amarziali amarziali merged commit a33e422 into master May 16, 2025
568 of 587 checks passed
@amarziali amarziali deleted the andrea.marziali/reactor-netty-ws branch May 16, 2025 19:24
@github-actions github-actions bot added this to the 1.50.0 milestone May 16, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jun 20, 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.49.0` -> `1.50.0` |

---

### Release Notes

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.50.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.50.0):
1.50.0

### Deprecation Notice

> \[!NOTE]
> `DD_RUNTIME_ID_ENABLED` has been deprecated and will be removed in
future releases. Please use `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED`
instead.

### Components

#### Application Security Management (WAF)

- 🐛 Add String length truncation limit to ObjectIntrospector and
update truncation metrics
([#&#8203;8825](DataDog/dd-trace-java#8825) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Adapt standalone ASM to support API Security
([#&#8203;8804](DataDog/dd-trace-java#8804) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Add appsec.waf.input\_truncated metric
([#&#8203;8791](DataDog/dd-trace-java#8791) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request body collection
([#&#8203;8748](DataDog/dd-trace-java#8748) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request/response headers collection
([#&#8203;8724](DataDog/dd-trace-java#8724) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Build & Tooling

- ✨ Add artifacts to public s3 bucket
([#&#8203;8947](DataDog/dd-trace-java#8947) -
[@&#8203;randomanderson](https://github.com/randomanderson))

#### Continuous Integration Visibility

- ✨ Improve PR information building
([#&#8203;8908](DataDog/dd-trace-java#8908) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Truncate span stack traces when Test Optimization is
enabled
([#&#8203;8903](DataDog/dd-trace-java#8903) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Ensure auto-detected service name is the same for every process
in the same build
([#&#8203;8902](DataDog/dd-trace-java#8902) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Use tag as fallback in api requests if no branch is available
([#&#8203;8876](DataDog/dd-trace-java#8876) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add support for JUnit 5.13-RC1
([#&#8203;8865](DataDog/dd-trace-java#8865),
[#&#8203;8871](DataDog/dd-trace-java#8871) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement attempt to fix v3 and v4 and bump capability
version
([#&#8203;8824](DataDog/dd-trace-java#8824) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🧹 Align retry logic for all test framework instrumentations
([#&#8203;8803](DataDog/dd-trace-java#8803) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Always build ci workspace without trailing separator
([#&#8203;8788](DataDog/dd-trace-java#8788) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add commit discrepancies telemetry when building repository
git information
([#&#8203;8763](DataDog/dd-trace-java#8763) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Data Streams Monitoring

- 💡 Surface process tags in dsm payloads and use them for base hash
calculation
([#&#8203;8836](DataDog/dd-trace-java#8836) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Dynamic Instrumentation

- ✨ Optimized allocations for collection filter functions
([#&#8203;8896](DataDog/dd-trace-java#8896) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix SymDB upload size check
([#&#8203;8887](DataDog/dd-trace-java#8887) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for Set in filter function
([#&#8203;8873](DataDog/dd-trace-java#8873) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for isDefined in log template
([#&#8203;8859](DataDog/dd-trace-java#8859) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix Max captured frames for Exception Replay
([#&#8203;8856](DataDog/dd-trace-java#8856) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Remove static inherited fields collection
([#&#8203;8832](DataDog/dd-trace-java#8832) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 💡 Add process tags to dynamic instrumentation intake payload
([#&#8203;8779](DataDog/dd-trace-java#8779) -
[@&#8203;amarziali](https://github.com/amarziali))

#### GraalVM native-image

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Add JMXFetch support for GraalVM Native
([#&#8203;8569](DataDog/dd-trace-java#8569) -
[@&#8203;ygree](https://github.com/ygree))

#### JMX fetch

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))

#### Library Injection

- ✨ Deny oracle db jvm based tools
([#&#8203;8909](DataDog/dd-trace-java#8909) -
[@&#8203;bric3](https://github.com/bric3))

#### OpenTracing

- 🐛 Fix OT packaging for exception replay
([#&#8203;8912](DataDog/dd-trace-java#8912) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### Profiling

- ✨ Bump ddprof to 1.27.0
([#&#8203;8893](DataDog/dd-trace-java#8893) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- Properly handle the adaptive sampling interval overflow by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#213
- Fix [#&#8203;200](DataDog/dd-trace-java#200)
Crash related to aligned\_alloc and free in context by
[@&#8203;yanglong1010](https://github.com/yanglong1010) in
DataDog/java-profiler#208
- Explicitly initialize empty context page by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#210
- Re-connect crash recursion protection with VM stackwalker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#214
- ✨ Enable ZSTD compression for profiling
([#&#8203;8862](DataDog/dd-trace-java#8862) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 💡 Collect process tags for profiling upload requests
([#&#8203;8780](DataDog/dd-trace-java#8780) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Telemetry

- 💡 Surface process tags on telemetry payloads
([#&#8203;8837](DataDog/dd-trace-java#8837) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Trace context propagation

- ✨ Migrating all HttpClient Instrumentations to Inject Full
Context
([#&#8203;8826](DataDog/dd-trace-java#8826) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Migrating all HttpServer Instrumentations to Extract full
Context
([#&#8203;8820](DataDog/dd-trace-java#8820) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer core

- ✨⚡ Skip JAXB generated classes classloader
([#&#8203;9003](DataDog/dd-trace-java#9003) -
[@&#8203;bric3](https://github.com/bric3))
- ✨ Add DD\_RUNTIME\_METRICS\_RUNTIME\_ID\_ENABLED alias for
runtime id generation
([#&#8203;8981](DataDog/dd-trace-java#8981) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Use resolved address for peer.hostname when available without
hitting the cache
([#&#8203;8915](DataDog/dd-trace-java#8915) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface server name process tag for tomcat
([#&#8203;8894](DataDog/dd-trace-java#8894) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface websphere cell and server name on process tags
([#&#8203;8880](DataDog/dd-trace-java#8880) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Added special lightweight pre-main class that skips
installation on incompatible JVMs.
([#&#8203;8855](DataDog/dd-trace-java#8855) -
[@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD))
- 💡 Add entrypoint type to process tags
([#&#8203;8839](DataDog/dd-trace-java#8839) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Notify listeners when the scope top changes after switching
scope stacks
([#&#8203;8797](DataDog/dd-trace-java#8797) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Read hsperfdata for Java PIDs if jvmstat is unavailable
([#&#8203;8792](DataDog/dd-trace-java#8792) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Turn JDK socket support on by default
([#&#8203;8752](DataDog/dd-trace-java#8752) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Simplify context propagation
([#&#8203;8719](DataDog/dd-trace-java#8719) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Add JSON parsing support
([#&#8203;8579](DataDog/dd-trace-java#8579) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer internal logging

- ✨ Fix printing format of span identifiers
([#&#8203;8897](DataDog/dd-trace-java#8897) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Tracer public API

- 💡 Track the source of installation
([#&#8203;8956](DataDog/dd-trace-java#8956) -
[@&#8203;mabdinur](https://github.com/mabdinur))
- ✨ Enforce size limit on application\_monitoring.yaml files
([#&#8203;8789](DataDog/dd-trace-java#8789) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Enabling baggage cache to support limits and non-ascii
characters
([#&#8203;8713](DataDog/dd-trace-java#8713) -
[@&#8203;mhlidd](https://github.com/mhlidd))

### Instrumentations

#### AWS Lambda instrumentation

- ✨ Pass Lambda Request ID to Extension
([#&#8203;8814](DataDog/dd-trace-java#8814) -
[@&#8203;nhulston](https://github.com/nhulston))

#### Core Java language instrumentation

- ✨ Ensure ClassloadingInstrumentation is always applied even
with `DD_TRACE_ENABLED=false`
([#&#8203;8863](DataDog/dd-trace-java#8863) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Eclipse Vert.x instrumentation

- 🐛 Do not override route with / in vertx instrumentation
([#&#8203;8881](DataDog/dd-trace-java#8881) -
[@&#8203;vandonr](https://github.com/vandonr))

#### IBM Liberty

- 🐛 Fix error mark on http status for IBM liberty
([#&#8203;8822](DataDog/dd-trace-java#8822) -
[@&#8203;amarziali](https://github.com/amarziali))

#### JDBC instrumentation

- 🐛 Do not prepend DBM <> APM trace comment in SQLCommenter if there
is a pg plan hint
([#&#8203;8864](DataDog/dd-trace-java#8864) -
[@&#8203;edengorevoy](https://github.com/edengorevoy))

#### JMS instrumentation

- ✨ Add jms as an extra integration name where there is JMS
involved
([#&#8203;8933](DataDog/dd-trace-java#8933) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Kotlin instrumentation

- ✨ Enable kotlin\_coroutine integration by default
([#&#8203;8848](DataDog/dd-trace-java#8848) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🧹 Rework Kotlin coroutines instrumentation around coroutine
context
([#&#8203;8774](DataDog/dd-trace-java#8774) -
[@&#8203;mcculls](https://github.com/mcculls))

#### OpenTelemetry instrumentation

- 🐛 Support WithSpan inheritContext attribute
([#&#8203;8858](DataDog/dd-trace-java#8858) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Play Framework instrumentation

- 🐛 Fix the Play Framework's span resource name priority so that the
client JAX-RS 404 cannot override it
([#&#8203;8591](DataDog/dd-trace-java#8591) -
[@&#8203;ygree](https://github.com/ygree))

#### Quarkus Instrumentation

- 🐛 Ignore quarkus jaxrs stubs and cdi wrapper proxies
([#&#8203;8891](DataDog/dd-trace-java#8891) -
[@&#8203;amarziali](https://github.com/amarziali))

#### ServiceTalk

- ✨ Improve ServiceTalk Captured Context API Instrumentation
for v0.42.56+
([#&#8203;8821](DataDog/dd-trace-java#8821) -
[@&#8203;ygree](https://github.com/ygree))

#### Spring instrumentation

- ✨ Supporting Baggage for Instrumentations used in Weblog
Tests
([#&#8203;8773](DataDog/dd-trace-java#8773) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### WebSocket Instrumentation

- 💡 Trace websocket for spring webflux reactive handlers
([#&#8203;8831](DataDog/dd-trace-java#8831) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡:test\_tube: WebSocket support for Netty
([#&#8203;8632](DataDog/dd-trace-java#8632) -
[@&#8203;ValentinZakharov](https://github.com/ValentinZakharov))

#### Zio Instrumentation

- 🧹 Cleanup Zio fiber instrumentation to avoid repeated activation
of continuation
([#&#8203;8798](DataDog/dd-trace-java#8798) -
[@&#8203;mcculls](https://github.com/mcculls))

</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**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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: 9207366cdb6a1bd098082305d354a0a3c4622d7a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: spring Spring instrumentation inst: websocket WebSocket Instrumentation type: feature request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants