-
Notifications
You must be signed in to change notification settings - Fork 311
Report all set configuration sources to telemetry #9273
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
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 1 performance regressions! Performance is the same for 47 metrics, 11 unstable metrics.
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.053 s) : 0, 1053257
Total [baseline] (10.783 s) : 0, 10783414
Agent [candidate] (1.044 s) : 0, 1044091
Total [candidate] (10.677 s) : 0, 10677497
section appsec
Agent [baseline] (1.22 s) : 0, 1220343
Total [baseline] (10.792 s) : 0, 10791637
Agent [candidate] (1.221 s) : 0, 1221483
Total [candidate] (10.743 s) : 0, 10743297
section iast
Agent [baseline] (1.183 s) : 0, 1182751
Total [baseline] (10.858 s) : 0, 10858120
Agent [candidate] (1.193 s) : 0, 1193184
Total [candidate] (11.001 s) : 0, 11001311
section profiling
Agent [baseline] (1.2 s) : 0, 1199576
Total [baseline] (10.93 s) : 0, 10930290
Agent [candidate] (1.209 s) : 0, 1209095
Total [candidate] (10.956 s) : 0, 10955836
gantt
title petclinic - break down per module: candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.431 ms) : 0, 1431
crashtracking [candidate] (1.439 ms) : 0, 1439
BytebuddyAgent [baseline] (738.074 ms) : 0, 738074
BytebuddyAgent [candidate] (731.733 ms) : 0, 731733
GlobalTracer [baseline] (243.938 ms) : 0, 243938
GlobalTracer [candidate] (241.159 ms) : 0, 241159
AppSec [baseline] (30.501 ms) : 0, 30501
AppSec [candidate] (30.359 ms) : 0, 30359
Debugger [baseline] (6.059 ms) : 0, 6059
Debugger [candidate] (5.965 ms) : 0, 5965
Remote Config [baseline] (655.855 µs) : 0, 656
Remote Config [candidate] (687.925 µs) : 0, 688
Telemetry [baseline] (11.516 ms) : 0, 11516
Telemetry [candidate] (11.82 ms) : 0, 11820
section appsec
crashtracking [baseline] (1.427 ms) : 0, 1427
crashtracking [candidate] (1.435 ms) : 0, 1435
BytebuddyAgent [baseline] (753.466 ms) : 0, 753466
BytebuddyAgent [candidate] (755.215 ms) : 0, 755215
GlobalTracer [baseline] (235.454 ms) : 0, 235454
GlobalTracer [candidate] (234.372 ms) : 0, 234372
IAST [baseline] (23.528 ms) : 0, 23528
IAST [candidate] (23.612 ms) : 0, 23612
AppSec [baseline] (169.329 ms) : 0, 169329
AppSec [candidate] (170.812 ms) : 0, 170812
Debugger [baseline] (7.212 ms) : 0, 7212
Debugger [candidate] (5.778 ms) : 0, 5778
Remote Config [baseline] (612.145 µs) : 0, 612
Remote Config [candidate] (602.498 µs) : 0, 602
Telemetry [baseline] (8.244 ms) : 0, 8244
Telemetry [candidate] (8.273 ms) : 0, 8273
section iast
crashtracking [baseline] (1.434 ms) : 0, 1434
crashtracking [candidate] (1.445 ms) : 0, 1445
BytebuddyAgent [baseline] (854.32 ms) : 0, 854320
BytebuddyAgent [candidate] (863.09 ms) : 0, 863090
GlobalTracer [baseline] (232.945 ms) : 0, 232945
GlobalTracer [candidate] (233.285 ms) : 0, 233285
IAST [baseline] (27.722 ms) : 0, 27722
IAST [candidate] (28.046 ms) : 0, 28046
AppSec [baseline] (29.724 ms) : 0, 29724
AppSec [candidate] (31.133 ms) : 0, 31133
Debugger [baseline] (6.654 ms) : 0, 6654
Debugger [candidate] (6.038 ms) : 0, 6038
Remote Config [baseline] (586.917 µs) : 0, 587
Remote Config [candidate] (610.373 µs) : 0, 610
Telemetry [baseline] (8.195 ms) : 0, 8195
Telemetry [candidate] (8.321 ms) : 0, 8321
section profiling
crashtracking [baseline] (1.415 ms) : 0, 1415
crashtracking [candidate] (1.428 ms) : 0, 1428
BytebuddyAgent [baseline] (764.326 ms) : 0, 764326
BytebuddyAgent [candidate] (770.719 ms) : 0, 770719
GlobalTracer [baseline] (222.863 ms) : 0, 222863
GlobalTracer [candidate] (223.068 ms) : 0, 223068
AppSec [baseline] (30.235 ms) : 0, 30235
AppSec [candidate] (30.827 ms) : 0, 30827
Debugger [baseline] (6.331 ms) : 0, 6331
Debugger [candidate] (6.386 ms) : 0, 6386
Remote Config [baseline] (697.857 µs) : 0, 698
Remote Config [candidate] (665.491 µs) : 0, 665
Telemetry [baseline] (15.966 ms) : 0, 15966
Telemetry [candidate] (15.132 ms) : 0, 15132
ProfilingAgent [baseline] (108.143 ms) : 0, 108143
ProfilingAgent [candidate] (108.827 ms) : 0, 108827
Profiling [baseline] (108.791 ms) : 0, 108791
Profiling [candidate] (109.445 ms) : 0, 109445
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.043 s) : 0, 1042995
Total [baseline] (8.585 s) : 0, 8584877
Agent [candidate] (1.046 s) : 0, 1045735
Total [candidate] (8.569 s) : 0, 8568758
section iast
Agent [baseline] (1.182 s) : 0, 1182463
Total [baseline] (9.299 s) : 0, 9299036
Agent [candidate] (1.175 s) : 0, 1174532
Total [candidate] (9.329 s) : 0, 9329220
gantt
title insecure-bank - break down per module: candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.434 ms) : 0, 1434
crashtracking [candidate] (1.425 ms) : 0, 1425
BytebuddyAgent [baseline] (730.159 ms) : 0, 730159
BytebuddyAgent [candidate] (733.54 ms) : 0, 733540
GlobalTracer [baseline] (241.721 ms) : 0, 241721
GlobalTracer [candidate] (241.65 ms) : 0, 241650
AppSec [baseline] (30.095 ms) : 0, 30095
AppSec [candidate] (30.453 ms) : 0, 30453
Debugger [baseline] (6.02 ms) : 0, 6020
Debugger [candidate] (5.98 ms) : 0, 5980
Remote Config [baseline] (655.752 µs) : 0, 656
Remote Config [candidate] (689.409 µs) : 0, 689
Telemetry [baseline] (11.869 ms) : 0, 11869
Telemetry [candidate] (11.103 ms) : 0, 11103
section iast
crashtracking [baseline] (1.434 ms) : 0, 1434
crashtracking [candidate] (1.42 ms) : 0, 1420
BytebuddyAgent [baseline] (854.371 ms) : 0, 854371
BytebuddyAgent [candidate] (848.407 ms) : 0, 848407
GlobalTracer [baseline] (232.786 ms) : 0, 232786
GlobalTracer [candidate] (230.779 ms) : 0, 230779
IAST [baseline] (28.717 ms) : 0, 28717
IAST [candidate] (25.849 ms) : 0, 25849
AppSec [baseline] (29.648 ms) : 0, 29648
AppSec [candidate] (32.555 ms) : 0, 32555
Debugger [baseline] (5.788 ms) : 0, 5788
Debugger [candidate] (5.847 ms) : 0, 5847
Remote Config [baseline] (590.939 µs) : 0, 591
Remote Config [candidate] (579.654 µs) : 0, 580
Telemetry [baseline] (8.151 ms) : 0, 8151
Telemetry [candidate] (8.152 ms) : 0, 8152
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 12 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section baseline
no_agent (37.641 ms) : 37332, 37949
. : milestone, 37641,
appsec (48.719 ms) : 48298, 49140
. : milestone, 48719,
code_origins (46.312 ms) : 45921, 46703
. : milestone, 46312,
iast (44.674 ms) : 44282, 45065
. : milestone, 44674,
profiling (49.598 ms) : 49126, 50070
. : milestone, 49598,
tracing (44.109 ms) : 43740, 44479
. : milestone, 44109,
section candidate
no_agent (37.18 ms) : 36889, 37471
. : milestone, 37180,
appsec (48.124 ms) : 47699, 48549
. : milestone, 48124,
code_origins (45.748 ms) : 45360, 46136
. : milestone, 45748,
iast (45.868 ms) : 45461, 46275
. : milestone, 45868,
profiling (48.905 ms) : 48455, 49356
. : milestone, 48905,
tracing (44.347 ms) : 43953, 44741
. : milestone, 44347,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section baseline
no_agent (4.363 ms) : 4314, 4413
. : milestone, 4363,
iast (9.653 ms) : 9491, 9814
. : milestone, 9653,
iast_FULL (13.903 ms) : 13631, 14174
. : milestone, 13903,
iast_GLOBAL (10.083 ms) : 9908, 10259
. : milestone, 10083,
profiling (8.765 ms) : 8620, 8911
. : milestone, 8765,
tracing (7.508 ms) : 7403, 7613
. : milestone, 7508,
section candidate
no_agent (4.365 ms) : 4316, 4415
. : milestone, 4365,
iast (9.282 ms) : 9127, 9436
. : milestone, 9282,
iast_FULL (13.962 ms) : 13682, 14242
. : milestone, 13962,
iast_GLOBAL (10.328 ms) : 10149, 10507
. : milestone, 10328,
profiling (9.002 ms) : 8862, 9142
. : milestone, 9002,
tracing (7.394 ms) : 7290, 7497
. : milestone, 7394,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 2 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1468, 1491
. : milestone, 1479,
appsec (3.644 ms) : 3429, 3860
. : milestone, 3644,
iast (2.207 ms) : 2144, 2269
. : milestone, 2207,
iast_GLOBAL (2.236 ms) : 2173, 2299
. : milestone, 2236,
profiling (2.477 ms) : 2312, 2642
. : milestone, 2477,
tracing (2.024 ms) : 1976, 2073
. : milestone, 2024,
section candidate
no_agent (1.475 ms) : 1463, 1486
. : milestone, 1475,
appsec (3.656 ms) : 3440, 3872
. : milestone, 3656,
iast (2.209 ms) : 2146, 2271
. : milestone, 2209,
iast_GLOBAL (2.248 ms) : 2186, 2311
. : milestone, 2248,
profiling (2.065 ms) : 2014, 2115
. : milestone, 2065,
tracing (2.016 ms) : 1968, 2065
. : milestone, 2016,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.51.1-SNAPSHOT~c698d29484, baseline=1.53.0-SNAPSHOT~0f91094b82
dateFormat X
axisFormat %s
section baseline
no_agent (15.522 s) : 15522000, 15522000
. : milestone, 15522000,
appsec (14.889 s) : 14889000, 14889000
. : milestone, 14889000,
iast (18.728 s) : 18728000, 18728000
. : milestone, 18728000,
iast_GLOBAL (17.956 s) : 17956000, 17956000
. : milestone, 17956000,
profiling (15.153 s) : 15153000, 15153000
. : milestone, 15153000,
tracing (15.053 s) : 15053000, 15053000
. : milestone, 15053000,
section candidate
no_agent (15.513 s) : 15513000, 15513000
. : milestone, 15513000,
appsec (14.708 s) : 14708000, 14708000
. : milestone, 14708000,
iast (18.802 s) : 18802000, 18802000
. : milestone, 18802000,
iast_GLOBAL (18.201 s) : 18201000, 18201000
. : milestone, 18201000,
profiling (15.221 s) : 15221000, 15221000
. : milestone, 15221000,
tracing (14.991 s) : 14991000, 14991000
. : milestone, 14991000,
|
…in); update tests for new structure
…his in getString method
Code coverage: total 58.12%, base diff 1.02%, patch 100.00% (view details) This comment will be updated automatically if new data arrives.🔗 Commit SHA: c698d29 | Docs | Was this helpful? Give us feedback! |
ConfigSetting configSetting = | ||
ConfigCollector.get().getAppliedConfigSetting(LOGS_INJECTION_ENABLED); |
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.
NOTE!
Previously this method invoked collect()
on the ConfigCollector; collect()
drains the collector, which seems at odds with the expected behavior of getLogInjectionEnabled()
—a method that, based on its name, should simply read a value rather than mutate or clear state.
Is getLogInjectionEnabled()
supposed to trigger a collection cycle? If so — why? But also, we just have to call collect() manually here as well.
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.
Generally looks good to me. I do wonder if it would be better to actually reverse the order we lookup sources (i.e. from least prioritized, aka DEFAULTS, to most prioritized) so that we can avoid an if check for each new source (whether it is the first source that we find and its value needs to be returned), and an if check at the end (for whether to return a value from a source of a value from the default).
for (ConfigProvider.Source source : sources) { | ||
String value = source.get(key, aliases); | ||
// TODO: Is a source still configured "set" if it's empty, though? |
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.
Given the description of the function, I would say no.
Closed in favor of #9307 |
What Does This Do
Updates our telemetry reporting for SDK configurations to include all set configuration sources in the app-started telemetry event, not just the highest-precedence ("applied") source.
For example, if logs injection is configured via both a JVM option and an environment variable, we now report both sources—whereas previously, only the applied source (e.g., jvm_prop) was reported.
Now, we report all of them, including the default, along with a seq_id field to track precedence.
Details
precedence
field toConfigOrigin
ConfigProvider
to report all non-null config values, not just the firstConfigCollector
to track one setting per origin, per key, using aMap<String, Map<ConfigOrigin, ConfigSetting>>
Motivation
The endgoal is to surface all of these configurations and their sources to users in the UI. See Motivation section of the RFC for more details.
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]