Nikita.tkachenko/runtime code coverage#10951
Draft
nikita-tkachenko-datadog wants to merge 7 commits intomasterfrom
Draft
Nikita.tkachenko/runtime code coverage#10951nikita-tkachenko-datadog wants to merge 7 commits intomasterfrom
nikita-tkachenko-datadog wants to merge 7 commits intomasterfrom
Conversation
Implement Coverage Binary Protocol v1 (CoverageBinaryEncoder) using two bit vectors per record for executable and covered lines. Switch from LCOV text format to the new "ddcov" binary format for coverage uploads. Add className to ClassProbeMapping, key coverage data by CoverageKey (sourceFile + className), and include language/env tags in upload metadata. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 62 metrics, 9 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.064 s) : 0, 1064452
Total [baseline] (11.139 s) : 0, 11139485
Agent [candidate] (1.053 s) : 0, 1053299
Total [candidate] (11.031 s) : 0, 11031042
section appsec
Agent [baseline] (1.254 s) : 0, 1254291
Total [baseline] (11.179 s) : 0, 11179364
Agent [candidate] (1.245 s) : 0, 1244597
Total [candidate] (11.197 s) : 0, 11197434
section iast
Agent [baseline] (1.23 s) : 0, 1229782
Total [baseline] (11.318 s) : 0, 11318121
Agent [candidate] (1.238 s) : 0, 1238469
Total [candidate] (11.37 s) : 0, 11369916
section profiling
Agent [baseline] (1.185 s) : 0, 1185264
Total [baseline] (11.082 s) : 0, 11081666
Agent [candidate] (1.192 s) : 0, 1191829
Total [candidate] (11.067 s) : 0, 11067419
gantt
title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.2 ms) : 0, 1200
crashtracking [candidate] (1.196 ms) : 0, 1196
BytebuddyAgent [baseline] (632.942 ms) : 0, 632942
BytebuddyAgent [candidate] (616.081 ms) : 0, 616081
AgentMeter [baseline] (29.631 ms) : 0, 29631
AgentMeter [candidate] (29.226 ms) : 0, 29226
GlobalTracer [baseline] (258.528 ms) : 0, 258528
GlobalTracer [candidate] (256.307 ms) : 0, 256307
AppSec [baseline] (31.915 ms) : 0, 31915
AppSec [candidate] (31.634 ms) : 0, 31634
Debugger [baseline] (60.957 ms) : 0, 60957
Debugger [candidate] (60.287 ms) : 0, 60287
Remote Config [baseline] (591.296 µs) : 0, 591
Remote Config [candidate] (589.794 µs) : 0, 590
Telemetry [baseline] (8.104 ms) : 0, 8104
Telemetry [candidate] (8.237 ms) : 0, 8237
Flare Poller [baseline] (4.422 ms) : 0, 4422
Flare Poller [candidate] (3.503 ms) : 0, 3503
section appsec
crashtracking [baseline] (1.191 ms) : 0, 1191
crashtracking [candidate] (1.189 ms) : 0, 1189
BytebuddyAgent [baseline] (662.758 ms) : 0, 662758
BytebuddyAgent [candidate] (646.573 ms) : 0, 646573
AgentMeter [baseline] (12.215 ms) : 0, 12215
AgentMeter [candidate] (12.096 ms) : 0, 12096
GlobalTracer [baseline] (259.424 ms) : 0, 259424
GlobalTracer [candidate] (257.822 ms) : 0, 257822
IAST [baseline] (24.391 ms) : 0, 24391
IAST [candidate] (24.16 ms) : 0, 24160
AppSec [baseline] (178.827 ms) : 0, 178827
AppSec [candidate] (177.767 ms) : 0, 177767
Debugger [baseline] (66.506 ms) : 0, 66506
Debugger [candidate] (65.874 ms) : 0, 65874
Remote Config [baseline] (640.549 µs) : 0, 641
Remote Config [candidate] (627.612 µs) : 0, 628
Telemetry [baseline] (8.348 ms) : 0, 8348
Telemetry [candidate] (8.279 ms) : 0, 8279
Flare Poller [baseline] (3.623 ms) : 0, 3623
Flare Poller [candidate] (3.572 ms) : 0, 3572
section iast
crashtracking [baseline] (1.176 ms) : 0, 1176
crashtracking [candidate] (1.217 ms) : 0, 1217
BytebuddyAgent [baseline] (797.53 ms) : 0, 797530
BytebuddyAgent [candidate] (794.091 ms) : 0, 794091
AgentMeter [baseline] (11.409 ms) : 0, 11409
AgentMeter [candidate] (11.649 ms) : 0, 11649
GlobalTracer [baseline] (247.624 ms) : 0, 247624
GlobalTracer [candidate] (248.648 ms) : 0, 248648
IAST [baseline] (25.349 ms) : 0, 25349
IAST [candidate] (25.507 ms) : 0, 25507
AppSec [baseline] (26.552 ms) : 0, 26552
AppSec [candidate] (26.81 ms) : 0, 26810
Debugger [baseline] (70.2 ms) : 0, 70200
Debugger [candidate] (67.225 ms) : 0, 67225
Remote Config [baseline] (526.187 µs) : 0, 526
Remote Config [candidate] (516.501 µs) : 0, 517
Telemetry [baseline] (9.681 ms) : 0, 9681
Telemetry [candidate] (11.765 ms) : 0, 11765
Flare Poller [baseline] (3.546 ms) : 0, 3546
Flare Poller [candidate] (4.074 ms) : 0, 4074
section profiling
crashtracking [baseline] (1.164 ms) : 0, 1164
crashtracking [candidate] (1.179 ms) : 0, 1179
BytebuddyAgent [baseline] (683.404 ms) : 0, 683404
BytebuddyAgent [candidate] (687.496 ms) : 0, 687496
AgentMeter [baseline] (9.062 ms) : 0, 9062
AgentMeter [candidate] (9.125 ms) : 0, 9125
GlobalTracer [baseline] (215.883 ms) : 0, 215883
GlobalTracer [candidate] (217.152 ms) : 0, 217152
AppSec [baseline] (32.241 ms) : 0, 32241
AppSec [candidate] (32.347 ms) : 0, 32347
Debugger [baseline] (64.574 ms) : 0, 64574
Debugger [candidate] (66.339 ms) : 0, 66339
Remote Config [baseline] (561.141 µs) : 0, 561
Remote Config [candidate] (554.117 µs) : 0, 554
Telemetry [baseline] (7.737 ms) : 0, 7737
Telemetry [candidate] (7.753 ms) : 0, 7753
Flare Poller [baseline] (5.051 ms) : 0, 5051
Flare Poller [candidate] (3.51 ms) : 0, 3510
ProfilingAgent [baseline] (94.488 ms) : 0, 94488
ProfilingAgent [candidate] (94.833 ms) : 0, 94833
Profiling [baseline] (95.067 ms) : 0, 95067
Profiling [candidate] (95.392 ms) : 0, 95392
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.063 s) : 0, 1062911
Total [baseline] (8.921 s) : 0, 8920712
Agent [candidate] (1.065 s) : 0, 1064558
Total [candidate] (8.904 s) : 0, 8904224
section iast
Agent [baseline] (1.236 s) : 0, 1235813
Total [baseline] (9.549 s) : 0, 9548575
Agent [candidate] (1.236 s) : 0, 1236115
Total [candidate] (9.591 s) : 0, 9590925
gantt
title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.209 ms) : 0, 1209
crashtracking [candidate] (1.228 ms) : 0, 1228
BytebuddyAgent [baseline] (631.14 ms) : 0, 631140
BytebuddyAgent [candidate] (622.993 ms) : 0, 622993
AgentMeter [baseline] (29.329 ms) : 0, 29329
AgentMeter [candidate] (29.583 ms) : 0, 29583
GlobalTracer [baseline] (258.037 ms) : 0, 258037
GlobalTracer [candidate] (258.873 ms) : 0, 258873
AppSec [baseline] (32.101 ms) : 0, 32101
AppSec [candidate] (32.11 ms) : 0, 32110
Debugger [baseline] (60.222 ms) : 0, 60222
Debugger [candidate] (60.049 ms) : 0, 60049
Remote Config [baseline] (593.73 µs) : 0, 594
Remote Config [candidate] (599.364 µs) : 0, 599
Telemetry [baseline] (9.62 ms) : 0, 9620
Telemetry [candidate] (8.277 ms) : 0, 8277
Flare Poller [baseline] (4.431 ms) : 0, 4431
Flare Poller [candidate] (4.331 ms) : 0, 4331
section iast
crashtracking [baseline] (1.198 ms) : 0, 1198
crashtracking [candidate] (1.212 ms) : 0, 1212
BytebuddyAgent [baseline] (801.993 ms) : 0, 801993
BytebuddyAgent [candidate] (790.952 ms) : 0, 790952
AgentMeter [baseline] (11.672 ms) : 0, 11672
AgentMeter [candidate] (11.479 ms) : 0, 11479
GlobalTracer [baseline] (248.957 ms) : 0, 248957
GlobalTracer [candidate] (249.463 ms) : 0, 249463
IAST [baseline] (25.6 ms) : 0, 25600
IAST [candidate] (25.69 ms) : 0, 25690
AppSec [baseline] (26.701 ms) : 0, 26701
AppSec [candidate] (26.906 ms) : 0, 26906
Debugger [baseline] (68.907 ms) : 0, 68907
Debugger [candidate] (65.825 ms) : 0, 65825
Remote Config [baseline] (526.678 µs) : 0, 527
Remote Config [candidate] (515.581 µs) : 0, 516
Telemetry [baseline] (10.243 ms) : 0, 10243
Telemetry [candidate] (12.854 ms) : 0, 12854
Flare Poller [baseline] (3.728 ms) : 0, 3728
Flare Poller [candidate] (4.454 ms) : 0, 4454
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 2 performance regressions! Performance is the same for 17 metrics, 16 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section baseline
no_agent (1.17 ms) : 1159, 1181
. : milestone, 1170,
iast (3.203 ms) : 3156, 3250
. : milestone, 3203,
iast_FULL (6.025 ms) : 5963, 6086
. : milestone, 6025,
iast_GLOBAL (3.511 ms) : 3454, 3567
. : milestone, 3511,
profiling (2.238 ms) : 2217, 2259
. : milestone, 2238,
tracing (1.766 ms) : 1753, 1780
. : milestone, 1766,
section candidate
no_agent (1.193 ms) : 1181, 1205
. : milestone, 1193,
iast (3.231 ms) : 3188, 3273
. : milestone, 3231,
iast_FULL (5.893 ms) : 5834, 5953
. : milestone, 5893,
iast_GLOBAL (3.52 ms) : 3456, 3584
. : milestone, 3520,
profiling (1.989 ms) : 1971, 2006
. : milestone, 1989,
tracing (1.786 ms) : 1772, 1801
. : milestone, 1786,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section baseline
no_agent (19.614 ms) : 19409, 19819
. : milestone, 19614,
appsec (18.835 ms) : 18650, 19020
. : milestone, 18835,
code_origins (17.683 ms) : 17511, 17854
. : milestone, 17683,
iast (17.913 ms) : 17732, 18095
. : milestone, 17913,
profiling (18.791 ms) : 18602, 18980
. : milestone, 18791,
tracing (17.659 ms) : 17482, 17835
. : milestone, 17659,
section candidate
no_agent (19.217 ms) : 19019, 19415
. : milestone, 19217,
appsec (18.789 ms) : 18599, 18978
. : milestone, 18789,
code_origins (19.063 ms) : 18869, 19256
. : milestone, 19063,
iast (18.267 ms) : 18086, 18448
. : milestone, 18267,
profiling (18.763 ms) : 18573, 18952
. : milestone, 18763,
tracing (17.998 ms) : 17817, 18179
. : milestone, 17998,
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.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section baseline
no_agent (15.544 s) : 15544000, 15544000
. : milestone, 15544000,
appsec (14.637 s) : 14637000, 14637000
. : milestone, 14637000,
iast (18.209 s) : 18209000, 18209000
. : milestone, 18209000,
iast_GLOBAL (17.811 s) : 17811000, 17811000
. : milestone, 17811000,
profiling (15.132 s) : 15132000, 15132000
. : milestone, 15132000,
tracing (14.847 s) : 14847000, 14847000
. : milestone, 14847000,
section candidate
no_agent (14.773 s) : 14773000, 14773000
. : milestone, 14773000,
appsec (14.512 s) : 14512000, 14512000
. : milestone, 14512000,
iast (18.41 s) : 18410000, 18410000
. : milestone, 18410000,
iast_GLOBAL (18.01 s) : 18010000, 18010000
. : milestone, 18010000,
profiling (15.257 s) : 15257000, 15257000
. : milestone, 15257000,
tracing (15.076 s) : 15076000, 15076000
. : milestone, 15076000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~e465278ec4, baseline=1.61.0-SNAPSHOT~c00f676bb9
dateFormat X
axisFormat %s
section baseline
no_agent (1.476 ms) : 1465, 1488
. : milestone, 1476,
appsec (3.755 ms) : 3533, 3976
. : milestone, 3755,
iast (2.261 ms) : 2192, 2330
. : milestone, 2261,
iast_GLOBAL (2.3 ms) : 2231, 2370
. : milestone, 2300,
profiling (2.102 ms) : 2046, 2158
. : milestone, 2102,
tracing (2.063 ms) : 2010, 2117
. : milestone, 2063,
section candidate
no_agent (1.482 ms) : 1471, 1494
. : milestone, 1482,
appsec (3.814 ms) : 3591, 4036
. : milestone, 3814,
iast (2.262 ms) : 2193, 2331
. : milestone, 2262,
iast_GLOBAL (2.303 ms) : 2234, 2372
. : milestone, 2303,
profiling (2.085 ms) : 2030, 2139
. : milestone, 2085,
tracing (2.07 ms) : 2017, 2124
. : milestone, 2070,
|
`new int[probeCount][]` creates an array of null references. When the collector iterates `probeToLines[p]`, it NPEs on classes that have probes but no executable lines (no debug info, interfaces). Initialize each entry to `new int[0]` instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Skip classes without a SourceFile attribute in the collector to prevent NPE in the binary encoder (null is not a valid string in the coverage binary protocol) - Log instrumentation failures at debug level so they are visible when troubleshooting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Does This Do
Motivation
Additional Notes
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.