-
Notifications
You must be signed in to change notification settings - Fork 315
Add metrics OpenTelemetry instrumentation entry mechanism #9908
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
base: master
Are you sure you want to change the base?
Conversation
|
🎯 Code Coverage 🔗 Commit SHA: b0b9e20 | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
BenchmarksStartupParameters
See matching parameters
SummaryFound 14 performance improvements and 9 performance regressions! Performance is the same for 31 metrics, 11 unstable metrics.
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.103 s) : 0, 1102620
Total [baseline] (10.825 s) : 0, 10825484
Agent [candidate] (1.052 s) : 0, 1052351
Total [candidate] (10.94 s) : 0, 10939613
section appsec
Agent [baseline] (1.282 s) : 0, 1282250
Total [baseline] (11.182 s) : 0, 11182488
Agent [candidate] (1.221 s) : 0, 1221422
Total [candidate] (11.0 s) : 0, 10999517
section iast
Agent [baseline] (1.254 s) : 0, 1253688
Total [baseline] (11.259 s) : 0, 11259110
Agent [candidate] (1.177 s) : 0, 1176912
Total [candidate] (11.141 s) : 0, 11141339
section profiling
Agent [baseline] (1.25 s) : 0, 1250122
Total [baseline] (11.28 s) : 0, 11279714
Agent [candidate] (1.193 s) : 0, 1193167
Total [candidate] (10.884 s) : 0, 10884112
gantt
title petclinic - break down per module: candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.459 ms) : 0, 1459
crashtracking [candidate] (1.468 ms) : 0, 1468
BytebuddyAgent [baseline] (706.559 ms) : 0, 706559
BytebuddyAgent [candidate] (708.76 ms) : 0, 708760
GlobalTracer [baseline] (249.684 ms) : 0, 249684
GlobalTracer [candidate] (246.783 ms) : 0, 246783
AppSec [baseline] (32.551 ms) : 0, 32551
AppSec [candidate] (32.459 ms) : 0, 32459
Debugger [baseline] (64.94 ms) : 0, 64940
Debugger [candidate] (6.428 ms) : 0, 6428
Remote Config [baseline] (650.08 µs) : 0, 650
Remote Config [candidate] (710.394 µs) : 0, 710
Telemetry [baseline] (8.286 ms) : 0, 8286
Telemetry [candidate] (14.323 ms) : 0, 14323
Flare Poller [baseline] (3.767 ms) : 0, 3767
Flare Poller [candidate] (6.537 ms) : 0, 6537
section appsec
crashtracking [baseline] (1.465 ms) : 0, 1465
crashtracking [candidate] (1.456 ms) : 0, 1456
BytebuddyAgent [baseline] (730.935 ms) : 0, 730935
BytebuddyAgent [candidate] (728.506 ms) : 0, 728506
GlobalTracer [baseline] (241.374 ms) : 0, 241374
GlobalTracer [candidate] (237.489 ms) : 0, 237489
AppSec [baseline] (174.758 ms) : 0, 174758
AppSec [candidate] (175.117 ms) : 0, 175117
Debugger [baseline] (60.834 ms) : 0, 60834
Debugger [candidate] (6.008 ms) : 0, 6008
Remote Config [baseline] (678.259 µs) : 0, 678
Remote Config [candidate] (684.705 µs) : 0, 685
Telemetry [baseline] (8.445 ms) : 0, 8445
Telemetry [candidate] (8.584 ms) : 0, 8584
Flare Poller [baseline] (3.932 ms) : 0, 3932
Flare Poller [candidate] (3.973 ms) : 0, 3973
IAST [baseline] (24.954 ms) : 0, 24954
IAST [candidate] (24.783 ms) : 0, 24783
section iast
crashtracking [baseline] (1.492 ms) : 0, 1492
crashtracking [candidate] (1.465 ms) : 0, 1465
BytebuddyAgent [baseline] (843.99 ms) : 0, 843990
BytebuddyAgent [candidate] (826.212 ms) : 0, 826212
GlobalTracer [baseline] (239.162 ms) : 0, 239162
GlobalTracer [candidate] (234.09 ms) : 0, 234090
AppSec [baseline] (31.167 ms) : 0, 31167
AppSec [candidate] (26.884 ms) : 0, 26884
Debugger [baseline] (60.706 ms) : 0, 60706
Debugger [candidate] (5.998 ms) : 0, 5998
Remote Config [baseline] (546.178 µs) : 0, 546
Remote Config [candidate] (665.887 µs) : 0, 666
Telemetry [baseline] (7.616 ms) : 0, 7616
Telemetry [candidate] (8.423 ms) : 0, 8423
Flare Poller [baseline] (3.464 ms) : 0, 3464
Flare Poller [candidate] (4.088 ms) : 0, 4088
IAST [baseline] (30.557 ms) : 0, 30557
IAST [candidate] (34.217 ms) : 0, 34217
section profiling
ProfilingAgent [baseline] (98.705 ms) : 0, 98705
ProfilingAgent [candidate] (110.534 ms) : 0, 110534
crashtracking [baseline] (1.458 ms) : 0, 1458
crashtracking [candidate] (1.447 ms) : 0, 1447
BytebuddyAgent [baseline] (743.061 ms) : 0, 743061
BytebuddyAgent [candidate] (729.319 ms) : 0, 729319
GlobalTracer [baseline] (226.022 ms) : 0, 226022
GlobalTracer [candidate] (222.287 ms) : 0, 222287
AppSec [baseline] (33.177 ms) : 0, 33177
AppSec [candidate] (32.068 ms) : 0, 32068
Debugger [baseline] (64.225 ms) : 0, 64225
Debugger [candidate] (7.502 ms) : 0, 7502
Remote Config [baseline] (660.747 µs) : 0, 661
Remote Config [candidate] (666.437 µs) : 0, 666
Telemetry [baseline] (8.179 ms) : 0, 8179
Telemetry [candidate] (15.424 ms) : 0, 15424
Flare Poller [baseline] (3.863 ms) : 0, 3863
Flare Poller [candidate] (4.083 ms) : 0, 4083
Profiling [baseline] (99.312 ms) : 0, 99312
Profiling [candidate] (111.184 ms) : 0, 111184
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.099 s) : 0, 1099219
Total [baseline] (8.854 s) : 0, 8853831
Agent [candidate] (1.045 s) : 0, 1045310
Total [candidate] (8.627 s) : 0, 8627150
section iast
Agent [baseline] (1.243 s) : 0, 1243369
Total [baseline] (9.565 s) : 0, 9564977
Agent [candidate] (1.178 s) : 0, 1177809
Total [candidate] (9.288 s) : 0, 9287916
gantt
title insecure-bank - break down per module: candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.464 ms) : 0, 1464
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (706.16 ms) : 0, 706160
BytebuddyAgent [candidate] (703.507 ms) : 0, 703507
GlobalTracer [baseline] (248.326 ms) : 0, 248326
GlobalTracer [candidate] (245.438 ms) : 0, 245438
AppSec [baseline] (32.371 ms) : 0, 32371
AppSec [candidate] (32.131 ms) : 0, 32131
Debugger [baseline] (63.634 ms) : 0, 63634
Debugger [candidate] (6.35 ms) : 0, 6350
Remote Config [baseline] (640.813 µs) : 0, 641
Remote Config [candidate] (709.114 µs) : 0, 709
Telemetry [baseline] (8.184 ms) : 0, 8184
Telemetry [candidate] (13.711 ms) : 0, 13711
Flare Poller [baseline] (3.656 ms) : 0, 3656
Flare Poller [candidate] (7.389 ms) : 0, 7389
section iast
crashtracking [baseline] (1.464 ms) : 0, 1464
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (835.111 ms) : 0, 835111
BytebuddyAgent [candidate] (826.819 ms) : 0, 826819
GlobalTracer [baseline] (238.332 ms) : 0, 238332
GlobalTracer [candidate] (234.286 ms) : 0, 234286
IAST [baseline] (31.018 ms) : 0, 31018
IAST [candidate] (31.52 ms) : 0, 31520
AppSec [baseline] (30.683 ms) : 0, 30683
AppSec [candidate] (29.764 ms) : 0, 29764
Debugger [baseline] (60.265 ms) : 0, 60265
Debugger [candidate] (6.002 ms) : 0, 6002
Remote Config [baseline] (554.068 µs) : 0, 554
Remote Config [candidate] (611.802 µs) : 0, 612
Telemetry [baseline] (7.644 ms) : 0, 7644
Telemetry [candidate] (8.511 ms) : 0, 8511
Flare Poller [baseline] (3.45 ms) : 0, 3450
Flare Poller [candidate] (4.15 ms) : 0, 4150
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 1 performance regressions! Performance is the same for 18 metrics, 16 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section baseline
no_agent (19.602 ms) : 19393, 19811
. : milestone, 19602,
appsec (18.713 ms) : 18524, 18902
. : milestone, 18713,
code_origins (17.614 ms) : 17440, 17788
. : milestone, 17614,
iast (17.866 ms) : 17685, 18046
. : milestone, 17866,
profiling (19.31 ms) : 19118, 19501
. : milestone, 19310,
tracing (17.816 ms) : 17639, 17993
. : milestone, 17816,
section candidate
no_agent (19.087 ms) : 18891, 19283
. : milestone, 19087,
appsec (18.534 ms) : 18348, 18721
. : milestone, 18534,
code_origins (18.764 ms) : 18575, 18953
. : milestone, 18764,
iast (17.757 ms) : 17579, 17935
. : milestone, 17757,
profiling (18.368 ms) : 18182, 18554
. : milestone, 18368,
tracing (17.692 ms) : 17517, 17867
. : milestone, 17692,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section baseline
no_agent (1.169 ms) : 1157, 1180
. : milestone, 1169,
iast (3.156 ms) : 3114, 3198
. : milestone, 3156,
iast_FULL (5.78 ms) : 5647, 5913
. : milestone, 5780,
iast_GLOBAL (3.547 ms) : 3494, 3601
. : milestone, 3547,
profiling (2.152 ms) : 2134, 2171
. : milestone, 2152,
tracing (1.784 ms) : 1769, 1798
. : milestone, 1784,
section candidate
no_agent (1.188 ms) : 1176, 1200
. : milestone, 1188,
iast (3.049 ms) : 3015, 3083
. : milestone, 3049,
iast_FULL (5.637 ms) : 5582, 5692
. : milestone, 5637,
iast_GLOBAL (3.553 ms) : 3501, 3605
. : milestone, 3553,
profiling (2.01 ms) : 1993, 2028
. : milestone, 2010,
tracing (1.792 ms) : 1777, 1807
. : milestone, 1792,
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 tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section baseline
no_agent (1.472 ms) : 1461, 1484
. : milestone, 1472,
appsec (3.709 ms) : 3491, 3927
. : milestone, 3709,
iast (2.222 ms) : 2158, 2286
. : milestone, 2222,
iast_GLOBAL (2.249 ms) : 2185, 2313
. : milestone, 2249,
profiling (2.074 ms) : 2021, 2127
. : milestone, 2074,
tracing (2.032 ms) : 1982, 2082
. : milestone, 2032,
section candidate
no_agent (1.472 ms) : 1461, 1484
. : milestone, 1472,
appsec (3.734 ms) : 3506, 3961
. : milestone, 3734,
iast (2.22 ms) : 2156, 2284
. : milestone, 2220,
iast_GLOBAL (2.254 ms) : 2190, 2318
. : milestone, 2254,
profiling (2.064 ms) : 2011, 2116
. : milestone, 2064,
tracing (2.033 ms) : 1983, 2083
. : milestone, 2033,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~b0b9e2009b, baseline=1.56.0-SNAPSHOT~439604a63d
dateFormat X
axisFormat %s
section baseline
no_agent (14.98 s) : 14980000, 14980000
. : milestone, 14980000,
appsec (14.916 s) : 14916000, 14916000
. : milestone, 14916000,
iast (18.647 s) : 18647000, 18647000
. : milestone, 18647000,
iast_GLOBAL (18.171 s) : 18171000, 18171000
. : milestone, 18171000,
profiling (15.243 s) : 15243000, 15243000
. : milestone, 15243000,
tracing (14.88 s) : 14880000, 14880000
. : milestone, 14880000,
section candidate
no_agent (15.658 s) : 15658000, 15658000
. : milestone, 15658000,
appsec (15.03 s) : 15030000, 15030000
. : milestone, 15030000,
iast (18.104 s) : 18104000, 18104000
. : milestone, 18104000,
iast_GLOBAL (18.153 s) : 18153000, 18153000
. : milestone, 18153000,
profiling (15.257 s) : 15257000, 15257000
. : milestone, 15257000,
tracing (14.702 s) : 14702000, 14702000
. : milestone, 14702000,
|
| private final Map<String, List<Meter>> meters; | ||
|
|
||
| public OtelMeterProvider() { | ||
| this.meters = new HashMap<>(); | ||
| } |
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.
| private final Map<String, List<Meter>> meters; | |
| public OtelMeterProvider() { | |
| this.meters = new HashMap<>(); | |
| } | |
| private final Map<String, List<Meter>> scopedMeters = new ConcurrentHashMap(); |
Users may call this from different threads, so the map needs to handle concurrent updates.
Also final fields can be assigned in the same line, avoiding the need to do that in the constructor.
This can mean you can drop the constructor completely, making the code more concise.
Lastly I would call this field scopedMeters because it holds meters indexed by scope.
(This helps make the code clearer later on when you query scopedMeters and store the list of meters for that scope in a variable called meters)
What Does This Do
Initial OpenTelemetry metrics instrumentation and stubbed types to support the OTel metrics API - tests will be added as the various stubs are replaced with real implementations
Motivation
OpenTelemetry Metrics API support
Additional Notes
Jira ticket: APMAPI-1671