-
Notifications
You must be signed in to change notification settings - Fork 312
ConfigProvider iterates over all sources and reports all non-null values to telemetry #9404
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: 9b22670 | Docs | Was this helpful? Give us feedback! |
BenchmarksStartupParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 43 metrics, 15 unstable metrics.
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.05 s) : 0, 1050193
Total [baseline] (8.635 s) : 0, 8634630
Agent [candidate] (1.052 s) : 0, 1052021
Total [candidate] (8.645 s) : 0, 8644741
section iast
Agent [baseline] (1.19 s) : 0, 1190177
Total [baseline] (9.377 s) : 0, 9377253
Agent [candidate] (1.18 s) : 0, 1180067
Total [candidate] (9.366 s) : 0, 9366077
gantt
title insecure-bank - break down per module: candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.475 ms) : 0, 1475
crashtracking [candidate] (1.454 ms) : 0, 1454
BytebuddyAgent [baseline] (736.151 ms) : 0, 736151
BytebuddyAgent [candidate] (737.0 ms) : 0, 737000
GlobalTracer [baseline] (242.506 ms) : 0, 242506
GlobalTracer [candidate] (244.058 ms) : 0, 244058
AppSec [baseline] (29.907 ms) : 0, 29907
AppSec [candidate] (30.25 ms) : 0, 30250
Debugger [baseline] (6.025 ms) : 0, 6025
Debugger [candidate] (6.014 ms) : 0, 6014
Remote Config [baseline] (667.558 µs) : 0, 668
Remote Config [candidate] (671.582 µs) : 0, 672
Telemetry [baseline] (12.357 ms) : 0, 12357
Telemetry [candidate] (11.5 ms) : 0, 11500
section iast
crashtracking [baseline] (1.482 ms) : 0, 1482
crashtracking [candidate] (1.448 ms) : 0, 1448
BytebuddyAgent [baseline] (859.549 ms) : 0, 859549
BytebuddyAgent [candidate] (852.344 ms) : 0, 852344
GlobalTracer [baseline] (234.421 ms) : 0, 234421
GlobalTracer [candidate] (233.043 ms) : 0, 233043
IAST [baseline] (29.086 ms) : 0, 29086
IAST [candidate] (29.273 ms) : 0, 29273
AppSec [baseline] (28.732 ms) : 0, 28732
AppSec [candidate] (28.289 ms) : 0, 28289
Debugger [baseline] (6.606 ms) : 0, 6606
Debugger [candidate] (5.716 ms) : 0, 5716
Remote Config [baseline] (617.832 µs) : 0, 618
Remote Config [candidate] (613.234 µs) : 0, 613
Telemetry [baseline] (8.449 ms) : 0, 8449
Telemetry [candidate] (8.267 ms) : 0, 8267
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.046 s) : 0, 1046367
Total [baseline] (10.739 s) : 0, 10739349
Agent [candidate] (1.055 s) : 0, 1055146
Total [candidate] (10.757 s) : 0, 10757217
section appsec
Agent [baseline] (1.223 s) : 0, 1222501
Total [baseline] (10.856 s) : 0, 10856036
Agent [candidate] (1.228 s) : 0, 1227744
Total [candidate] (10.831 s) : 0, 10831426
section iast
Agent [baseline] (1.19 s) : 0, 1190370
Total [baseline] (10.963 s) : 0, 10962832
Agent [candidate] (1.184 s) : 0, 1184237
Total [candidate] (10.925 s) : 0, 10924657
section profiling
Agent [baseline] (1.2 s) : 0, 1200194
Total [baseline] (10.905 s) : 0, 10904923
Agent [candidate] (1.201 s) : 0, 1200927
Total [candidate] (10.901 s) : 0, 10900815
gantt
title petclinic - break down per module: candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.462 ms) : 0, 1462
crashtracking [candidate] (1.456 ms) : 0, 1456
BytebuddyAgent [baseline] (733.252 ms) : 0, 733252
BytebuddyAgent [candidate] (737.359 ms) : 0, 737359
GlobalTracer [baseline] (242.883 ms) : 0, 242883
GlobalTracer [candidate] (243.998 ms) : 0, 243998
AppSec [baseline] (30.146 ms) : 0, 30146
AppSec [candidate] (30.221 ms) : 0, 30221
Debugger [baseline] (6.06 ms) : 0, 6060
Debugger [candidate] (6.043 ms) : 0, 6043
Remote Config [baseline] (673.299 µs) : 0, 673
Remote Config [candidate] (665.142 µs) : 0, 665
Telemetry [baseline] (10.775 ms) : 0, 10775
Telemetry [candidate] (14.247 ms) : 0, 14247
section appsec
crashtracking [baseline] (1.453 ms) : 0, 1453
crashtracking [candidate] (1.456 ms) : 0, 1456
BytebuddyAgent [baseline] (754.606 ms) : 0, 754606
BytebuddyAgent [candidate] (759.278 ms) : 0, 759278
GlobalTracer [baseline] (235.219 ms) : 0, 235219
GlobalTracer [candidate] (236.135 ms) : 0, 236135
IAST [baseline] (23.685 ms) : 0, 23685
IAST [candidate] (23.577 ms) : 0, 23577
AppSec [baseline] (170.011 ms) : 0, 170011
AppSec [candidate] (171.334 ms) : 0, 171334
Debugger [baseline] (6.492 ms) : 0, 6492
Debugger [candidate] (5.781 ms) : 0, 5781
Remote Config [baseline] (649.525 µs) : 0, 650
Remote Config [candidate] (609.053 µs) : 0, 609
Telemetry [baseline] (9.268 ms) : 0, 9268
Telemetry [candidate] (8.437 ms) : 0, 8437
section iast
crashtracking [baseline] (1.47 ms) : 0, 1470
crashtracking [candidate] (1.458 ms) : 0, 1458
BytebuddyAgent [baseline] (859.059 ms) : 0, 859059
BytebuddyAgent [candidate] (855.25 ms) : 0, 855250
GlobalTracer [baseline] (234.888 ms) : 0, 234888
GlobalTracer [candidate] (233.697 ms) : 0, 233697
IAST [baseline] (27.399 ms) : 0, 27399
IAST [candidate] (28.528 ms) : 0, 28528
AppSec [baseline] (29.686 ms) : 0, 29686
AppSec [candidate] (25.303 ms) : 0, 25303
Debugger [baseline] (7.527 ms) : 0, 7527
Debugger [candidate] (10.016 ms) : 0, 10016
Remote Config [baseline] (635.668 µs) : 0, 636
Remote Config [candidate] (643.645 µs) : 0, 644
Telemetry [baseline] (8.417 ms) : 0, 8417
Telemetry [candidate] (8.158 ms) : 0, 8158
section profiling
crashtracking [baseline] (1.452 ms) : 0, 1452
crashtracking [candidate] (1.459 ms) : 0, 1459
BytebuddyAgent [baseline] (763.545 ms) : 0, 763545
BytebuddyAgent [candidate] (762.35 ms) : 0, 762350
GlobalTracer [baseline] (223.314 ms) : 0, 223314
GlobalTracer [candidate] (222.977 ms) : 0, 222977
AppSec [baseline] (30.95 ms) : 0, 30950
AppSec [candidate] (30.645 ms) : 0, 30645
Debugger [baseline] (6.318 ms) : 0, 6318
Debugger [candidate] (7.19 ms) : 0, 7190
Remote Config [baseline] (707.666 µs) : 0, 708
Remote Config [candidate] (685.913 µs) : 0, 686
Telemetry [baseline] (15.6 ms) : 0, 15600
Telemetry [candidate] (15.708 ms) : 0, 15708
ProfilingAgent [baseline] (107.817 ms) : 0, 107817
ProfilingAgent [candidate] (108.567 ms) : 0, 108567
Profiling [baseline] (108.474 ms) : 0, 108474
Profiling [candidate] (109.165 ms) : 0, 109165
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 2 performance regressions! Performance is the same for 9 metrics, 12 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section baseline
no_agent (37.018 ms) : 36725, 37311
. : milestone, 37018,
appsec (48.46 ms) : 48018, 48901
. : milestone, 48460,
code_origins (46.316 ms) : 45900, 46732
. : milestone, 46316,
iast (45.95 ms) : 45551, 46349
. : milestone, 45950,
profiling (46.218 ms) : 45810, 46626
. : milestone, 46218,
tracing (44.575 ms) : 44191, 44959
. : milestone, 44575,
section candidate
no_agent (37.517 ms) : 37216, 37819
. : milestone, 37517,
appsec (48.136 ms) : 47716, 48556
. : milestone, 48136,
code_origins (45.101 ms) : 44713, 45489
. : milestone, 45101,
iast (44.119 ms) : 43737, 44500
. : milestone, 44119,
profiling (47.837 ms) : 47415, 48260
. : milestone, 47837,
tracing (45.292 ms) : 44915, 45669
. : milestone, 45292,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section baseline
no_agent (4.382 ms) : 4333, 4431
. : milestone, 4382,
iast (9.414 ms) : 9247, 9580
. : milestone, 9414,
iast_FULL (14.148 ms) : 13864, 14433
. : milestone, 14148,
iast_GLOBAL (10.104 ms) : 9930, 10277
. : milestone, 10104,
profiling (8.703 ms) : 8567, 8840
. : milestone, 8703,
tracing (7.69 ms) : 7575, 7805
. : milestone, 7690,
section candidate
no_agent (4.291 ms) : 4241, 4341
. : milestone, 4291,
iast (9.596 ms) : 9423, 9769
. : milestone, 9596,
iast_FULL (13.846 ms) : 13568, 14123
. : milestone, 13846,
iast_GLOBAL (10.522 ms) : 10331, 10714
. : milestone, 10522,
profiling (8.756 ms) : 8612, 8900
. : milestone, 8756,
tracing (7.475 ms) : 7370, 7580
. : milestone, 7475,
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.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section baseline
no_agent (1.475 ms) : 1464, 1487
. : milestone, 1475,
appsec (3.658 ms) : 3438, 3878
. : milestone, 3658,
iast (2.209 ms) : 2147, 2272
. : milestone, 2209,
iast_GLOBAL (2.244 ms) : 2181, 2307
. : milestone, 2244,
profiling (2.07 ms) : 2019, 2122
. : milestone, 2070,
tracing (2.021 ms) : 1973, 2070
. : milestone, 2021,
section candidate
no_agent (1.475 ms) : 1463, 1486
. : milestone, 1475,
appsec (3.588 ms) : 3374, 3802
. : milestone, 3588,
iast (2.194 ms) : 2131, 2256
. : milestone, 2194,
iast_GLOBAL (2.249 ms) : 2186, 2312
. : milestone, 2249,
profiling (2.07 ms) : 2018, 2122
. : milestone, 2070,
tracing (2.021 ms) : 1972, 2069
. : milestone, 2021,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.53.0-SNAPSHOT~9b22670a6b, baseline=1.53.0-SNAPSHOT~d43410737f
dateFormat X
axisFormat %s
section baseline
no_agent (15.565 s) : 15565000, 15565000
. : milestone, 15565000,
appsec (14.667 s) : 14667000, 14667000
. : milestone, 14667000,
iast (18.476 s) : 18476000, 18476000
. : milestone, 18476000,
iast_GLOBAL (18.46 s) : 18460000, 18460000
. : milestone, 18460000,
profiling (15.239 s) : 15239000, 15239000
. : milestone, 15239000,
tracing (14.993 s) : 14993000, 14993000
. : milestone, 14993000,
section candidate
no_agent (14.889 s) : 14889000, 14889000
. : milestone, 14889000,
appsec (14.878 s) : 14878000, 14878000
. : milestone, 14878000,
iast (18.548 s) : 18548000, 18548000
. : milestone, 18548000,
iast_GLOBAL (17.912 s) : 17912000, 17912000
. : milestone, 17912000,
profiling (15.683 s) : 15683000, 15683000
. : milestone, 15683000,
tracing (14.815 s) : 14815000, 14815000
. : milestone, 14815000,
|
…x configId test to accommodate new ConfigCollector data structure
67d3e75
to
8becbc5
Compare
…edConfigSetting static function that takes in a map
369b020
to
d097300
Compare
535c685
to
1b81e8a
Compare
} | ||
|
||
/** Helper class to store resolved configuration values with their metadata */ | ||
static class ConfigValueResolver<T> { |
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.
This class is not private
in order to expose it for a unit test that is needed to complete code coverage. The unit test verifies that reReportToCollector
is not invoked when origin == null
, which should never happen since the method to create a ConfigValueResolver
should only occur when no re-reporting is expected. This check is only here as a safety check against poor usage of the function.
@@ -303,60 +304,61 @@ class TelemetryServiceSpecification extends DDSpecification { | |||
false | false | 0 | |||
} | |||
|
|||
def 'split telemetry requests if the size above the limit'() { |
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.
Not sure what this is... I'll take a look after I'm back from PTO
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
NOTE: There are a few unit tests that need to be fixed prior to this PR being "mergable". I'm looking for a review of the source file changes made while I am on PTO to gain a sense of if there are fundamental changes that need to be made.
What Does This Do
Previously, telemetry was only being reported for the
ConfigSource
that set the final value of the configuration. This PR introduces reporting telemetry for allConfigSources
that have non-null values set, regardless of whether it sets the final configuration value or not.Summary of Changes:
ConfigCollector
Map<ConfigOrigin, Map<String (configName), ConfigSetting>>
putDefault
method is created to allow overriding config telemetry payloads fromDEFAULT
origin ONLY when the value isnull
. Use case is when a Config is already processed, then a function likeisExplicitlyDisabled
is called and invokesgetBoolean
without the proper default value, which previously would override theDEFAULT
telemetry payload withnull
.ConfigSetting
seqId
and newof
function that takes it in as a parameterConfigProvider
ConfigSources
start from lowest priority to highest priority. A localseqId
is used to track priority ofConfigSources
that are set. In the case of parsing errors, there may be re-reporting of the last validConfigSource
to ensure the highest priority and valid ConfigSource is reported with the highestseqId
ConfigValueResolver
key
,value
,seqId
, andConfigOrigin
.ConfigProvider
methods now store the final return value throughConfigValueResolver
ConfigMergeResolver
Motivation
RFC
Additional Notes
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]