Skip to content

Add tracing support for Jetty 12#5744

Merged
amarziali merged 1 commit into
masterfrom
andrea.marziali/jetty12
Aug 22, 2023
Merged

Add tracing support for Jetty 12#5744
amarziali merged 1 commit into
masterfrom
andrea.marziali/jetty12

Conversation

@amarziali

Copy link
Copy Markdown
Contributor

What Does This Do

Supports jetty 12 tracing. Support for ASM blocking functions is not implemented.

Compatible with all ee modules (ee8, ee9, ee10)

Motivation

Additional Notes

@amarziali
amarziali requested a review from a team as a code owner August 21, 2023 13:03
@pr-commenter

pr-commenter Bot commented Aug 21, 2023

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~9bc95da6b5 1.20.0-SNAPSHOT~fb3169eab8
config baseline candidate
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
module Agent Agent
parent None None
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 62 cases.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.20.0-SNAPSHOT~fb3169eab8, baseline=1.20.0-SNAPSHOT~9bc95da6b5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (987.927 ms) : 0, 987927
Total [baseline] (9.187 s) : 0, 9186685
Agent [candidate] (993.152 ms) : 0, 993152
Total [candidate] (9.187 s) : 0, 9186729
section appsec
Agent [baseline] (1.072 s) : 0, 1072169
Total [baseline] (9.24 s) : 0, 9240219
Agent [candidate] (1.075 s) : 0, 1074655
Total [candidate] (9.261 s) : 0, 9260508
section iast
Agent [baseline] (1.09 s) : 0, 1090299
Total [baseline] (9.454 s) : 0, 9454282
Agent [candidate] (1.092 s) : 0, 1091668
Total [candidate] (9.394 s) : 0, 9393604
section profiling
Agent [baseline] (1.163 s) : 0, 1163268
Total [baseline] (9.537 s) : 0, 9537475
Agent [candidate] (1.16 s) : 0, 1160478
Total [candidate] (9.434 s) : 0, 9433625
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 987.927 ms -
Agent appsec 1.072 s 84.242 ms (8.5%)
Agent iast 1.09 s 102.372 ms (10.4%)
Agent profiling 1.163 s 175.341 ms (17.7%)
Total tracing 9.187 s -
Total appsec 9.24 s 53.534 ms (0.6%)
Total iast 9.454 s 267.597 ms (2.9%)
Total profiling 9.537 s 350.79 ms (3.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 993.152 ms -
Agent appsec 1.075 s 81.504 ms (8.2%)
Agent iast 1.092 s 98.516 ms (9.9%)
Agent profiling 1.16 s 167.327 ms (16.8%)
Total tracing 9.187 s -
Total appsec 9.261 s 73.779 ms (0.8%)
Total iast 9.394 s 206.875 ms (2.3%)
Total profiling 9.434 s 246.896 ms (2.7%)
gantt
    title petclinic - break down per module: candidate=1.20.0-SNAPSHOT~fb3169eab8, baseline=1.20.0-SNAPSHOT~9bc95da6b5

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (610.518 ms) : 0, 610518
BytebuddyAgent [candidate] (616.701 ms) : 0, 616701
GlobalTracer [baseline] (285.986 ms) : 0, 285986
GlobalTracer [candidate] (285.457 ms) : 0, 285457
AppSec [baseline] (50.327 ms) : 0, 50327
AppSec [candidate] (49.798 ms) : 0, 49798
Remote Config [baseline] (674.419 µs) : 0, 674
Remote Config [candidate] (661.964 µs) : 0, 662
Telemetry [baseline] (6.084 ms) : 0, 6084
Telemetry [candidate] (6.021 ms) : 0, 6021
section appsec
BytebuddyAgent [baseline] (611.342 ms) : 0, 611342
BytebuddyAgent [candidate] (613.307 ms) : 0, 613307
GlobalTracer [baseline] (284.476 ms) : 0, 284476
GlobalTracer [candidate] (285.693 ms) : 0, 285693
AppSec [baseline] (135.461 ms) : 0, 135461
AppSec [candidate] (134.825 ms) : 0, 134825
Remote Config [baseline] (727.864 µs) : 0, 728
Remote Config [candidate] (733.494 µs) : 0, 733
Telemetry [baseline] (5.812 ms) : 0, 5812
Telemetry [candidate] (5.764 ms) : 0, 5764
section iast
BytebuddyAgent [baseline] (718.066 ms) : 0, 718066
BytebuddyAgent [candidate] (718.791 ms) : 0, 718791
GlobalTracer [baseline] (270.413 ms) : 0, 270413
GlobalTracer [candidate] (270.799 ms) : 0, 270799
AppSec [baseline] (47.31 ms) : 0, 47310
AppSec [candidate] (47.495 ms) : 0, 47495
Remote Config [baseline] (555.9 µs) : 0, 556
Remote Config [candidate] (556.558 µs) : 0, 557
Telemetry [baseline] (5.75 ms) : 0, 5750
Telemetry [candidate] (5.724 ms) : 0, 5724
IAST [baseline] (13.88 ms) : 0, 13880
IAST [candidate] (13.964 ms) : 0, 13964
section profiling
BytebuddyAgent [baseline] (626.259 ms) : 0, 626259
BytebuddyAgent [candidate] (624.592 ms) : 0, 624592
GlobalTracer [baseline] (350.331 ms) : 0, 350331
GlobalTracer [candidate] (349.478 ms) : 0, 349478
AppSec [baseline] (49.6 ms) : 0, 49600
AppSec [candidate] (49.296 ms) : 0, 49296
Remote Config [baseline] (651.469 µs) : 0, 651
Remote Config [candidate] (645.134 µs) : 0, 645
Telemetry [baseline] (6.066 ms) : 0, 6066
Telemetry [candidate] (5.954 ms) : 0, 5954
ProfilingAgent [baseline] (77.056 ms) : 0, 77056
ProfilingAgent [candidate] (77.6 ms) : 0, 77600
Profiling [baseline] (77.08 ms) : 0, 77080
Profiling [candidate] (77.624 ms) : 0, 77624
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.20.0-SNAPSHOT~fb3169eab8, baseline=1.20.0-SNAPSHOT~9bc95da6b5

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.001 s) : 0, 1001313
Total [baseline] (8.713 s) : 0, 8713475
Agent [candidate] (988.091 ms) : 0, 988091
Total [candidate] (8.66 s) : 0, 8659589
section appsec
Agent [baseline] (1.07 s) : 0, 1069894
Total [baseline] (8.735 s) : 0, 8734902
Agent [candidate] (1.082 s) : 0, 1082449
Total [candidate] (8.748 s) : 0, 8747960
section iast
Agent [baseline] (1.087 s) : 0, 1086877
Total [baseline] (9.151 s) : 0, 9150773
Agent [candidate] (1.101 s) : 0, 1100942
Total [candidate] (9.199 s) : 0, 9199443
section profiling
Agent [baseline] (1.164 s) : 0, 1164064
Total [baseline] (8.882 s) : 0, 8882304
Agent [candidate] (1.161 s) : 0, 1160615
Total [candidate] (8.863 s) : 0, 8862969
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.001 s -
Agent appsec 1.07 s 68.581 ms (6.8%)
Agent iast 1.087 s 85.564 ms (8.5%)
Agent profiling 1.164 s 162.751 ms (16.3%)
Total tracing 8.713 s -
Total appsec 8.735 s 21.427 ms (0.2%)
Total iast 9.151 s 437.298 ms (5.0%)
Total profiling 8.882 s 168.828 ms (1.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 988.091 ms -
Agent appsec 1.082 s 94.358 ms (9.5%)
Agent iast 1.101 s 112.851 ms (11.4%)
Agent profiling 1.161 s 172.524 ms (17.5%)
Total tracing 8.66 s -
Total appsec 8.748 s 88.371 ms (1.0%)
Total iast 9.199 s 539.854 ms (6.2%)
Total profiling 8.863 s 203.38 ms (2.3%)
gantt
    title insecure-bank - break down per module: candidate=1.20.0-SNAPSHOT~fb3169eab8, baseline=1.20.0-SNAPSHOT~9bc95da6b5

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (620.312 ms) : 0, 620312
BytebuddyAgent [candidate] (612.176 ms) : 0, 612176
GlobalTracer [baseline] (288.882 ms) : 0, 288882
GlobalTracer [candidate] (284.845 ms) : 0, 284845
AppSec [baseline] (50.366 ms) : 0, 50366
AppSec [candidate] (50.085 ms) : 0, 50085
Remote Config [baseline] (693.032 µs) : 0, 693
Remote Config [candidate] (666.007 µs) : 0, 666
Telemetry [baseline] (6.143 ms) : 0, 6143
Telemetry [candidate] (6.01 ms) : 0, 6010
section appsec
BytebuddyAgent [baseline] (610.446 ms) : 0, 610446
BytebuddyAgent [candidate] (618.101 ms) : 0, 618101
GlobalTracer [baseline] (283.901 ms) : 0, 283901
GlobalTracer [candidate] (288.364 ms) : 0, 288364
AppSec [baseline] (134.698 ms) : 0, 134698
AppSec [candidate] (134.79 ms) : 0, 134790
Remote Config [baseline] (734.629 µs) : 0, 735
Remote Config [candidate] (756.583 µs) : 0, 757
Telemetry [baseline] (5.803 ms) : 0, 5803
Telemetry [candidate] (5.83 ms) : 0, 5830
section iast
BytebuddyAgent [baseline] (715.698 ms) : 0, 715698
BytebuddyAgent [candidate] (725.004 ms) : 0, 725004
GlobalTracer [baseline] (269.747 ms) : 0, 269747
GlobalTracer [candidate] (272.783 ms) : 0, 272783
AppSec [baseline] (46.999 ms) : 0, 46999
AppSec [candidate] (48.05 ms) : 0, 48050
Remote Config [baseline] (555.43 µs) : 0, 555
Remote Config [candidate] (570.054 µs) : 0, 570
Telemetry [baseline] (5.713 ms) : 0, 5713
Telemetry [candidate] (5.818 ms) : 0, 5818
IAST [baseline] (13.837 ms) : 0, 13837
IAST [candidate] (14.108 ms) : 0, 14108
section profiling
BytebuddyAgent [baseline] (627.053 ms) : 0, 627053
BytebuddyAgent [candidate] (625.472 ms) : 0, 625472
GlobalTracer [baseline] (350.783 ms) : 0, 350783
GlobalTracer [candidate] (350.002 ms) : 0, 350002
AppSec [baseline] (49.463 ms) : 0, 49463
AppSec [candidate] (49.203 ms) : 0, 49203
Remote Config [baseline] (652.006 µs) : 0, 652
Remote Config [candidate] (642.275 µs) : 0, 642
Telemetry [baseline] (6.065 ms) : 0, 6065
Telemetry [candidate] (5.986 ms) : 0, 5986
ProfilingAgent [baseline] (76.855 ms) : 0, 76855
ProfilingAgent [candidate] (76.36 ms) : 0, 76360
Profiling [baseline] (76.879 ms) : 0, 76879
Profiling [candidate] (76.384 ms) : 0, 76384
Loading

Load

Parameters

Baseline Candidate
commit 1.20.0-SNAPSHOT~9bc95da6b5 1.20.0-SNAPSHOT~fb3169eab8
config baseline candidate
end_time 2023-08-21T14:14:08 2023-08-21T14:32:12
start_time 2023-08-21T14:13:51 2023-08-21T14:31:54
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 24 cases.

Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~fb3169eab8, baseline=1.20.0-SNAPSHOT~9bc95da6b5
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.336 ms) : 1317, 1355
.   : milestone, 1336,
appsec (1.666 ms) : 1642, 1690
.   : milestone, 1666,
iast (1.458 ms) : 1433, 1482
.   : milestone, 1458,
profiling (1.461 ms) : 1437, 1485
.   : milestone, 1461,
tracing (1.445 ms) : 1421, 1469
.   : milestone, 1445,
section candidate
no_agent (1.321 ms) : 1303, 1340
.   : milestone, 1321,
appsec (1.664 ms) : 1640, 1688
.   : milestone, 1664,
iast (1.473 ms) : 1449, 1497
.   : milestone, 1473,
profiling (1.462 ms) : 1436, 1488
.   : milestone, 1462,
tracing (1.438 ms) : 1413, 1462
.   : milestone, 1438,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.336 ms [1.317 ms, 1.355 ms] -
appsec 1.666 ms [1.642 ms, 1.69 ms] 330.199 µs (24.7%)
iast 1.458 ms [1.433 ms, 1.482 ms] 121.494 µs (9.1%)
profiling 1.461 ms [1.437 ms, 1.485 ms] 124.846 µs (9.3%)
tracing 1.445 ms [1.421 ms, 1.469 ms] 108.587 µs (8.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.321 ms [1.303 ms, 1.34 ms] -
appsec 1.664 ms [1.64 ms, 1.688 ms] 342.845 µs (25.9%)
iast 1.473 ms [1.449 ms, 1.497 ms] 151.315 µs (11.5%)
profiling 1.462 ms [1.436 ms, 1.488 ms] 140.434 µs (10.6%)
tracing 1.438 ms [1.413 ms, 1.462 ms] 116.139 µs (8.8%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.20.0-SNAPSHOT~fb3169eab8, baseline=1.20.0-SNAPSHOT~9bc95da6b5
    dateFormat X
    axisFormat %s
section baseline
no_agent (360.187 µs) : 340, 381
.   : milestone, 360,
appsec (648.709 µs) : 629, 669
.   : milestone, 649,
iast (448.595 µs) : 428, 469
.   : milestone, 449,
iast_FULL (507.109 µs) : 487, 528
.   : milestone, 507,
iast_INACTIVE (435.082 µs) : 413, 457
.   : milestone, 435,
profiling (445.749 µs) : 425, 466
.   : milestone, 446,
tracing (428.061 µs) : 407, 449
.   : milestone, 428,
section candidate
no_agent (362.758 µs) : 343, 383
.   : milestone, 363,
appsec (655.243 µs) : 634, 676
.   : milestone, 655,
iast (451.994 µs) : 431, 472
.   : milestone, 452,
iast_FULL (519.396 µs) : 499, 540
.   : milestone, 519,
iast_INACTIVE (431.007 µs) : 410, 452
.   : milestone, 431,
profiling (434.118 µs) : 413, 455
.   : milestone, 434,
tracing (434.067 µs) : 413, 455
.   : milestone, 434,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 360.187 µs [339.682 µs, 380.691 µs] -
appsec 648.709 µs [628.7 µs, 668.718 µs] 288.522 µs (80.1%)
iast 448.595 µs [427.982 µs, 469.209 µs] 88.408 µs (24.5%)
iast_FULL 507.109 µs [486.711 µs, 527.506 µs] 146.922 µs (40.8%)
iast_INACTIVE 435.082 µs [413.494 µs, 456.669 µs] 74.895 µs (20.8%)
profiling 445.749 µs [425.021 µs, 466.477 µs] 85.562 µs (23.8%)
tracing 428.061 µs [407.024 µs, 449.098 µs] 67.874 µs (18.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 362.758 µs [342.807 µs, 382.708 µs] -
appsec 655.243 µs [634.349 µs, 676.138 µs] 292.486 µs (80.6%)
iast 451.994 µs [431.489 µs, 472.499 µs] 89.237 µs (24.6%)
iast_FULL 519.396 µs [498.66 µs, 540.132 µs] 156.638 µs (43.2%)
iast_INACTIVE 431.007 µs [410.325 µs, 451.689 µs] 68.25 µs (18.8%)
profiling 434.118 µs [413.455 µs, 454.781 µs] 71.361 µs (19.7%)
tracing 434.067 µs [413.199 µs, 454.935 µs] 71.31 µs (19.7%)

@amarziali
amarziali force-pushed the andrea.marziali/jetty12 branch from f0f2a1f to fb3169e Compare August 21, 2023 13:52
Comment thread dd-java-agent/instrumentation/jetty-12/build.gradle Outdated
Comment thread dd-java-agent/instrumentation/jetty-12/build.gradle Outdated

@PerfectSlayer PerfectSlayer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks good for my concerns.
Please take a look at the other comments before merging :)

@PerfectSlayer PerfectSlayer added type: feature Enhancements and improvements inst: jetty Jetty instrumentation labels Aug 22, 2023
@PerfectSlayer PerfectSlayer changed the title tracing jetty 12 Add tracing support for Jetty 12 Aug 22, 2023
@amarziali
amarziali force-pushed the andrea.marziali/jetty12 branch from fb3169e to 41c9591 Compare August 22, 2023 11:49
@amarziali
amarziali enabled auto-merge (squash) August 22, 2023 11:56
@amarziali
amarziali merged commit 4053b2a into master Aug 22, 2023
@amarziali
amarziali deleted the andrea.marziali/jetty12 branch August 22, 2023 12:16
@github-actions github-actions Bot added this to the 1.20.0 milestone Aug 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: jetty Jetty instrumentation type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants