dd-trace-java icon indicating copy to clipboard operation
dd-trace-java copied to clipboard

[WIP] Refactor initialization of subsystems

Open smola opened this issue 1 year ago • 1 comments
trafficstars

What Does This Do

POC on refactor of product initialization.

Motivation

  • Less reflection.
  • Further encapsulation of the initialization logic of each product.

Additional Notes

  • Only covered telemetry, AppSec, IAST.
  • Jira ticket: APPSEC-5052

smola avatar Nov 27 '23 17:11 smola

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master smola/subsystem-init-refactor
git_commit_date 1701096865 1701106793
git_commit_sha 0f2d96f0b4 c72f8d3110
release_version 1.25.0-SNAPSHOT~0f2d96f0b4 1.25.0-SNAPSHOT~c72f8d3110
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1701109484 1701109484
ci_job_id 376635194 376635194
ci_pipeline_id 23834950 23834950
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.25.0-SNAPSHOT~c72f8d3110, baseline=1.25.0-SNAPSHOT~0f2d96f0b4

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.035 s) : 0, 1034735
Total [baseline] (8.72 s) : 0, 8720021
Agent [candidate] (1.042 s) : 0, 1042216
Total [candidate] (8.742 s) : 0, 8741524
section iast
Agent [baseline] (1.154 s) : 0, 1154468
Total [baseline] (9.223 s) : 0, 9222522
Agent [candidate] (1.155 s) : 0, 1154653
Total [candidate] (9.243 s) : 0, 9243492
section iast_TELEMETRY_OFF
Agent [baseline] (1.154 s) : 0, 1154127
Total [baseline] (9.254 s) : 0, 9254395
Agent [candidate] (1.146 s) : 0, 1146121
Total [candidate] (9.247 s) : 0, 9247434
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.035 s -
Agent iast 1.154 s 119.732 ms (11.6%)
Agent iast_TELEMETRY_OFF 1.154 s 119.392 ms (11.5%)
Total tracing 8.72 s -
Total iast 9.223 s 502.501 ms (5.8%)
Total iast_TELEMETRY_OFF 9.254 s 534.374 ms (6.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent iast 1.155 s 112.437 ms (10.8%)
Agent iast_TELEMETRY_OFF 1.146 s 103.905 ms (10.0%)
Total tracing 8.742 s -
Total iast 9.243 s 501.968 ms (5.7%)
Total iast_TELEMETRY_OFF 9.247 s 505.91 ms (5.8%)
gantt
    title insecure-bank - break down per module: candidate=1.25.0-SNAPSHOT~c72f8d3110, baseline=1.25.0-SNAPSHOT~0f2d96f0b4

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (645.202 ms) : 0, 645202
BytebuddyAgent [candidate] (650.084 ms) : 0, 650084
GlobalTracer [baseline] (298.079 ms) : 0, 298079
GlobalTracer [candidate] (300.099 ms) : 0, 300099
AppSec [baseline] (49.098 ms) : 0, 49098
AppSec [candidate] (49.015 ms) : 0, 49015
IAST [candidate] (496.196 µs) : 0, 496
Remote Config [baseline] (690.344 µs) : 0, 690
Remote Config [candidate] (673.869 µs) : 0, 674
Telemetry [baseline] (7.325 ms) : 0, 7325
Telemetry [candidate] (7.292 ms) : 0, 7292
section iast
BytebuddyAgent [baseline] (766.712 ms) : 0, 766712
BytebuddyAgent [candidate] (766.603 ms) : 0, 766603
GlobalTracer [baseline] (278.933 ms) : 0, 278933
GlobalTracer [candidate] (278.805 ms) : 0, 278805
AppSec [baseline] (48.251 ms) : 0, 48251
AppSec [candidate] (48.119 ms) : 0, 48119
IAST [baseline] (15.503 ms) : 0, 15503
IAST [candidate] (16.175 ms) : 0, 16175
Remote Config [baseline] (575.615 µs) : 0, 576
Remote Config [candidate] (575.684 µs) : 0, 576
Telemetry [baseline] (10.188 ms) : 0, 10188
Telemetry [candidate] (10.104 ms) : 0, 10104
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (764.974 ms) : 0, 764974
BytebuddyAgent [candidate] (758.854 ms) : 0, 758854
GlobalTracer [baseline] (280.479 ms) : 0, 280479
GlobalTracer [candidate] (279.065 ms) : 0, 279065
AppSec [baseline] (47.162 ms) : 0, 47162
AppSec [candidate] (46.632 ms) : 0, 46632
IAST [baseline] (19.36 ms) : 0, 19360
IAST [candidate] (17.366 ms) : 0, 17366
Remote Config [baseline] (556.645 µs) : 0, 557
Remote Config [candidate] (566.397 µs) : 0, 566
Telemetry [baseline] (7.086 ms) : 0, 7086
Telemetry [candidate] (9.211 ms) : 0, 9211
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.25.0-SNAPSHOT~c72f8d3110, baseline=1.25.0-SNAPSHOT~0f2d96f0b4

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.036 s) : 0, 1035775
Total [baseline] (9.319 s) : 0, 9318576
Agent [candidate] (1.042 s) : 0, 1042279
Total [candidate] (9.326 s) : 0, 9326460
section appsec
Agent [baseline] (1.122 s) : 0, 1122224
Total [baseline] (9.4 s) : 0, 9399517
Agent [candidate] (1.13 s) : 0, 1130487
Total [candidate] (9.432 s) : 0, 9431849
section iast
Agent [baseline] (1.153 s) : 0, 1152824
Total [baseline] (9.576 s) : 0, 9575535
Agent [candidate] (1.154 s) : 0, 1154189
Total [candidate] (9.541 s) : 0, 9540987
section profiling
Agent [baseline] (1.224 s) : 0, 1224285
Total [baseline] (9.616 s) : 0, 9615575
Agent [candidate] (1.235 s) : 0, 1234837
Total [candidate] (9.655 s) : 0, 9654833
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.036 s -
Agent appsec 1.122 s 86.449 ms (8.3%)
Agent iast 1.153 s 117.049 ms (11.3%)
Agent profiling 1.224 s 188.511 ms (18.2%)
Total tracing 9.319 s -
Total appsec 9.4 s 80.941 ms (0.9%)
Total iast 9.576 s 256.959 ms (2.8%)
Total profiling 9.616 s 296.999 ms (3.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.042 s -
Agent appsec 1.13 s 88.208 ms (8.5%)
Agent iast 1.154 s 111.91 ms (10.7%)
Agent profiling 1.235 s 192.559 ms (18.5%)
Total tracing 9.326 s -
Total appsec 9.432 s 105.389 ms (1.1%)
Total iast 9.541 s 214.528 ms (2.3%)
Total profiling 9.655 s 328.373 ms (3.5%)
gantt
    title petclinic - break down per module: candidate=1.25.0-SNAPSHOT~c72f8d3110, baseline=1.25.0-SNAPSHOT~0f2d96f0b4

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (646.218 ms) : 0, 646218
BytebuddyAgent [candidate] (650.053 ms) : 0, 650053
GlobalTracer [baseline] (298.345 ms) : 0, 298345
GlobalTracer [candidate] (300.51 ms) : 0, 300510
AppSec [baseline] (48.805 ms) : 0, 48805
AppSec [candidate] (48.738 ms) : 0, 48738
IAST [candidate] (484.706 µs) : 0, 485
Remote Config [baseline] (685.07 µs) : 0, 685
Remote Config [candidate] (668.11 µs) : 0, 668
Telemetry [baseline] (7.331 ms) : 0, 7331
Telemetry [candidate] (7.262 ms) : 0, 7262
section appsec
BytebuddyAgent [baseline] (645.493 ms) : 0, 645493
BytebuddyAgent [candidate] (650.103 ms) : 0, 650103
GlobalTracer [baseline] (298.406 ms) : 0, 298406
GlobalTracer [candidate] (300.174 ms) : 0, 300174
AppSec [baseline] (136.541 ms) : 0, 136541
AppSec [candidate] (137.681 ms) : 0, 137681
IAST [candidate] (461.569 µs) : 0, 462
Remote Config [baseline] (641.356 µs) : 0, 641
Remote Config [candidate] (642.315 µs) : 0, 642
Telemetry [baseline] (6.821 ms) : 0, 6821
Telemetry [candidate] (6.944 ms) : 0, 6944
section iast
BytebuddyAgent [baseline] (766.129 ms) : 0, 766129
BytebuddyAgent [candidate] (766.113 ms) : 0, 766113
GlobalTracer [baseline] (278.862 ms) : 0, 278862
GlobalTracer [candidate] (278.844 ms) : 0, 278844
AppSec [baseline] (48.49 ms) : 0, 48490
AppSec [candidate] (48.764 ms) : 0, 48764
IAST [baseline] (14.779 ms) : 0, 14779
IAST [candidate] (16.856 ms) : 0, 16856
Remote Config [baseline] (594.872 µs) : 0, 595
Remote Config [candidate] (573.901 µs) : 0, 574
Telemetry [baseline] (9.587 ms) : 0, 9587
Telemetry [candidate] (8.685 ms) : 0, 8685
section profiling
BytebuddyAgent [baseline] (656.667 ms) : 0, 656667
BytebuddyAgent [candidate] (662.157 ms) : 0, 662157
GlobalTracer [baseline] (368.84 ms) : 0, 368840
GlobalTracer [candidate] (371.733 ms) : 0, 371733
AppSec [baseline] (48.505 ms) : 0, 48505
AppSec [candidate] (49.027 ms) : 0, 49027
IAST [candidate] (481.402 µs) : 0, 481
Remote Config [baseline] (707.83 µs) : 0, 708
Remote Config [candidate] (709.657 µs) : 0, 710
Telemetry [baseline] (7.415 ms) : 0, 7415
Telemetry [candidate] (7.432 ms) : 0, 7432
ProfilingAgent [baseline] (87.998 ms) : 0, 87998
ProfilingAgent [candidate] (88.643 ms) : 0, 88643
Profiling [baseline] (88.022 ms) : 0, 88022
Profiling [candidate] (88.667 ms) : 0, 88667

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2023-11-27T18:03:59 2023-11-27T18:20:32
git_branch master smola/subsystem-init-refactor
git_commit_date 1701096865 1701106793
git_commit_sha 0f2d96f0b4 c72f8d3110
release_version 1.25.0-SNAPSHOT~0f2d96f0b4 1.25.0-SNAPSHOT~c72f8d3110
start_time 2023-11-27T18:03:46 2023-11-27T18:20:19
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1701109484 1701109484
ci_job_id 376635194 376635194
ci_pipeline_id 23834950 23834950
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.25.0-SNAPSHOT~c72f8d3110, baseline=1.25.0-SNAPSHOT~0f2d96f0b4
    dateFormat X
    axisFormat %s
section baseline
no_agent (368.333 µs) : 347, 390
.   : milestone, 368,
iast (471.468 µs) : 451, 492
.   : milestone, 471,
iast_FULL (532.587 µs) : 512, 553
.   : milestone, 533,
iast_INACTIVE (439.403 µs) : 419, 460
.   : milestone, 439,
iast_TELEMETRY_OFF (461.371 µs) : 441, 482
.   : milestone, 461,
tracing (436.769 µs) : 416, 457
.   : milestone, 437,
section candidate
no_agent (364.732 µs) : 345, 385
.   : milestone, 365,
iast (468.856 µs) : 449, 489
.   : milestone, 469,
iast_FULL (529.649 µs) : 509, 550
.   : milestone, 530,
iast_INACTIVE (444.639 µs) : 424, 465
.   : milestone, 445,
iast_TELEMETRY_OFF (467.593 µs) : 447, 489
.   : milestone, 468,
tracing (439.387 µs) : 418, 460
.   : milestone, 439,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 368.333 µs [346.918 µs, 389.748 µs] -
iast 471.468 µs [450.895 µs, 492.042 µs] 103.135 µs (28.0%)
iast_FULL 532.587 µs [512.175 µs, 552.998 µs] 164.253 µs (44.6%)
iast_INACTIVE 439.403 µs [419.271 µs, 459.536 µs] 71.07 µs (19.3%)
iast_TELEMETRY_OFF 461.371 µs [440.603 µs, 482.138 µs] 93.037 µs (25.3%)
tracing 436.769 µs [416.197 µs, 457.34 µs] 68.435 µs (18.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 364.732 µs [344.802 µs, 384.661 µs] -
iast 468.856 µs [448.52 µs, 489.192 µs] 104.124 µs (28.5%)
iast_FULL 529.649 µs [509.321 µs, 549.977 µs] 164.918 µs (45.2%)
iast_INACTIVE 444.639 µs [423.867 µs, 465.411 µs] 79.908 µs (21.9%)
iast_TELEMETRY_OFF 467.593 µs [446.559 µs, 488.626 µs] 102.861 µs (28.2%)
tracing 439.387 µs [418.339 µs, 460.435 µs] 74.656 µs (20.5%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.25.0-SNAPSHOT~c72f8d3110, baseline=1.25.0-SNAPSHOT~0f2d96f0b4
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.368 ms) : 1348, 1387
.   : milestone, 1368,
appsec (1.771 ms) : 1746, 1796
.   : milestone, 1771,
iast (1.496 ms) : 1471, 1520
.   : milestone, 1496,
profiling (1.539 ms) : 1513, 1565
.   : milestone, 1539,
tracing (1.497 ms) : 1472, 1521
.   : milestone, 1497,
section candidate
no_agent (1.354 ms) : 1334, 1373
.   : milestone, 1354,
appsec (1.733 ms) : 1707, 1758
.   : milestone, 1733,
iast (1.533 ms) : 1509, 1558
.   : milestone, 1533,
profiling (1.5 ms) : 1475, 1525
.   : milestone, 1500,
tracing (1.515 ms) : 1490, 1539
.   : milestone, 1515,
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.368 ms [1.348 ms, 1.387 ms] -
appsec 1.771 ms [1.746 ms, 1.796 ms] 403.294 µs (29.5%)
iast 1.496 ms [1.471 ms, 1.52 ms] 127.929 µs (9.4%)
profiling 1.539 ms [1.513 ms, 1.565 ms] 171.541 µs (12.5%)
tracing 1.497 ms [1.472 ms, 1.521 ms] 128.861 µs (9.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.354 ms [1.334 ms, 1.373 ms] -
appsec 1.733 ms [1.707 ms, 1.758 ms] 378.874 µs (28.0%)
iast 1.533 ms [1.509 ms, 1.558 ms] 179.742 µs (13.3%)
profiling 1.5 ms [1.475 ms, 1.525 ms] 146.293 µs (10.8%)
tracing 1.515 ms [1.49 ms, 1.539 ms] 161.159 µs (11.9%)

pr-commenter[bot] avatar Nov 27 '23 18:11 pr-commenter[bot]