Provide optimized writers for OpenTelemetry's "metrics.proto" wire protocol#10983
Conversation
7b895a0 to
3d5747c
Compare
3d5747c to
9a0b845
Compare
instead just create a small prefix and re-use the resource chunk as-is
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 64 metrics, 7 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.054 s) : 0, 1053856
Total [baseline] (8.824 s) : 0, 8824317
Agent [candidate] (1.054 s) : 0, 1053811
Total [candidate] (8.806 s) : 0, 8805848
section iast
Agent [baseline] (1.225 s) : 0, 1224533
Total [baseline] (9.555 s) : 0, 9554806
Agent [candidate] (1.227 s) : 0, 1226889
Total [candidate] (9.541 s) : 0, 9540739
gantt
title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.192 ms) : 0, 1192
crashtracking [candidate] (1.183 ms) : 0, 1183
BytebuddyAgent [baseline] (627.247 ms) : 0, 627247
BytebuddyAgent [candidate] (627.321 ms) : 0, 627321
AgentMeter [baseline] (29.297 ms) : 0, 29297
AgentMeter [candidate] (29.259 ms) : 0, 29259
GlobalTracer [baseline] (256.173 ms) : 0, 256173
GlobalTracer [candidate] (256.391 ms) : 0, 256391
AppSec [baseline] (31.735 ms) : 0, 31735
AppSec [candidate] (31.632 ms) : 0, 31632
Debugger [baseline] (59.398 ms) : 0, 59398
Debugger [candidate] (59.231 ms) : 0, 59231
Remote Config [baseline] (578.195 µs) : 0, 578
Remote Config [candidate] (592.45 µs) : 0, 592
Telemetry [baseline] (8.012 ms) : 0, 8012
Telemetry [candidate] (8.037 ms) : 0, 8037
Flare Poller [baseline] (4.229 ms) : 0, 4229
Flare Poller [candidate] (4.198 ms) : 0, 4198
section iast
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.192 ms) : 0, 1192
BytebuddyAgent [baseline] (794.772 ms) : 0, 794772
BytebuddyAgent [candidate] (796.191 ms) : 0, 796191
AgentMeter [baseline] (11.365 ms) : 0, 11365
AgentMeter [candidate] (11.394 ms) : 0, 11394
GlobalTracer [baseline] (246.158 ms) : 0, 246158
GlobalTracer [candidate] (247.241 ms) : 0, 247241
AppSec [baseline] (26.573 ms) : 0, 26573
AppSec [candidate] (26.587 ms) : 0, 26587
Debugger [baseline] (68.015 ms) : 0, 68015
Debugger [candidate] (67.109 ms) : 0, 67109
Remote Config [baseline] (526.589 µs) : 0, 527
Remote Config [candidate] (521.104 µs) : 0, 521
Telemetry [baseline] (10.717 ms) : 0, 10717
Telemetry [candidate] (11.275 ms) : 0, 11275
Flare Poller [baseline] (3.796 ms) : 0, 3796
Flare Poller [candidate] (3.988 ms) : 0, 3988
IAST [baseline] (25.347 ms) : 0, 25347
IAST [candidate] (25.361 ms) : 0, 25361
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.063 s) : 0, 1063486
Total [baseline] (10.999 s) : 0, 10998961
Agent [candidate] (1.057 s) : 0, 1057178
Total [candidate] (11.036 s) : 0, 11036197
section appsec
Agent [baseline] (1.248 s) : 0, 1247520
Total [baseline] (11.162 s) : 0, 11162362
Agent [candidate] (1.246 s) : 0, 1245934
Total [candidate] (11.154 s) : 0, 11153667
section iast
Agent [baseline] (1.23 s) : 0, 1230361
Total [baseline] (11.309 s) : 0, 11309489
Agent [candidate] (1.226 s) : 0, 1225980
Total [candidate] (11.267 s) : 0, 11267215
section profiling
Agent [baseline] (1.182 s) : 0, 1181505
Total [baseline] (11.043 s) : 0, 11043316
Agent [candidate] (1.191 s) : 0, 1191190
Total [candidate] (11.056 s) : 0, 11056270
gantt
title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.196 ms) : 0, 1196
crashtracking [candidate] (1.203 ms) : 0, 1203
BytebuddyAgent [baseline] (632.802 ms) : 0, 632802
BytebuddyAgent [candidate] (628.613 ms) : 0, 628613
AgentMeter [baseline] (29.634 ms) : 0, 29634
AgentMeter [candidate] (29.35 ms) : 0, 29350
GlobalTracer [baseline] (258.013 ms) : 0, 258013
GlobalTracer [candidate] (256.795 ms) : 0, 256795
AppSec [baseline] (31.994 ms) : 0, 31994
AppSec [candidate] (31.893 ms) : 0, 31893
Debugger [baseline] (60.852 ms) : 0, 60852
Debugger [candidate] (60.376 ms) : 0, 60376
Remote Config [baseline] (585.617 µs) : 0, 586
Remote Config [candidate] (583.852 µs) : 0, 584
Telemetry [baseline] (8.068 ms) : 0, 8068
Telemetry [candidate] (8.839 ms) : 0, 8839
Flare Poller [baseline] (4.276 ms) : 0, 4276
Flare Poller [candidate] (3.554 ms) : 0, 3554
section appsec
crashtracking [baseline] (1.193 ms) : 0, 1193
crashtracking [candidate] (1.183 ms) : 0, 1183
BytebuddyAgent [baseline] (659.683 ms) : 0, 659683
BytebuddyAgent [candidate] (658.304 ms) : 0, 658304
AgentMeter [baseline] (12.143 ms) : 0, 12143
AgentMeter [candidate] (12.168 ms) : 0, 12168
GlobalTracer [baseline] (257.627 ms) : 0, 257627
GlobalTracer [candidate] (257.556 ms) : 0, 257556
IAST [baseline] (24.124 ms) : 0, 24124
IAST [candidate] (24.13 ms) : 0, 24130
AppSec [baseline] (177.557 ms) : 0, 177557
AppSec [candidate] (177.8 ms) : 0, 177800
Debugger [baseline] (66.432 ms) : 0, 66432
Debugger [candidate] (66.21 ms) : 0, 66210
Remote Config [baseline] (629.528 µs) : 0, 630
Remote Config [candidate] (625.355 µs) : 0, 625
Telemetry [baseline] (8.305 ms) : 0, 8305
Telemetry [candidate] (8.268 ms) : 0, 8268
Flare Poller [baseline] (3.559 ms) : 0, 3559
Flare Poller [candidate] (3.508 ms) : 0, 3508
section iast
crashtracking [baseline] (1.193 ms) : 0, 1193
crashtracking [candidate] (1.185 ms) : 0, 1185
BytebuddyAgent [baseline] (798.443 ms) : 0, 798443
BytebuddyAgent [candidate] (795.935 ms) : 0, 795935
AgentMeter [baseline] (11.421 ms) : 0, 11421
AgentMeter [candidate] (11.423 ms) : 0, 11423
GlobalTracer [baseline] (247.0 ms) : 0, 247000
GlobalTracer [candidate] (246.385 ms) : 0, 246385
IAST [baseline] (25.319 ms) : 0, 25319
IAST [candidate] (25.297 ms) : 0, 25297
AppSec [baseline] (26.513 ms) : 0, 26513
AppSec [candidate] (26.512 ms) : 0, 26512
Debugger [baseline] (71.049 ms) : 0, 71049
Debugger [candidate] (70.064 ms) : 0, 70064
Remote Config [baseline] (534.7 µs) : 0, 535
Remote Config [candidate] (523.453 µs) : 0, 523
Telemetry [baseline] (9.242 ms) : 0, 9242
Telemetry [candidate] (9.224 ms) : 0, 9224
Flare Poller [baseline] (3.383 ms) : 0, 3383
Flare Poller [candidate] (3.402 ms) : 0, 3402
section profiling
crashtracking [baseline] (1.165 ms) : 0, 1165
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (682.923 ms) : 0, 682923
BytebuddyAgent [candidate] (687.849 ms) : 0, 687849
AgentMeter [baseline] (9.008 ms) : 0, 9008
AgentMeter [candidate] (9.04 ms) : 0, 9040
GlobalTracer [baseline] (214.47 ms) : 0, 214470
GlobalTracer [candidate] (216.269 ms) : 0, 216269
AppSec [baseline] (32.223 ms) : 0, 32223
AppSec [candidate] (32.555 ms) : 0, 32555
Debugger [baseline] (65.618 ms) : 0, 65618
Debugger [candidate] (64.739 ms) : 0, 64739
Remote Config [baseline] (566.847 µs) : 0, 567
Remote Config [candidate] (578.444 µs) : 0, 578
Telemetry [baseline] (7.744 ms) : 0, 7744
Telemetry [candidate] (8.627 ms) : 0, 8627
Flare Poller [baseline] (3.506 ms) : 0, 3506
Flare Poller [candidate] (4.377 ms) : 0, 4377
ProfilingAgent [baseline] (93.49 ms) : 0, 93490
ProfilingAgent [candidate] (94.754 ms) : 0, 94754
Profiling [baseline] (94.045 ms) : 0, 94045
Profiling [candidate] (95.32 ms) : 0, 95320
LoadParameters
See matching parameters
SummaryFound 4 performance improvements and 1 performance regressions! Performance is the same for 16 metrics, 15 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section baseline
no_agent (1.215 ms) : 1201, 1229
. : milestone, 1215,
iast (3.302 ms) : 3255, 3349
. : milestone, 3302,
iast_FULL (5.714 ms) : 5657, 5770
. : milestone, 5714,
iast_GLOBAL (3.519 ms) : 3454, 3583
. : milestone, 3519,
profiling (2.363 ms) : 2339, 2386
. : milestone, 2363,
tracing (1.802 ms) : 1787, 1816
. : milestone, 1802,
section candidate
no_agent (1.172 ms) : 1161, 1184
. : milestone, 1172,
iast (3.188 ms) : 3142, 3235
. : milestone, 3188,
iast_FULL (6.028 ms) : 5967, 6090
. : milestone, 6028,
iast_GLOBAL (3.572 ms) : 3513, 3632
. : milestone, 3572,
profiling (2.16 ms) : 2139, 2180
. : milestone, 2160,
tracing (1.797 ms) : 1782, 1812
. : milestone, 1797,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section baseline
no_agent (19.594 ms) : 19392, 19795
. : milestone, 19594,
appsec (18.809 ms) : 18616, 19003
. : milestone, 18809,
code_origins (18.072 ms) : 17892, 18252
. : milestone, 18072,
iast (17.744 ms) : 17567, 17920
. : milestone, 17744,
profiling (19.529 ms) : 19331, 19727
. : milestone, 19529,
tracing (17.585 ms) : 17408, 17762
. : milestone, 17585,
section candidate
no_agent (17.992 ms) : 17810, 18174
. : milestone, 17992,
appsec (18.777 ms) : 18584, 18969
. : milestone, 18777,
code_origins (17.79 ms) : 17614, 17967
. : milestone, 17790,
iast (17.766 ms) : 17586, 17946
. : milestone, 17766,
profiling (18.357 ms) : 18176, 18538
. : milestone, 18357,
tracing (17.771 ms) : 17594, 17949
. : milestone, 17771,
DacapoParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1467, 1491
. : milestone, 1479,
appsec (3.804 ms) : 3583, 4025
. : milestone, 3804,
iast (2.261 ms) : 2192, 2330
. : milestone, 2261,
iast_GLOBAL (2.304 ms) : 2235, 2373
. : milestone, 2304,
profiling (2.073 ms) : 2018, 2127
. : milestone, 2073,
tracing (2.073 ms) : 2020, 2127
. : milestone, 2073,
section candidate
no_agent (1.472 ms) : 1460, 1483
. : milestone, 1472,
appsec (2.529 ms) : 2474, 2584
. : milestone, 2529,
iast (2.264 ms) : 2195, 2333
. : milestone, 2264,
iast_GLOBAL (2.294 ms) : 2225, 2363
. : milestone, 2294,
profiling (2.078 ms) : 2024, 2132
. : milestone, 2078,
tracing (2.063 ms) : 2009, 2116
. : milestone, 2063,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~2270ed63e0, baseline=1.61.0-SNAPSHOT~1abe140bde
dateFormat X
axisFormat %s
section baseline
no_agent (14.929 s) : 14929000, 14929000
. : milestone, 14929000,
appsec (14.625 s) : 14625000, 14625000
. : milestone, 14625000,
iast (18.209 s) : 18209000, 18209000
. : milestone, 18209000,
iast_GLOBAL (17.769 s) : 17769000, 17769000
. : milestone, 17769000,
profiling (14.947 s) : 14947000, 14947000
. : milestone, 14947000,
tracing (14.964 s) : 14964000, 14964000
. : milestone, 14964000,
section candidate
no_agent (14.772 s) : 14772000, 14772000
. : milestone, 14772000,
appsec (14.697 s) : 14697000, 14697000
. : milestone, 14697000,
iast (18.342 s) : 18342000, 18342000
. : milestone, 18342000,
iast_GLOBAL (17.8 s) : 17800000, 17800000
. : milestone, 17800000,
profiling (15.388 s) : 15388000, 15388000
. : milestone, 15388000,
tracing (14.838 s) : 14838000, 14838000
. : milestone, 14838000,
|
amarziali
left a comment
There was a problem hiding this comment.
Looks good. There are few rounding that should be anyway not a problem since they represent integer quantities
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
What Does This Do
Uses a single temporary buffer to prepare message chunks at different nesting levels (resource / scope / metric)
First we chunk all data points for a given metric. Once the metric is complete we add the first part of the metric message and its chunked data points to the scoped chunks. Once the scope is complete we add the first part of the scoped metrics message and all its chunks (metric messages and data points) to the payload. Once all the metrics data has been chunked we add the enclosing resource metrics message to the start of the payload.
Motivation
Avoids need to use full protobuf library while keeping intermediate array creation to a minimum.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]
Note: Once your PR is ready to merge, add it to the merge queue by commenting
/merge./merge -ccancels the queue request./merge -f --reason "reason"skips all merge queue checks; please use this judiciously, as some checks do not run at the PR-level. For more information, see this doc.