-
Notifications
You must be signed in to change notification settings - Fork 303
Trace websocket for spring webflux reactive handlers #8831
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
0821079
to
35d1c5c
Compare
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 54 metrics, 17 unstable metrics. Startup time reports for insecure-bankgantt
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
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
Startup time reports for petclinicgantt
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
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
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 18 unstable metrics. Request duration reports for petclinicgantt
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,
Request duration reports for insecure-bankgantt
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,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for tomcatgantt
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,
Execution time for biojavagantt
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,
|
dd-java-agent/instrumentation/spring-webflux-6/src/bootTest/groovy/SpringWebfluxTest.groovy
Outdated
Show resolved
Hide resolved
There was a problem hiding this 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!
35d1c5c
to
8448b8b
Compare
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
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]