-
Notifications
You must be signed in to change notification settings - Fork 320
Add feature-flag to enable instrumentation-based class injection #9901
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
|
🎯 Code Coverage 🔗 Commit SHA: 08507ff | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 51 metrics, 14 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.032 s) : 0, 1032113
Total [baseline] (10.818 s) : 0, 10818038
Agent [candidate] (1.047 s) : 0, 1047084
Total [candidate] (10.905 s) : 0, 10904642
section appsec
Agent [baseline] (1.204 s) : 0, 1203780
Total [baseline] (11.02 s) : 0, 11020253
Agent [candidate] (1.22 s) : 0, 1219935
Total [candidate] (10.996 s) : 0, 10995667
section iast
Agent [baseline] (1.163 s) : 0, 1162617
Total [baseline] (11.17 s) : 0, 11170472
Agent [candidate] (1.176 s) : 0, 1175943
Total [candidate] (11.217 s) : 0, 11216864
section profiling
Agent [baseline] (1.183 s) : 0, 1183479
Total [baseline] (10.967 s) : 0, 10966589
Agent [candidate] (1.198 s) : 0, 1197835
Total [candidate] (10.881 s) : 0, 10880844
gantt
title petclinic - break down per module: candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.475 ms) : 0, 1475
crashtracking [candidate] (1.455 ms) : 0, 1455
BytebuddyAgent [baseline] (703.58 ms) : 0, 703580
BytebuddyAgent [candidate] (705.304 ms) : 0, 705304
GlobalTracer [baseline] (245.363 ms) : 0, 245363
GlobalTracer [candidate] (245.261 ms) : 0, 245261
AppSec [baseline] (32.441 ms) : 0, 32441
AppSec [candidate] (32.396 ms) : 0, 32396
Debugger [baseline] (6.43 ms) : 0, 6430
Debugger [candidate] (6.381 ms) : 0, 6381
Remote Config [baseline] (693.098 µs) : 0, 693
Remote Config [candidate] (673.274 µs) : 0, 673
Telemetry [baseline] (15.14 ms) : 0, 15140
Telemetry [candidate] (14.389 ms) : 0, 14389
Flare Poller [baseline] (5.761 ms) : 0, 5761
Flare Poller [candidate] (6.398 ms) : 0, 6398
section appsec
crashtracking [baseline] (1.477 ms) : 0, 1477
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (726.746 ms) : 0, 726746
BytebuddyAgent [candidate] (727.129 ms) : 0, 727129
GlobalTracer [baseline] (236.211 ms) : 0, 236211
GlobalTracer [candidate] (236.493 ms) : 0, 236493
AppSec [baseline] (174.406 ms) : 0, 174406
AppSec [candidate] (175.703 ms) : 0, 175703
Debugger [baseline] (5.912 ms) : 0, 5912
Debugger [candidate] (6.053 ms) : 0, 6053
Remote Config [baseline] (644.464 µs) : 0, 644
Remote Config [candidate] (673.55 µs) : 0, 674
Telemetry [baseline] (8.339 ms) : 0, 8339
Telemetry [candidate] (8.634 ms) : 0, 8634
Flare Poller [baseline] (3.929 ms) : 0, 3929
Flare Poller [candidate] (4.059 ms) : 0, 4059
IAST [baseline] (24.888 ms) : 0, 24888
IAST [candidate] (24.953 ms) : 0, 24953
section iast
crashtracking [baseline] (1.47 ms) : 0, 1470
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (824.603 ms) : 0, 824603
BytebuddyAgent [candidate] (824.835 ms) : 0, 824835
GlobalTracer [baseline] (234.275 ms) : 0, 234275
GlobalTracer [candidate] (233.952 ms) : 0, 233952
AppSec [baseline] (27.971 ms) : 0, 27971
AppSec [candidate] (29.817 ms) : 0, 29817
Debugger [baseline] (6.146 ms) : 0, 6146
Debugger [candidate] (6.117 ms) : 0, 6117
Remote Config [baseline] (605.252 µs) : 0, 605
Remote Config [candidate] (601.708 µs) : 0, 602
Telemetry [baseline] (8.446 ms) : 0, 8446
Telemetry [candidate] (8.523 ms) : 0, 8523
Flare Poller [baseline] (4.083 ms) : 0, 4083
Flare Poller [candidate] (4.09 ms) : 0, 4090
IAST [baseline] (33.637 ms) : 0, 33637
IAST [candidate] (31.496 ms) : 0, 31496
section profiling
crashtracking [baseline] (1.48 ms) : 0, 1480
crashtracking [candidate] (1.469 ms) : 0, 1469
BytebuddyAgent [baseline] (732.682 ms) : 0, 732682
BytebuddyAgent [candidate] (732.812 ms) : 0, 732812
GlobalTracer [baseline] (222.481 ms) : 0, 222481
GlobalTracer [candidate] (223.043 ms) : 0, 223043
AppSec [baseline] (33.335 ms) : 0, 33335
AppSec [candidate] (32.549 ms) : 0, 32549
Debugger [baseline] (12.367 ms) : 0, 12367
Debugger [candidate] (9.0 ms) : 0, 9000
Remote Config [baseline] (2.209 ms) : 0, 2209
Remote Config [candidate] (1.476 ms) : 0, 1476
Telemetry [baseline] (8.388 ms) : 0, 8388
Telemetry [candidate] (12.824 ms) : 0, 12824
Flare Poller [baseline] (4.132 ms) : 0, 4132
Flare Poller [candidate] (4.21 ms) : 0, 4210
ProfilingAgent [baseline] (110.475 ms) : 0, 110475
ProfilingAgent [candidate] (110.889 ms) : 0, 110889
Profiling [baseline] (111.099 ms) : 0, 111099
Profiling [candidate] (111.541 ms) : 0, 111541
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.041 s) : 0, 1041291
Total [baseline] (8.679 s) : 0, 8679157
Agent [candidate] (1.047 s) : 0, 1047418
Total [candidate] (8.654 s) : 0, 8653801
section iast
Agent [baseline] (1.172 s) : 0, 1171503
Total [baseline] (9.377 s) : 0, 9376889
Agent [candidate] (1.186 s) : 0, 1185934
Total [candidate] (9.297 s) : 0, 9296603
gantt
title insecure-bank - break down per module: candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.476 ms) : 0, 1476
crashtracking [candidate] (1.469 ms) : 0, 1469
BytebuddyAgent [baseline] (709.743 ms) : 0, 709743
BytebuddyAgent [candidate] (705.534 ms) : 0, 705534
GlobalTracer [baseline] (247.868 ms) : 0, 247868
GlobalTracer [candidate] (245.642 ms) : 0, 245642
AppSec [baseline] (32.763 ms) : 0, 32763
AppSec [candidate] (32.486 ms) : 0, 32486
Debugger [baseline] (6.508 ms) : 0, 6508
Debugger [candidate] (6.395 ms) : 0, 6395
Remote Config [baseline] (722.166 µs) : 0, 722
Remote Config [candidate] (680.534 µs) : 0, 681
Telemetry [baseline] (14.406 ms) : 0, 14406
Telemetry [candidate] (13.778 ms) : 0, 13778
Flare Poller [baseline] (6.568 ms) : 0, 6568
Flare Poller [candidate] (6.442 ms) : 0, 6442
section iast
crashtracking [baseline] (1.497 ms) : 0, 1497
crashtracking [candidate] (1.507 ms) : 0, 1507
BytebuddyAgent [baseline] (831.893 ms) : 0, 831893
BytebuddyAgent [candidate] (832.441 ms) : 0, 832441
GlobalTracer [baseline] (235.286 ms) : 0, 235286
GlobalTracer [candidate] (235.394 ms) : 0, 235394
AppSec [baseline] (30.773 ms) : 0, 30773
AppSec [candidate] (30.039 ms) : 0, 30039
Debugger [baseline] (6.125 ms) : 0, 6125
Debugger [candidate] (6.229 ms) : 0, 6229
Remote Config [baseline] (607.722 µs) : 0, 608
Remote Config [candidate] (611.562 µs) : 0, 612
Telemetry [baseline] (8.445 ms) : 0, 8445
Telemetry [candidate] (8.628 ms) : 0, 8628
Flare Poller [baseline] (4.194 ms) : 0, 4194
Flare Poller [candidate] (4.136 ms) : 0, 4136
IAST [baseline] (31.139 ms) : 0, 31139
IAST [candidate] (31.716 ms) : 0, 31716
LoadParameters
See matching parameters
SummaryFound 5 performance improvements and 1 performance regressions! Performance is the same for 6 metrics, 12 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section baseline
no_agent (19.095 ms) : 18900, 19290
. : milestone, 19095,
appsec (20.521 ms) : 20313, 20729
. : milestone, 20521,
code_origins (18.468 ms) : 18281, 18655
. : milestone, 18468,
iast (19.906 ms) : 19705, 20107
. : milestone, 19906,
profiling (20.434 ms) : 20230, 20639
. : milestone, 20434,
tracing (18.331 ms) : 18149, 18513
. : milestone, 18331,
section candidate
no_agent (16.966 ms) : 16802, 17129
. : milestone, 16966,
appsec (18.44 ms) : 18257, 18622
. : milestone, 18440,
code_origins (17.791 ms) : 17611, 17970
. : milestone, 17791,
iast (17.979 ms) : 17796, 18161
. : milestone, 17979,
profiling (20.741 ms) : 20532, 20951
. : milestone, 20741,
tracing (17.61 ms) : 17436, 17785
. : milestone, 17610,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section baseline
no_agent (1.176 ms) : 1164, 1187
. : milestone, 1176,
iast (3.226 ms) : 3182, 3270
. : milestone, 3226,
iast_FULL (5.832 ms) : 5774, 5891
. : milestone, 5832,
iast_GLOBAL (3.621 ms) : 3557, 3685
. : milestone, 3621,
profiling (1.916 ms) : 1900, 1933
. : milestone, 1916,
tracing (1.796 ms) : 1781, 1811
. : milestone, 1796,
section candidate
no_agent (1.199 ms) : 1187, 1210
. : milestone, 1199,
iast (3.222 ms) : 3182, 3262
. : milestone, 3222,
iast_FULL (5.753 ms) : 5695, 5810
. : milestone, 5753,
iast_GLOBAL (3.614 ms) : 3561, 3666
. : milestone, 3614,
profiling (2.109 ms) : 2091, 2126
. : milestone, 2109,
tracing (1.762 ms) : 1747, 1777
. : milestone, 1762,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section baseline
no_agent (15.496 s) : 15496000, 15496000
. : milestone, 15496000,
appsec (15.165 s) : 15165000, 15165000
. : milestone, 15165000,
iast (18.819 s) : 18819000, 18819000
. : milestone, 18819000,
iast_GLOBAL (18.107 s) : 18107000, 18107000
. : milestone, 18107000,
profiling (15.359 s) : 15359000, 15359000
. : milestone, 15359000,
tracing (15.068 s) : 15068000, 15068000
. : milestone, 15068000,
section candidate
no_agent (14.963 s) : 14963000, 14963000
. : milestone, 14963000,
appsec (14.916 s) : 14916000, 14916000
. : milestone, 14916000,
iast (18.889 s) : 18889000, 18889000
. : milestone, 18889000,
iast_GLOBAL (17.835 s) : 17835000, 17835000
. : milestone, 17835000,
profiling (15.208 s) : 15208000, 15208000
. : milestone, 15208000,
tracing (14.874 s) : 14874000, 14874000
. : milestone, 14874000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~08507ffaa9, baseline=1.55.0-SNAPSHOT~364bb8b68f
dateFormat X
axisFormat %s
section baseline
no_agent (1.482 ms) : 1471, 1494
. : milestone, 1482,
appsec (3.789 ms) : 3567, 4011
. : milestone, 3789,
iast (2.211 ms) : 2147, 2274
. : milestone, 2211,
iast_GLOBAL (2.255 ms) : 2191, 2320
. : milestone, 2255,
profiling (2.073 ms) : 2020, 2126
. : milestone, 2073,
tracing (2.029 ms) : 1979, 2079
. : milestone, 2029,
section candidate
no_agent (1.475 ms) : 1464, 1487
. : milestone, 1475,
appsec (3.664 ms) : 3451, 3876
. : milestone, 3664,
iast (2.217 ms) : 2153, 2280
. : milestone, 2217,
iast_GLOBAL (2.256 ms) : 2192, 2320
. : milestone, 2256,
profiling (2.062 ms) : 2010, 2114
. : milestone, 2062,
tracing (2.029 ms) : 1979, 2079
. : milestone, 2029,
|
530012a to
08507ff
Compare
amarziali
left a comment
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.
🎉
sarahchen6
left a comment
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.
Cool!
What Does This Do
Support using
dd-instrument-javato inject helper classes.This uses an instrumentation-based approach to access
defineClassrather thanUnsafe.Note that we enable class injection in
Agentso any product can use this feature - it is no longer limited to instrumentations. It also provides the ability to inject classes into the boot-loader.Motivation
Removes one more use of
Unsafefrom the codebase.Additional Notes
The previous unsafe-based class injection can be re-enabled with this JVM argument:
or by setting this environment variable:
Contributor Checklist
type:and (comp:orinst:) labels in addition to any useful labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: APMAPI-1654