-
Notifications
You must be signed in to change notification settings - Fork 291
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
Runtime drop-in support for OpenTelemetry instrumentations #7086
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 49 metrics, 14 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.069 s) : 0, 1068744
Total [baseline] (8.578 s) : 0, 8578116
Agent [candidate] (1.062 s) : 0, 1062359
Total [candidate] (8.56 s) : 0, 8559889
section iast
Agent [baseline] (1.186 s) : 0, 1186125
Total [baseline] (9.01 s) : 0, 9009783
Agent [candidate] (1.187 s) : 0, 1186961
Total [candidate] (9.03 s) : 0, 9030371
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.194 s) : 0, 1193629
Total [baseline] (9.008 s) : 0, 9008216
Agent [candidate] (1.186 s) : 0, 1185707
Total [candidate] (8.99 s) : 0, 8990349
section iast_TELEMETRY_OFF
Agent [baseline] (1.187 s) : 0, 1187305
Total [baseline] (9.034 s) : 0, 9033727
Agent [candidate] (1.179 s) : 0, 1179219
Total [candidate] (8.991 s) : 0, 8991392
gantt
title insecure-bank - break down per module: candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (659.275 ms) : 0, 659275
BytebuddyAgent [candidate] (655.168 ms) : 0, 655168
GlobalTracer [baseline] (316.009 ms) : 0, 316009
GlobalTracer [candidate] (314.194 ms) : 0, 314194
AppSec [baseline] (50.301 ms) : 0, 50301
AppSec [candidate] (50.061 ms) : 0, 50061
Remote Config [baseline] (673.228 µs) : 0, 673
Remote Config [candidate] (671.25 µs) : 0, 671
Telemetry [baseline] (7.682 ms) : 0, 7682
Telemetry [candidate] (7.69 ms) : 0, 7690
section iast
BytebuddyAgent [baseline] (777.489 ms) : 0, 777489
BytebuddyAgent [candidate] (777.93 ms) : 0, 777930
GlobalTracer [baseline] (292.616 ms) : 0, 292616
GlobalTracer [candidate] (293.894 ms) : 0, 293894
AppSec [baseline] (48.398 ms) : 0, 48398
AppSec [candidate] (47.83 ms) : 0, 47830
Remote Config [baseline] (602.796 µs) : 0, 603
Remote Config [candidate] (614.369 µs) : 0, 614
Telemetry [baseline] (8.035 ms) : 0, 8035
Telemetry [candidate] (8.209 ms) : 0, 8209
IAST [baseline] (24.581 ms) : 0, 24581
IAST [candidate] (24.108 ms) : 0, 24108
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (782.29 ms) : 0, 782290
BytebuddyAgent [candidate] (777.277 ms) : 0, 777277
GlobalTracer [baseline] (294.615 ms) : 0, 294615
GlobalTracer [candidate] (292.476 ms) : 0, 292476
AppSec [baseline] (49.229 ms) : 0, 49229
AppSec [candidate] (47.722 ms) : 0, 47722
Remote Config [baseline] (592.715 µs) : 0, 593
Remote Config [candidate] (597.938 µs) : 0, 598
Telemetry [baseline] (6.617 ms) : 0, 6617
Telemetry [candidate] (6.64 ms) : 0, 6640
IAST [baseline] (25.722 ms) : 0, 25722
IAST [candidate] (26.52 ms) : 0, 26520
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (776.935 ms) : 0, 776935
BytebuddyAgent [candidate] (772.265 ms) : 0, 772265
GlobalTracer [baseline] (292.92 ms) : 0, 292920
GlobalTracer [candidate] (291.977 ms) : 0, 291977
AppSec [baseline] (49.313 ms) : 0, 49313
AppSec [candidate] (49.031 ms) : 0, 49031
Remote Config [baseline] (625.292 µs) : 0, 625
Remote Config [candidate] (586.234 µs) : 0, 586
Telemetry [baseline] (6.534 ms) : 0, 6534
Telemetry [candidate] (8.043 ms) : 0, 8043
IAST [baseline] (26.425 ms) : 0, 26425
IAST [candidate] (22.919 ms) : 0, 22919
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.056 s) : 0, 1056338
Total [baseline] (10.311 s) : 0, 10311195
Agent [candidate] (1.055 s) : 0, 1054909
Total [candidate] (10.303 s) : 0, 10302881
section appsec
Agent [baseline] (1.183 s) : 0, 1183277
Total [baseline] (10.456 s) : 0, 10455823
Agent [candidate] (1.177 s) : 0, 1177133
Total [candidate] (10.516 s) : 0, 10516050
section iast
Agent [baseline] (1.183 s) : 0, 1182789
Total [baseline] (10.792 s) : 0, 10792279
Agent [candidate] (1.185 s) : 0, 1184717
Total [candidate] (10.733 s) : 0, 10732747
section profiling
Agent [baseline] (1.254 s) : 0, 1253738
Total [baseline] (10.526 s) : 0, 10525935
Agent [candidate] (1.266 s) : 0, 1265972
Total [candidate] (10.657 s) : 0, 10656655
gantt
title petclinic - break down per module: candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (651.906 ms) : 0, 651906
BytebuddyAgent [candidate] (651.095 ms) : 0, 651095
GlobalTracer [baseline] (312.161 ms) : 0, 312161
GlobalTracer [candidate] (311.597 ms) : 0, 311597
AppSec [baseline] (49.771 ms) : 0, 49771
AppSec [candidate] (49.701 ms) : 0, 49701
Remote Config [baseline] (660.547 µs) : 0, 661
Remote Config [candidate] (661.871 µs) : 0, 662
Telemetry [baseline] (7.553 ms) : 0, 7553
Telemetry [candidate] (7.58 ms) : 0, 7580
section appsec
BytebuddyAgent [baseline] (678.312 ms) : 0, 678312
BytebuddyAgent [candidate] (675.523 ms) : 0, 675523
GlobalTracer [baseline] (297.487 ms) : 0, 297487
GlobalTracer [candidate] (296.073 ms) : 0, 296073
AppSec [baseline] (153.364 ms) : 0, 153364
AppSec [candidate] (152.934 ms) : 0, 152934
Remote Config [baseline] (640.774 µs) : 0, 641
Remote Config [candidate] (631.97 µs) : 0, 632
Telemetry [baseline] (9.466 ms) : 0, 9466
Telemetry [candidate] (8.099 ms) : 0, 8099
IAST [baseline] (18.841 ms) : 0, 18841
IAST [candidate] (18.941 ms) : 0, 18941
section iast
BytebuddyAgent [baseline] (777.423 ms) : 0, 777423
BytebuddyAgent [candidate] (775.937 ms) : 0, 775937
GlobalTracer [baseline] (292.623 ms) : 0, 292623
GlobalTracer [candidate] (292.38 ms) : 0, 292380
AppSec [baseline] (47.44 ms) : 0, 47440
AppSec [candidate] (48.561 ms) : 0, 48561
Remote Config [baseline] (588.358 µs) : 0, 588
Remote Config [candidate] (603.998 µs) : 0, 604
Telemetry [baseline] (6.666 ms) : 0, 6666
Telemetry [candidate] (8.802 ms) : 0, 8802
IAST [baseline] (23.72 ms) : 0, 23720
IAST [candidate] (24.046 ms) : 0, 24046
section profiling
BytebuddyAgent [baseline] (658.889 ms) : 0, 658889
BytebuddyAgent [candidate] (665.542 ms) : 0, 665542
GlobalTracer [baseline] (383.929 ms) : 0, 383929
GlobalTracer [candidate] (386.988 ms) : 0, 386988
AppSec [baseline] (50.2 ms) : 0, 50200
AppSec [candidate] (50.837 ms) : 0, 50837
Remote Config [baseline] (867.496 µs) : 0, 867
Remote Config [candidate] (858.284 µs) : 0, 858
Telemetry [baseline] (7.436 ms) : 0, 7436
Telemetry [candidate] (7.52 ms) : 0, 7520
ProfilingAgent [baseline] (96.102 ms) : 0, 96102
ProfilingAgent [candidate] (97.429 ms) : 0, 97429
Profiling [baseline] (96.126 ms) : 0, 96126
Profiling [candidate] (97.454 ms) : 0, 97454
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 18 unstable metrics. Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section baseline
no_agent (368.629 µs) : 349, 388
. : milestone, 369,
iast (474.4 µs) : 454, 495
. : milestone, 474,
iast_FULL (548.916 µs) : 528, 570
. : milestone, 549,
iast_GLOBAL (512.147 µs) : 490, 534
. : milestone, 512,
iast_HARDCODED_SECRET_DISABLED (483.087 µs) : 460, 506
. : milestone, 483,
iast_INACTIVE (451.831 µs) : 431, 473
. : milestone, 452,
iast_TELEMETRY_OFF (466.445 µs) : 445, 488
. : milestone, 466,
tracing (432.615 µs) : 412, 453
. : milestone, 433,
section candidate
no_agent (369.106 µs) : 349, 389
. : milestone, 369,
iast (483.103 µs) : 462, 504
. : milestone, 483,
iast_FULL (551.883 µs) : 531, 573
. : milestone, 552,
iast_GLOBAL (513.926 µs) : 492, 536
. : milestone, 514,
iast_HARDCODED_SECRET_DISABLED (478.822 µs) : 456, 501
. : milestone, 479,
iast_INACTIVE (448.574 µs) : 427, 470
. : milestone, 449,
iast_TELEMETRY_OFF (468.112 µs) : 447, 490
. : milestone, 468,
tracing (436.798 µs) : 416, 457
. : milestone, 437,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section baseline
no_agent (1.343 ms) : 1324, 1363
. : milestone, 1343,
appsec (1.708 ms) : 1683, 1733
. : milestone, 1708,
appsec_no_iast (1.708 ms) : 1684, 1733
. : milestone, 1708,
iast (1.492 ms) : 1469, 1514
. : milestone, 1492,
profiling (1.541 ms) : 1516, 1567
. : milestone, 1541,
tracing (1.484 ms) : 1461, 1508
. : milestone, 1484,
section candidate
no_agent (1.355 ms) : 1336, 1374
. : milestone, 1355,
appsec (1.73 ms) : 1707, 1754
. : milestone, 1730,
appsec_no_iast (1.721 ms) : 1697, 1746
. : milestone, 1721,
iast (1.495 ms) : 1472, 1519
. : milestone, 1495,
profiling (1.495 ms) : 1469, 1521
. : milestone, 1495,
tracing (1.456 ms) : 1432, 1480
. : milestone, 1456,
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.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section baseline
no_agent (1.46 ms) : 1449, 1472
. : milestone, 1460,
appsec (2.182 ms) : 2149, 2216
. : milestone, 2182,
iast (1.95 ms) : 1909, 1991
. : milestone, 1950,
iast_GLOBAL (1.99 ms) : 1950, 2031
. : milestone, 1990,
profiling (1.833 ms) : 1800, 1866
. : milestone, 1833,
tracing (1.826 ms) : 1793, 1858
. : milestone, 1826,
section candidate
no_agent (1.457 ms) : 1446, 1469
. : milestone, 1457,
appsec (2.205 ms) : 2170, 2240
. : milestone, 2205,
iast (1.967 ms) : 1926, 2009
. : milestone, 1967,
iast_GLOBAL (1.984 ms) : 1944, 2025
. : milestone, 1984,
profiling (1.834 ms) : 1800, 1868
. : milestone, 1834,
tracing (1.82 ms) : 1787, 1852
. : milestone, 1820,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.35.0-SNAPSHOT~c771141fce, baseline=1.35.0-SNAPSHOT~86231f4e3c
dateFormat X
axisFormat %s
section baseline
no_agent (14.896 s) : 14896000, 14896000
. : milestone, 14896000,
appsec (14.875 s) : 14875000, 14875000
. : milestone, 14875000,
iast (18.76 s) : 18760000, 18760000
. : milestone, 18760000,
iast_GLOBAL (17.768 s) : 17768000, 17768000
. : milestone, 17768000,
profiling (14.932 s) : 14932000, 14932000
. : milestone, 14932000,
tracing (15.187 s) : 15187000, 15187000
. : milestone, 15187000,
section candidate
no_agent (15.26 s) : 15260000, 15260000
. : milestone, 15260000,
appsec (14.873 s) : 14873000, 14873000
. : milestone, 14873000,
iast (18.817 s) : 18817000, 18817000
. : milestone, 18817000,
iast_GLOBAL (17.841 s) : 17841000, 17841000
. : milestone, 17841000,
profiling (15.369 s) : 15369000, 15369000
. : milestone, 15369000,
tracing (14.965 s) : 14965000, 14965000
. : milestone, 14965000,
|
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.
OtelTransformerState
is a clever way of handling transformer callback difference 👍
By the way, did the otel.
prefix/namespace was approved accros all languages or is it only a Java thing?
Looks good to me overall. Can't wait to review the next step 😉
The ability to enable/disable individual instrumentations by a named system property or environment variable appears to be unique to Java. The instrumentation names in OpenTelemetry contain dashes, so I decided to use a dot as a separator in the prefix to make clear it isn't part of the original name. (Dot is also a safe character for system property names.) For example, the |
What Does This Do
Provides initial drop-in support for OpenTelemetry instrumentations at runtime, enough to load the OpenTelemetry demo instrumentation.
Mapping of muzzle declarations and virtual fields will be in another PR, followed by wider configuration support.
Additional Notes
Builds on #7049 and #7072
Jira ticket: APMAPI-68