Skip to content

Support async servlet for RUM injection - #9333

Merged
amarziali merged 2 commits into
masterfrom
andrea.marziali/rum-servlet-async
Aug 8, 2025
Merged

Support async servlet for RUM injection#9333
amarziali merged 2 commits into
masterfrom
andrea.marziali/rum-servlet-async

Conversation

@amarziali

Copy link
Copy Markdown
Contributor

What Does This Do

Support RUM injection also for async servlet 3+

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@amarziali
amarziali requested review from a teamAugust 7, 2025 11:28
@amarzialiamarziali added type: feature Enhancements and improvements comp: rum Realtime User Monitoring labels Aug 7, 2025
@datadog-official

datadog-officialBot commented Aug 7, 2025

Copy link
Copy Markdown
Contributor

Code coverage: total 57.36%, base diff 0.05%, patch 36.36% (view details)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 54d6a7e | Docs | Was this helpful? Give us feedback!

@pr-commenter

pr-commenterBot commented Aug 7, 2025

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterandrea.marziali/rum-servlet-async
git_commit_date17546469271754658007
git_commit_shaaa86f1554d6a7e
release_version1.53.0-SNAPSHOT~aa86f15c9b1.53.0-SNAPSHOT~54d6a7ec25
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17546598011754659801
ci_job_id10712851561071285156
ci_pipeline_id7310302973103029
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-mb5uukk1 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-mb5uukk1 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
moduleAgentAgent
parentNoneNone

Summary

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

Startup time reports for insecure-bank
gantt
title insecure-bank - global startup overhead: candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.054 s) : 0, 1053783
Total [baseline] (8.583 s) : 0, 8583077
Agent [candidate] (1.049 s) : 0, 1048711
Total [candidate] (8.596 s) : 0, 8596178
section iast
Agent [baseline] (1.173 s) : 0, 1173467
Total [baseline] (9.304 s) : 0, 9303962
Agent [candidate] (1.177 s) : 0, 1177267
Total [candidate] (9.285 s) : 0, 9284699
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.054 s-
Agentiast1.173 s119.684 ms (11.4%)
Totaltracing8.583 s-
Totaliast9.304 s720.884 ms (8.4%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.049 s-
Agentiast1.177 s128.556 ms (12.3%)
Totaltracing8.596 s-
Totaliast9.285 s688.521 ms (8.0%)
gantt
title insecure-bank - break down per module: candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.438 ms) : 0, 1438
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (737.336 ms) : 0, 737336
BytebuddyAgent [candidate] (735.904 ms) : 0, 735904
GlobalTracer [baseline] (243.66 ms) : 0, 243660
GlobalTracer [candidate] (242.051 ms) : 0, 242051
AppSec [baseline] (30.318 ms) : 0, 30318
AppSec [candidate] (30.143 ms) : 0, 30143
Debugger [baseline] (6.08 ms) : 0, 6080
Debugger [candidate] (6.024 ms) : 0, 6024
Remote Config [baseline] (642.947 µs) : 0, 643
Remote Config [candidate] (640.949 µs) : 0, 641
Telemetry [baseline] (12.577 ms) : 0, 12577
Telemetry [candidate] (11.482 ms) : 0, 11482
section iast
crashtracking [baseline] (1.423 ms) : 0, 1423
crashtracking [candidate] (1.418 ms) : 0, 1418
BytebuddyAgent [baseline] (847.062 ms) : 0, 847062
BytebuddyAgent [candidate] (849.939 ms) : 0, 849939
GlobalTracer [baseline] (232.193 ms) : 0, 232193
GlobalTracer [candidate] (232.734 ms) : 0, 232734
AppSec [baseline] (27.978 ms) : 0, 27978
AppSec [candidate] (28.169 ms) : 0, 28169
Debugger [baseline] (7.426 ms) : 0, 7426
Debugger [candidate] (5.797 ms) : 0, 5797
Remote Config [baseline] (583.245 µs) : 0, 583
Remote Config [candidate] (577.182 µs) : 0, 577
Telemetry [baseline] (8.261 ms) : 0, 8261
Telemetry [candidate] (8.367 ms) : 0, 8367
IAST [baseline] (27.563 ms) : 0, 27563
IAST [candidate] (29.402 ms) : 0, 29402
Loading
Startup time reports for petclinic
gantt
title petclinic - global startup overhead: candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.05 s) : 0, 1049791
Total [baseline] (10.704 s) : 0, 10704224
Agent [candidate] (1.051 s) : 0, 1051015
Total [candidate] (10.732 s) : 0, 10732320
section appsec
Agent [baseline] (1.219 s) : 0, 1218903
Total [baseline] (10.745 s) : 0, 10744861
Agent [candidate] (1.227 s) : 0, 1227209
Total [candidate] (10.737 s) : 0, 10736896
section iast
Agent [baseline] (1.18 s) : 0, 1180267
Total [baseline] (10.916 s) : 0, 10915565
Agent [candidate] (1.175 s) : 0, 1174826
Total [candidate] (10.958 s) : 0, 10957715
section profiling
Agent [baseline] (1.196 s) : 0, 1195762
Total [baseline] (10.876 s) : 0, 10875666
Agent [candidate] (1.192 s) : 0, 1192469
Total [candidate] (10.832 s) : 0, 10831787
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.05 s-
Agentappsec1.219 s169.112 ms (16.1%)
Agentiast1.18 s130.476 ms (12.4%)
Agentprofiling1.196 s145.971 ms (13.9%)
Totaltracing10.704 s-
Totalappsec10.745 s40.637 ms (0.4%)
Totaliast10.916 s211.341 ms (2.0%)
Totalprofiling10.876 s171.442 ms (1.6%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.051 s-
Agentappsec1.227 s176.194 ms (16.8%)
Agentiast1.175 s123.812 ms (11.8%)
Agentprofiling1.192 s141.454 ms (13.5%)
Totaltracing10.732 s-
Totalappsec10.737 s4.576 ms (0.0%)
Totaliast10.958 s225.396 ms (2.1%)
Totalprofiling10.832 s99.467 ms (0.9%)
gantt
title petclinic - break down per module: candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.439 ms) : 0, 1439
crashtracking [candidate] (1.439 ms) : 0, 1439
BytebuddyAgent [baseline] (735.591 ms) : 0, 735591
BytebuddyAgent [candidate] (735.996 ms) : 0, 735996
GlobalTracer [baseline] (243.159 ms) : 0, 243159
GlobalTracer [candidate] (243.569 ms) : 0, 243569
AppSec [baseline] (30.311 ms) : 0, 30311
AppSec [candidate] (30.543 ms) : 0, 30543
Debugger [baseline] (6.055 ms) : 0, 6055
Debugger [candidate] (6.083 ms) : 0, 6083
Remote Config [baseline] (657.037 µs) : 0, 657
Remote Config [candidate] (651.3 µs) : 0, 651
Telemetry [baseline] (11.553 ms) : 0, 11553
Telemetry [candidate] (11.615 ms) : 0, 11615
section appsec
crashtracking [baseline] (1.423 ms) : 0, 1423
crashtracking [candidate] (1.445 ms) : 0, 1445
BytebuddyAgent [baseline] (752.575 ms) : 0, 752575
BytebuddyAgent [candidate] (758.824 ms) : 0, 758824
GlobalTracer [baseline] (234.851 ms) : 0, 234851
GlobalTracer [candidate] (236.124 ms) : 0, 236124
AppSec [baseline] (166.972 ms) : 0, 166972
AppSec [candidate] (169.041 ms) : 0, 169041
Debugger [baseline] (8.016 ms) : 0, 8016
Debugger [candidate] (6.434 ms) : 0, 6434
Remote Config [baseline] (609.171 µs) : 0, 609
Remote Config [candidate] (635.458 µs) : 0, 635
Telemetry [baseline] (9.867 ms) : 0, 9867
Telemetry [candidate] (9.898 ms) : 0, 9898
IAST [baseline] (23.585 ms) : 0, 23585
IAST [candidate] (23.686 ms) : 0, 23686
section iast
crashtracking [baseline] (1.439 ms) : 0, 1439
crashtracking [candidate] (1.429 ms) : 0, 1429
BytebuddyAgent [baseline] (851.383 ms) : 0, 851383
BytebuddyAgent [candidate] (847.87 ms) : 0, 847870
GlobalTracer [baseline] (233.717 ms) : 0, 233717
GlobalTracer [candidate] (233.183 ms) : 0, 233183
AppSec [baseline] (28.44 ms) : 0, 28440
AppSec [candidate] (25.899 ms) : 0, 25899
Debugger [baseline] (8.353 ms) : 0, 8353
Debugger [candidate] (5.766 ms) : 0, 5766
Remote Config [baseline] (579.634 µs) : 0, 580
Remote Config [candidate] (567.241 µs) : 0, 567
Telemetry [baseline] (8.331 ms) : 0, 8331
Telemetry [candidate] (8.329 ms) : 0, 8329
IAST [baseline] (26.898 ms) : 0, 26898
IAST [candidate] (30.81 ms) : 0, 30810
section profiling
ProfilingAgent [baseline] (108.184 ms) : 0, 108184
ProfilingAgent [candidate] (107.092 ms) : 0, 107092
crashtracking [baseline] (1.405 ms) : 0, 1405
crashtracking [candidate] (1.387 ms) : 0, 1387
BytebuddyAgent [baseline] (762.552 ms) : 0, 762552
BytebuddyAgent [candidate] (760.369 ms) : 0, 760369
GlobalTracer [baseline] (221.765 ms) : 0, 221765
GlobalTracer [candidate] (221.327 ms) : 0, 221327
AppSec [baseline] (30.039 ms) : 0, 30039
AppSec [candidate] (29.793 ms) : 0, 29793
Debugger [baseline] (6.953 ms) : 0, 6953
Debugger [candidate] (6.312 ms) : 0, 6312
Remote Config [baseline] (665.41 µs) : 0, 665
Remote Config [candidate] (702.038 µs) : 0, 702
Telemetry [baseline] (14.76 ms) : 0, 14760
Telemetry [candidate] (16.094 ms) : 0, 16094
Profiling [baseline] (108.827 ms) : 0, 108827
Profiling [candidate] (107.752 ms) : 0, 107752
Loading

Load

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterandrea.marziali/rum-servlet-async
git_commit_date17546469271754658007
git_commit_shaaa86f1554d6a7e
release_version1.53.0-SNAPSHOT~aa86f15c9b1.53.0-SNAPSHOT~54d6a7ec25
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17546594051754659405
ci_job_id10712851581071285158
ci_pipeline_id7310302973103029
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-1-1klzuc9v 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-1-1klzuc9v 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

scenarioΔ mean http_req_durationΔ mean throughputcandidate mean http_req_durationcandidate mean throughputbaseline mean http_req_durationbaseline mean throughput
scenario:load:petclinic:tracing:high_loadworse
[+1.531ms; +2.321ms] or [+3.583%; +5.431%]
unstable
[-12.085op/s; +2.710op/s] or [-11.040%; +2.476%]
44.663ms104.775op/s42.737ms109.463op/s
scenario:load:petclinic:appsec:high_loadbetter
[-2.374ms; -1.474ms] or [-4.863%; -3.019%]
unstable
[-3.101op/s; +10.826op/s] or [-3.235%; +11.292%]
46.897ms99.737op/s48.821ms95.875op/s
Request duration reports for petclinic
gantt
title petclinic - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section baseline
no_agent (37.026 ms) : 36723, 37329
. : milestone, 37026,
appsec (48.821 ms) : 48388, 49254
. : milestone, 48821,
code_origins (45.252 ms) : 44842, 45661
. : milestone, 45252,
iast (44.189 ms) : 43811, 44567
. : milestone, 44189,
profiling (49.306 ms) : 48815, 49797
. : milestone, 49306,
tracing (42.737 ms) : 42379, 43095
. : milestone, 42737,
section candidate
no_agent (37.592 ms) : 37292, 37892
. : milestone, 37592,
appsec (46.897 ms) : 46494, 47300
. : milestone, 46897,
code_origins (44.256 ms) : 43886, 44625
. : milestone, 44256,
iast (45.286 ms) : 44892, 45679
. : milestone, 45286,
profiling (49.836 ms) : 49385, 50287
. : milestone, 49836,
tracing (44.663 ms) : 44287, 45039
. : milestone, 44663,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent37.026 ms [36.723 ms, 37.329 ms]-
appsec48.821 ms [48.388 ms, 49.254 ms]11.795 ms (31.9%)
code_origins45.252 ms [44.842 ms, 45.661 ms]8.225 ms (22.2%)
iast44.189 ms [43.811 ms, 44.567 ms]7.163 ms (19.3%)
profiling49.306 ms [48.815 ms, 49.797 ms]12.28 ms (33.2%)
tracing42.737 ms [42.379 ms, 43.095 ms]5.711 ms (15.4%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent37.592 ms [37.292 ms, 37.892 ms]-
appsec46.897 ms [46.494 ms, 47.3 ms]9.305 ms (24.8%)
code_origins44.256 ms [43.886 ms, 44.625 ms]6.664 ms (17.7%)
iast45.286 ms [44.892 ms, 45.679 ms]7.694 ms (20.5%)
profiling49.836 ms [49.385 ms, 50.287 ms]12.244 ms (32.6%)
tracing44.663 ms [44.287 ms, 45.039 ms]7.071 ms (18.8%)
Request duration reports for insecure-bank
gantt
title insecure-bank - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section baseline
no_agent (4.356 ms) : 4303, 4410
. : milestone, 4356,
iast (9.732 ms) : 9572, 9892
. : milestone, 9732,
iast_FULL (14.058 ms) : 13781, 14335
. : milestone, 14058,
iast_GLOBAL (10.337 ms) : 10161, 10514
. : milestone, 10337,
profiling (8.903 ms) : 8764, 9041
. : milestone, 8903,
tracing (7.701 ms) : 7592, 7809
. : milestone, 7701,
section candidate
no_agent (4.345 ms) : 4297, 4394
. : milestone, 4345,
iast (9.771 ms) : 9610, 9932
. : milestone, 9771,
iast_FULL (13.984 ms) : 13712, 14256
. : milestone, 13984,
iast_GLOBAL (10.657 ms) : 10460, 10853
. : milestone, 10657,
profiling (9.012 ms) : 8872, 9153
. : milestone, 9012,
tracing (7.772 ms) : 7663, 7881
. : milestone, 7772,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.356 ms [4.303 ms, 4.41 ms]-
iast9.732 ms [9.572 ms, 9.892 ms]5.376 ms (123.4%)
iast_FULL14.058 ms [13.781 ms, 14.335 ms]9.702 ms (222.7%)
iast_GLOBAL10.337 ms [10.161 ms, 10.514 ms]5.981 ms (137.3%)
profiling8.903 ms [8.764 ms, 9.041 ms]4.547 ms (104.4%)
tracing7.701 ms [7.592 ms, 7.809 ms]3.345 ms (76.8%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.345 ms [4.297 ms, 4.394 ms]-
iast9.771 ms [9.61 ms, 9.932 ms]5.426 ms (124.9%)
iast_FULL13.984 ms [13.712 ms, 14.256 ms]9.639 ms (221.8%)
iast_GLOBAL10.657 ms [10.46 ms, 10.853 ms]6.311 ms (145.2%)
profiling9.012 ms [8.872 ms, 9.153 ms]4.667 ms (107.4%)
tracing7.772 ms [7.663 ms, 7.881 ms]3.427 ms (78.9%)

Dacapo

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterandrea.marziali/rum-servlet-async
git_commit_date17546469271754658007
git_commit_shaaa86f1554d6a7e
release_version1.53.0-SNAPSHOT~aa86f15c9b1.53.0-SNAPSHOT~54d6a7ec25
See matching parameters
BaselineCandidate
applicationbiojavabiojava
ci_job_date17546599831754659983
ci_job_id10712851601071285160
ci_pipeline_id7310302973103029
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-kz2810nb 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-kz2810nb 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

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.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section baseline
no_agent (15.519 s) : 15519000, 15519000
. : milestone, 15519000,
appsec (14.796 s) : 14796000, 14796000
. : milestone, 14796000,
iast (18.569 s) : 18569000, 18569000
. : milestone, 18569000,
iast_GLOBAL (18.144 s) : 18144000, 18144000
. : milestone, 18144000,
profiling (15.291 s) : 15291000, 15291000
. : milestone, 15291000,
tracing (15.036 s) : 15036000, 15036000
. : milestone, 15036000,
section candidate
no_agent (15.419 s) : 15419000, 15419000
. : milestone, 15419000,
appsec (14.984 s) : 14984000, 14984000
. : milestone, 14984000,
iast (18.385 s) : 18385000, 18385000
. : milestone, 18385000,
iast_GLOBAL (18.059 s) : 18059000, 18059000
. : milestone, 18059000,
profiling (15.438 s) : 15438000, 15438000
. : milestone, 15438000,
tracing (15.237 s) : 15237000, 15237000
. : milestone, 15237000,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.519 s [15.519 s, 15.519 s]-
appsec14.796 s [14.796 s, 14.796 s]-723.0 ms (-4.7%)
iast18.569 s [18.569 s, 18.569 s]3.05 s (19.7%)
iast_GLOBAL18.144 s [18.144 s, 18.144 s]2.625 s (16.9%)
profiling15.291 s [15.291 s, 15.291 s]-228.0 ms (-1.5%)
tracing15.036 s [15.036 s, 15.036 s]-483.0 ms (-3.1%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.419 s [15.419 s, 15.419 s]-
appsec14.984 s [14.984 s, 14.984 s]-435.0 ms (-2.8%)
iast18.385 s [18.385 s, 18.385 s]2.966 s (19.2%)
iast_GLOBAL18.059 s [18.059 s, 18.059 s]2.64 s (17.1%)
profiling15.438 s [15.438 s, 15.438 s]19.0 ms (0.1%)
tracing15.237 s [15.237 s, 15.237 s]-182.0 ms (-1.2%)
Execution time for tomcat
gantt
title tomcat - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~54d6a7ec25, baseline=1.53.0-SNAPSHOT~aa86f15c9b
dateFormat X
axisFormat %s
section baseline
no_agent (1.476 ms) : 1465, 1488
. : milestone, 1476,
appsec (3.611 ms) : 3395, 3827
. : milestone, 3611,
iast (2.203 ms) : 2140, 2266
. : milestone, 2203,
iast_GLOBAL (2.233 ms) : 2170, 2295
. : milestone, 2233,
profiling (2.06 ms) : 2008, 2111
. : milestone, 2060,
tracing (2.003 ms) : 1955, 2052
. : milestone, 2003,
section candidate
no_agent (1.479 ms) : 1467, 1490
. : milestone, 1479,
appsec (3.669 ms) : 3453, 3885
. : milestone, 3669,
iast (2.195 ms) : 2132, 2258
. : milestone, 2195,
iast_GLOBAL (2.236 ms) : 2173, 2300
. : milestone, 2236,
profiling (2.056 ms) : 2004, 2108
. : milestone, 2056,
tracing (2.026 ms) : 1977, 2074
. : milestone, 2026,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.476 ms [1.465 ms, 1.488 ms]-
appsec3.611 ms [3.395 ms, 3.827 ms]2.134 ms (144.6%)
iast2.203 ms [2.14 ms, 2.266 ms]726.716 µs (49.2%)
iast_GLOBAL2.233 ms [2.17 ms, 2.295 ms]756.516 µs (51.2%)
profiling2.06 ms [2.008 ms, 2.111 ms]583.476 µs (39.5%)
tracing2.003 ms [1.955 ms, 2.052 ms]527.206 µs (35.7%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.479 ms [1.467 ms, 1.49 ms]-
appsec3.669 ms [3.453 ms, 3.885 ms]2.19 ms (148.1%)
iast2.195 ms [2.132 ms, 2.258 ms]716.535 µs (48.5%)
iast_GLOBAL2.236 ms [2.173 ms, 2.3 ms]757.908 µs (51.3%)
profiling2.056 ms [2.004 ms, 2.108 ms]577.338 µs (39.0%)
tracing2.026 ms [1.977 ms, 2.074 ms]546.93 µs (37.0%)

@PerfectSlayerPerfectSlayer left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Not a servlet expert but looking good. Left few suggestions

Comment on lines 316 to 317

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

❔ question: ‏Are the servlet replaced when using the same path?
What about not extending TomcatRumInjectionForkedTest instead and adding the testRumInjection() to true instead?
TomcatRumInjectionForkedTest could also be renamed TomcatSyncRumInjectionForkedTest for disambiguation.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

The servlets are not replaced. They are registered once per tests reason why they are forked. IMHO extending one or another class does not bring a lot of value . In this case I avoided overriding one method

Comment threadinternal-api/src/main/java/datadog/trace/api/Config.java Outdated
@amarziali
amarzialiforce-pushed the andrea.marziali/rum-fixes branch from 3c55082 to 22e5389CompareAugust 8, 2025 07:51
Base automatically changed from andrea.marziali/rum-fixes to masterAugust 8, 2025 09:55
@amarziali
amarzialiforce-pushed the andrea.marziali/rum-servlet-async branch from ed0bd7f to 736260fCompareAugust 8, 2025 12:46
@amarziali
amarziali enabled auto-merge (squash) August 8, 2025 13:36
@amarziali
amarziali merged commit 5ed2f59 into masterAug 8, 2025
504 checks passed
@amarziali
amarziali deleted the andrea.marziali/rum-servlet-async branch August 8, 2025 13:59
@github-actionsgithub-actionsBot added this to the 1.53.0 milestone Aug 8, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Sep 4, 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.52.1` -> `1.53.0` |
---
### Release Notes
<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>
###
[`v1.53.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.53.0):
1.53.0
### Components
#### Application Security Management (WAF)
- 🐛 Fix NullPointerException log in AppSec
([#&#8203;9355](DataDog/dd-trace-java#9355) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Add Forwarded header as a source to client IP resolution
([#&#8203;9310](DataDog/dd-trace-java#9310) -
[@&#8203;jandro996](https://github.com/jandro996))
#### Build & Tooling
- 📖 Update CODEOWNERS
([#&#8203;9294](DataDog/dd-trace-java#9294) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add dependency on Maven Central deployment to OCI publish
jobs
([#&#8203;9204](DataDog/dd-trace-java#9204) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
#### Continuous Integration Visibility
- ✨ Upload code coverage reports to Datadog
([#&#8203;9425](DataDog/dd-trace-java#9425) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨⚡ Do not follow symlinks by default when building
repository index
([#&#8203;9318](DataDog/dd-trace-java#9318) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Improve tag propagation between test event levels
([#&#8203;9278](DataDog/dd-trace-java#9278) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
#### Data Streams Monitoring
- ✨ Create container hash tags propagation
([#&#8203;9282](DataDog/dd-trace-java#9282) -
[@&#8203;ygree](https://github.com/ygree))
#### Database Monitoring
- 🐛 Prevent crash in SQL Server's JDBC when tracing execute methods
with generated keys
([#&#8203;9321](DataDog/dd-trace-java#9321) -
[@&#8203;na-ji](https://github.com/na-ji))
- ✨ Create container hash tags propagation
([#&#8203;9282](DataDog/dd-trace-java#9282) -
[@&#8203;ygree](https://github.com/ygree))
#### GraalVM native-image
- 🐛 Update GraalVM config to reflect TempLocationManager's new
package
([#&#8203;9337](DataDog/dd-trace-java#9337) -
[@&#8203;luneo7](https://github.com/luneo7) - thanks for the
contribution!)
#### Metrics
- 🐛 Add reflect config for CSS and graalvm
([#&#8203;9449](DataDog/dd-trace-java#9449) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Align CSS health metrics
([#&#8203;9444](DataDog/dd-trace-java#9444) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Aggregate peer tags for consumer span kind
([#&#8203;9442](DataDog/dd-trace-java#9442) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Implement health metrics for client stats
([#&#8203;9377](DataDog/dd-trace-java#9377) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add peer tags, span kind and trace root flag to MetricKey
bucket
([#&#8203;9178](DataDog/dd-trace-java#9178) -
[@&#8203;bric3](https://github.com/bric3))
#### Profiling
- ✨ Create a profile flare reporter (requires tracing or CI vis
to be enabled)
([#&#8203;9433](DataDog/dd-trace-java#9433) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Properly fall-back on UDS profiling URL
([#&#8203;9401](DataDog/dd-trace-java#9401) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🐛 Properly handle trace agent IPv6 URL in profiling
([#&#8203;9334](DataDog/dd-trace-java#9334) -
[@&#8203;jbachorik](https://github.com/jbachorik))
#### Realtime User Monitoring
- 🐛 Avoid multiple injections on dispatch on jboss
([#&#8203;9392](DataDog/dd-trace-java#9392) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support async servlet for RUM injection
([#&#8203;9333](DataDog/dd-trace-java#9333) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Improve RUM injection matching and avoid truncating responses
([#&#8203;9323](DataDog/dd-trace-java#9323) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Add telemetry for the RUM injector
([#&#8203;9267](DataDog/dd-trace-java#9267) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Make rum injector stream/writer more resilient to errors
([#&#8203;9184](DataDog/dd-trace-java#9184) -
[@&#8203;amarziali](https://github.com/amarziali))
#### Telemetry
- 🐛 Remediate error logs
([#&#8203;9459](DataDog/dd-trace-java#9459) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Report config\_id for Hands Off Config files
([#&#8203;9299](DataDog/dd-trace-java#9299) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Adding Config Inversion Telemetry component
([#&#8203;9244](DataDog/dd-trace-java#9244) -
[@&#8203;mhlidd](https://github.com/mhlidd))
#### Trace context propagation
- 🧹 Migrate instrumentations to Context API
([#&#8203;9384](DataDog/dd-trace-java#9384),
[#&#8203;9378](DataDog/dd-trace-java#9378),
[#&#8203;9358](DataDog/dd-trace-java#9358) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨🔍 Add baggage propagation telemetry
([#&#8203;9289](DataDog/dd-trace-java#9289) -
[@&#8203;rachelyangdog](https://github.com/rachelyangdog))
- 🧹 Improve Instrumenter API to use Context instead of Span
([#&#8203;9211](DataDog/dd-trace-java#9211) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
#### Tracer core
- 💡:test\_tube: Enable process level tags for java 21 applications
([#&#8203;9458](DataDog/dd-trace-java#9458) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Move base and peer service adder before span is published
([#&#8203;9408](DataDog/dd-trace-java#9408) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add ErrorPriorities level for manual instrumentation
([#&#8203;9387](DataDog/dd-trace-java#9387) -
[@&#8203;cecile75](https://github.com/cecile75))
- ✨ Throw InvalidBooleanValueException in
ConfigConverter.booleanValueOf
([#&#8203;9370](DataDog/dd-trace-java#9370) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- 🐛 Avoid NPE on featureDiscovery creation
([#&#8203;9353](DataDog/dd-trace-java#9353) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Stable Config improvements
([#&#8203;9259](DataDog/dd-trace-java#9259) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
### Instrumentations
#### gRPC instrumentation
- 🐛 Changing GRPC instrumentation codes from `status.code` to
`grpc.status.code`
([#&#8203;9367](DataDog/dd-trace-java#9367) -
[@&#8203;mhlidd](https://github.com/mhlidd))
#### JDBC instrumentation
- 🐛 Prevent crash in SQL Server's JDBC when tracing execute methods
with generated keys
([#&#8203;9321](DataDog/dd-trace-java#9321) -
[@&#8203;na-ji](https://github.com/na-ji))
#### Kotlin instrumentation
- 🐛 Take defensive copy of original scope stack when restoring on
different thread
([#&#8203;9403](DataDog/dd-trace-java#9403) -
[@&#8203;mcculls](https://github.com/mcculls))
#### OpenTelemetry instrumentation
- 🐛 Fix using SpanAttribute annotation on multiple parameters
([#&#8203;9412](DataDog/dd-trace-java#9412) -
[@&#8203;cecile75](https://github.com/cecile75))
</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: e23ec866cef91afc6b5226d5f0dc7da538d947e8
eizus pushed a commit to cdrxyz/misk that referenced this pull request Jul 18, 2026
| 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.52.1` -> `1.53.0` |
---
### Release Notes
<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>
###
[`v1.53.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.53.0):
1.53.0
### Components
#### Application Security Management (WAF)
- 🐛 Fix NullPointerException log in AppSec
([#&#8203;9355](DataDog/dd-trace-java#9355) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Add Forwarded header as a source to client IP resolution
([#&#8203;9310](DataDog/dd-trace-java#9310) -
[@&#8203;jandro996](https://github.com/jandro996))
#### Build & Tooling
- 📖 Update CODEOWNERS
([#&#8203;9294](DataDog/dd-trace-java#9294) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add dependency on Maven Central deployment to OCI publish
jobs
([#&#8203;9204](DataDog/dd-trace-java#9204) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
#### Continuous Integration Visibility
- ✨ Upload code coverage reports to Datadog
([#&#8203;9425](DataDog/dd-trace-java#9425) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨⚡ Do not follow symlinks by default when building
repository index
([#&#8203;9318](DataDog/dd-trace-java#9318) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Improve tag propagation between test event levels
([#&#8203;9278](DataDog/dd-trace-java#9278) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
#### Data Streams Monitoring
- ✨ Create container hash tags propagation
([#&#8203;9282](DataDog/dd-trace-java#9282) -
[@&#8203;ygree](https://github.com/ygree))
#### Database Monitoring
- 🐛 Prevent crash in SQL Server's JDBC when tracing execute methods
with generated keys
([#&#8203;9321](DataDog/dd-trace-java#9321) -
[@&#8203;na-ji](https://github.com/na-ji))
- ✨ Create container hash tags propagation
([#&#8203;9282](DataDog/dd-trace-java#9282) -
[@&#8203;ygree](https://github.com/ygree))
#### GraalVM native-image
- 🐛 Update GraalVM config to reflect TempLocationManager's new
package
([#&#8203;9337](DataDog/dd-trace-java#9337) -
[@&#8203;luneo7](https://github.com/luneo7) - thanks for the
contribution!)
#### Metrics
- 🐛 Add reflect config for CSS and graalvm
([#&#8203;9449](DataDog/dd-trace-java#9449) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Align CSS health metrics
([#&#8203;9444](DataDog/dd-trace-java#9444) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Aggregate peer tags for consumer span kind
([#&#8203;9442](DataDog/dd-trace-java#9442) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Implement health metrics for client stats
([#&#8203;9377](DataDog/dd-trace-java#9377) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add peer tags, span kind and trace root flag to MetricKey
bucket
([#&#8203;9178](DataDog/dd-trace-java#9178) -
[@&#8203;bric3](https://github.com/bric3))
#### Profiling
- ✨ Create a profile flare reporter (requires tracing or CI vis
to be enabled)
([#&#8203;9433](DataDog/dd-trace-java#9433) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Properly fall-back on UDS profiling URL
([#&#8203;9401](DataDog/dd-trace-java#9401) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🐛 Properly handle trace agent IPv6 URL in profiling
([#&#8203;9334](DataDog/dd-trace-java#9334) -
[@&#8203;jbachorik](https://github.com/jbachorik))
#### Realtime User Monitoring
- 🐛 Avoid multiple injections on dispatch on jboss
([#&#8203;9392](DataDog/dd-trace-java#9392) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Support async servlet for RUM injection
([#&#8203;9333](DataDog/dd-trace-java#9333) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Improve RUM injection matching and avoid truncating responses
([#&#8203;9323](DataDog/dd-trace-java#9323) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Add telemetry for the RUM injector
([#&#8203;9267](DataDog/dd-trace-java#9267) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Make rum injector stream/writer more resilient to errors
([#&#8203;9184](DataDog/dd-trace-java#9184) -
[@&#8203;amarziali](https://github.com/amarziali))
#### Telemetry
- 🐛 Remediate error logs
([#&#8203;9459](DataDog/dd-trace-java#9459) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Report config\_id for Hands Off Config files
([#&#8203;9299](DataDog/dd-trace-java#9299) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Adding Config Inversion Telemetry component
([#&#8203;9244](DataDog/dd-trace-java#9244) -
[@&#8203;mhlidd](https://github.com/mhlidd))
#### Trace context propagation
- 🧹 Migrate instrumentations to Context API
([#&#8203;9384](DataDog/dd-trace-java#9384),
[#&#8203;9378](DataDog/dd-trace-java#9378),
[#&#8203;9358](DataDog/dd-trace-java#9358) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨🔍 Add baggage propagation telemetry
([#&#8203;9289](DataDog/dd-trace-java#9289) -
[@&#8203;rachelyangdog](https://github.com/rachelyangdog))
- 🧹 Improve Instrumenter API to use Context instead of Span
([#&#8203;9211](DataDog/dd-trace-java#9211) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
#### Tracer core
- 💡:test\_tube: Enable process level tags for java 21 applications
([#&#8203;9458](DataDog/dd-trace-java#9458) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Move base and peer service adder before span is published
([#&#8203;9408](DataDog/dd-trace-java#9408) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add ErrorPriorities level for manual instrumentation
([#&#8203;9387](DataDog/dd-trace-java#9387) -
[@&#8203;cecile75](https://github.com/cecile75))
- ✨ Throw InvalidBooleanValueException in
ConfigConverter.booleanValueOf
([#&#8203;9370](DataDog/dd-trace-java#9370) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- 🐛 Avoid NPE on featureDiscovery creation
([#&#8203;9353](DataDog/dd-trace-java#9353) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Stable Config improvements
([#&#8203;9259](DataDog/dd-trace-java#9259) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
### Instrumentations
#### gRPC instrumentation
- 🐛 Changing GRPC instrumentation codes from `status.code` to
`grpc.status.code`
([#&#8203;9367](DataDog/dd-trace-java#9367) -
[@&#8203;mhlidd](https://github.com/mhlidd))
#### JDBC instrumentation
- 🐛 Prevent crash in SQL Server's JDBC when tracing execute methods
with generated keys
([#&#8203;9321](DataDog/dd-trace-java#9321) -
[@&#8203;na-ji](https://github.com/na-ji))
#### Kotlin instrumentation
- 🐛 Take defensive copy of original scope stack when restoring on
different thread
([#&#8203;9403](DataDog/dd-trace-java#9403) -
[@&#8203;mcculls](https://github.com/mcculls))
#### OpenTelemetry instrumentation
- 🐛 Fix using SpanAttribute annotation on multiple parameters
([#&#8203;9412](DataDog/dd-trace-java#9412) -
[@&#8203;cecile75](https://github.com/cecile75))
</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: e23ec866cef91afc6b5226d5f0dc7da538d947e8
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: rumRealtime User Monitoringtype: featureEnhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@amarziali@PerfectSlayer