Skip to content

Conversation

@mcculls
Copy link
Contributor

@mcculls mcculls commented Nov 13, 2025

... and update metadata/supported-configurations.json with a couple of missing integrations.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

InstrumenterConfig runs before Config and checks settings that control instrumentation.
We skip the registration when doing native-image builds because we deliberately turn off
non-critical features like telemetry for native-image.

This change also simplifies ConfigInversionMetricCollectorProvider.get() for performance
reasons, while moving debug logs to NoOpConfigInversionMetricCollector when the telemetry
based implementation is not yet registered.
@mcculls mcculls requested a review from a team as a code owner November 13, 2025 15:39
@mcculls mcculls added the type: enhancement Enhancements and improvements label Nov 13, 2025
@mcculls mcculls requested a review from a team as a code owner November 13, 2025 15:39
@mcculls mcculls added the tag: no release notes Changes to exclude from release notes label Nov 13, 2025
@mcculls mcculls requested review from bric3 and removed request for a team November 13, 2025 15:39
@mcculls mcculls added the comp: config Configuration label Nov 13, 2025
@mcculls mcculls requested review from mhlidd and ygree November 13, 2025 15:39
Copy link
Contributor

@mhlidd mhlidd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few questions. Thanks for the changes!

static {
// skip registration when building native-images as telemetry is not available
if (!Platform.isNativeImageBuilder()) {
ConfigInversionMetricCollectorProvider.register(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❓ If we register the Collector in InstrumenterConfig, which gets initialized in Config.java, should we remove the registration that already exists in Config.java(ref)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, out of curiosity, what is the added benefit of registering in InstrumenterConfig instead of just Config?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See #9953 (comment) - without this registration config-inversion is not applied to InstrumenterConfig, which means new integrations don't cause any CI alerts about documenting them - for example the 'hikari' and 'dbcp2' integrations.

(This is because an instance of InstrumenterConfig is created before Config's static initializer runs.)

In the future as Config is broken apart there will hopefully be a better place to do this registration, but for now we have to do this in both InstrumenterConfig and Config to cover a couple of different user-cases.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I intentionally left the existing registration in Config because a) it doesn't matter which runs first because the implementation is a singleton and b) if someone refactors this in the future then I think it's clearer to have both registrations in the code

Eventually it would be nice have a clear place to register this kind of thing once - but right now there is this intentional split-brain situation between InstrumenterConfig (controls instrumentation, baked into native images and not re-evaluated) and Config (controls non-instrumentation, re-evaluated in native imeges)

@Override
public void setUndocumentedEnvVarMetric(String configName) {
// NOOP - do nothing
log.debug("Environment variable {} is undocumented", configName);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the circumstance where we would expect to have a NOOP implementation used? I would expect none, and if that's the case, should we log an error message saying that the actual implementation should be registered? 🤔

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this PR came about because I was looking at recent debug logs and noticed a bunch of these messages:

[dd.trace 2025-11-13 16:14:37:076 +0000] [main] DEBUG datadog.trace.api.telemetry.ConfigInversionMetricCollectorProvider - ConfigInversionMetricCollector has not been registered. Defaulting to NoOp implementation.
[dd.trace 2025-11-13 16:14:37:076 +0000] [main] DEBUG datadog.trace.api.telemetry.ConfigInversionMetricCollectorProvider - ConfigInversionMetricCollector has not been registered. Defaulting to NoOp implementation.
[dd.trace 2025-11-13 16:14:37:076 +0000] [main] DEBUG datadog.trace.api.telemetry.ConfigInversionMetricCollectorProvider - ConfigInversionMetricCollector has not been registered. Defaulting to NoOp implementation.
... 27 more duplicate log messages ...

I tracked this back to the missing initialization in InstrumenterConfig - but while fixing that I realized that if this happened again (i.e. the "no-op" implementation being used accidentally) then it would be better to have a log including the undocumented config key - as that would point to where the config was being looked up.

So I would argue we still need logging in the "no-op" implementation to help in the future, even if ideally that will never be called. I chose debug as that is less likely to cause disruption and is best suited for this kind of triaging. (I usually reserve use of warn/error for things that users need to know about and can fix themselves.)

Also there may well be situations (build/tooling) where we don't have telemetry, but this debug logging would be useful - especially as we often have debug on in CI.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, thanks for the info!

@datadog-official
Copy link

datadog-official bot commented Nov 13, 2025

🎯 Code Coverage
Patch Coverage: 0.00%
Total Coverage: 59.60% (-0.01%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 0e726e3 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@pr-commenter
Copy link

pr-commenter bot commented Nov 13, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/register-cfg-inversion-for-instrumenter-cfg
git_commit_date 1763047590 1763053331
git_commit_sha 640a4bd 0e726e3
release_version 1.56.0-SNAPSHOT~640a4bd02b 1.56.0-SNAPSHOT~0e726e3f8c
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1763055512 1763055512
ci_job_id 1233324403 1233324403
ci_pipeline_id 82294081 82294081
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-nn51fvx4 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-nn51fvx4 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 8 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~640a4bd02b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.096 s) : 0, 1096079
Total [baseline] (8.857 s) : 0, 8857497
Agent [candidate] (1.1 s) : 0, 1100230
Total [candidate] (8.83 s) : 0, 8829675
section iast
Agent [baseline] (1.243 s) : 0, 1242930
Total [baseline] (9.564 s) : 0, 9563614
Agent [candidate] (1.243 s) : 0, 1242940
Total [candidate] (9.538 s) : 0, 9538491
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.096 s -
Agent iast 1.243 s 146.851 ms (13.4%)
Total tracing 8.857 s -
Total iast 9.564 s 706.117 ms (8.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.1 s -
Agent iast 1.243 s 142.71 ms (13.0%)
Total tracing 8.83 s -
Total iast 9.538 s 708.816 ms (8.0%)
gantt
    title insecure-bank - break down per module: candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~640a4bd02b

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.45 ms) : 0, 1450
crashtracking [candidate] (1.452 ms) : 0, 1452
BytebuddyAgent [baseline] (704.188 ms) : 0, 704188
BytebuddyAgent [candidate] (706.644 ms) : 0, 706644
GlobalTracer [baseline] (247.695 ms) : 0, 247695
GlobalTracer [candidate] (248.822 ms) : 0, 248822
AppSec [baseline] (32.245 ms) : 0, 32245
AppSec [candidate] (32.438 ms) : 0, 32438
Debugger [baseline] (63.33 ms) : 0, 63330
Debugger [candidate] (63.671 ms) : 0, 63671
Remote Config [baseline] (639.696 µs) : 0, 640
Remote Config [candidate] (639.312 µs) : 0, 639
Telemetry [baseline] (8.22 ms) : 0, 8220
Telemetry [candidate] (8.268 ms) : 0, 8268
Flare Poller [baseline] (3.706 ms) : 0, 3706
Flare Poller [candidate] (3.666 ms) : 0, 3666
section iast
crashtracking [baseline] (1.466 ms) : 0, 1466
crashtracking [candidate] (1.474 ms) : 0, 1474
BytebuddyAgent [baseline] (834.798 ms) : 0, 834798
BytebuddyAgent [candidate] (833.632 ms) : 0, 833632
GlobalTracer [baseline] (238.585 ms) : 0, 238585
GlobalTracer [candidate] (238.672 ms) : 0, 238672
AppSec [baseline] (33.929 ms) : 0, 33929
AppSec [candidate] (34.4 ms) : 0, 34400
Debugger [baseline] (60.155 ms) : 0, 60155
Debugger [candidate] (60.603 ms) : 0, 60603
Remote Config [baseline] (543.641 µs) : 0, 544
Remote Config [candidate] (541.846 µs) : 0, 542
Telemetry [baseline] (7.599 ms) : 0, 7599
Telemetry [candidate] (7.631 ms) : 0, 7631
Flare Poller [baseline] (3.396 ms) : 0, 3396
Flare Poller [candidate] (3.47 ms) : 0, 3470
IAST [baseline] (27.52 ms) : 0, 27520
IAST [candidate] (27.638 ms) : 0, 27638
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~640a4bd02b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.106 s) : 0, 1106392
Total [baseline] (10.759 s) : 0, 10759497
Agent [candidate] (1.106 s) : 0, 1106179
Total [candidate] (10.793 s) : 0, 10792518
section appsec
Agent [baseline] (1.28 s) : 0, 1279838
Total [baseline] (11.094 s) : 0, 11093913
Agent [candidate] (1.276 s) : 0, 1275992
Total [candidate] (11.084 s) : 0, 11083584
section iast
Agent [baseline] (1.255 s) : 0, 1254988
Total [baseline] (11.24 s) : 0, 11239935
Agent [candidate] (1.241 s) : 0, 1241209
Total [candidate] (11.287 s) : 0, 11287239
section profiling
Agent [baseline] (1.236 s) : 0, 1235864
Total [baseline] (11.121 s) : 0, 11120828
Agent [candidate] (1.242 s) : 0, 1242390
Total [candidate] (11.102 s) : 0, 11102296
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.106 s -
Agent appsec 1.28 s 173.446 ms (15.7%)
Agent iast 1.255 s 148.596 ms (13.4%)
Agent profiling 1.236 s 129.472 ms (11.7%)
Total tracing 10.759 s -
Total appsec 11.094 s 334.416 ms (3.1%)
Total iast 11.24 s 480.438 ms (4.5%)
Total profiling 11.121 s 361.33 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.106 s -
Agent appsec 1.276 s 169.814 ms (15.4%)
Agent iast 1.241 s 135.031 ms (12.2%)
Agent profiling 1.242 s 136.211 ms (12.3%)
Total tracing 10.793 s -
Total appsec 11.084 s 291.066 ms (2.7%)
Total iast 11.287 s 494.721 ms (4.6%)
Total profiling 11.102 s 309.778 ms (2.9%)
gantt
    title petclinic - break down per module: candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~640a4bd02b

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.462 ms) : 0, 1462
crashtracking [candidate] (1.463 ms) : 0, 1463
BytebuddyAgent [baseline] (712.082 ms) : 0, 712082
BytebuddyAgent [candidate] (710.825 ms) : 0, 710825
GlobalTracer [baseline] (249.092 ms) : 0, 249092
GlobalTracer [candidate] (249.793 ms) : 0, 249793
AppSec [baseline] (32.403 ms) : 0, 32403
AppSec [candidate] (32.451 ms) : 0, 32451
Debugger [baseline] (64.115 ms) : 0, 64115
Debugger [candidate] (64.249 ms) : 0, 64249
Remote Config [baseline] (635.918 µs) : 0, 636
Remote Config [candidate] (644.559 µs) : 0, 645
Telemetry [baseline] (8.122 ms) : 0, 8122
Telemetry [candidate] (8.243 ms) : 0, 8243
Flare Poller [baseline] (3.676 ms) : 0, 3676
Flare Poller [candidate] (3.725 ms) : 0, 3725
section appsec
crashtracking [baseline] (1.462 ms) : 0, 1462
crashtracking [candidate] (1.449 ms) : 0, 1449
BytebuddyAgent [baseline] (729.819 ms) : 0, 729819
BytebuddyAgent [candidate] (727.917 ms) : 0, 727917
GlobalTracer [baseline] (241.155 ms) : 0, 241155
GlobalTracer [candidate] (239.706 ms) : 0, 239706
AppSec [baseline] (174.008 ms) : 0, 174008
AppSec [candidate] (174.204 ms) : 0, 174204
Debugger [baseline] (60.846 ms) : 0, 60846
Debugger [candidate] (60.345 ms) : 0, 60345
Remote Config [baseline] (657.673 µs) : 0, 658
Remote Config [candidate] (693.592 µs) : 0, 694
Telemetry [baseline] (8.35 ms) : 0, 8350
Telemetry [candidate] (8.32 ms) : 0, 8320
Flare Poller [baseline] (3.973 ms) : 0, 3973
Flare Poller [candidate] (3.936 ms) : 0, 3936
IAST [baseline] (24.748 ms) : 0, 24748
IAST [candidate] (24.765 ms) : 0, 24765
section iast
crashtracking [baseline] (1.492 ms) : 0, 1492
crashtracking [candidate] (1.454 ms) : 0, 1454
BytebuddyAgent [baseline] (843.61 ms) : 0, 843610
BytebuddyAgent [candidate] (831.162 ms) : 0, 831162
GlobalTracer [baseline] (240.161 ms) : 0, 240161
GlobalTracer [candidate] (239.171 ms) : 0, 239171
AppSec [baseline] (29.653 ms) : 0, 29653
AppSec [candidate] (30.737 ms) : 0, 30737
Debugger [baseline] (61.044 ms) : 0, 61044
Debugger [candidate] (61.396 ms) : 0, 61396
Remote Config [baseline] (561.565 µs) : 0, 562
Remote Config [candidate] (573.324 µs) : 0, 573
Telemetry [baseline] (7.714 ms) : 0, 7714
Telemetry [candidate] (7.738 ms) : 0, 7738
Flare Poller [baseline] (3.51 ms) : 0, 3510
Flare Poller [candidate] (3.477 ms) : 0, 3477
IAST [baseline] (32.235 ms) : 0, 32235
IAST [candidate] (30.813 ms) : 0, 30813
section profiling
crashtracking [baseline] (1.439 ms) : 0, 1439
crashtracking [candidate] (1.44 ms) : 0, 1440
BytebuddyAgent [baseline] (734.409 ms) : 0, 734409
BytebuddyAgent [candidate] (738.67 ms) : 0, 738670
GlobalTracer [baseline] (223.277 ms) : 0, 223277
GlobalTracer [candidate] (224.556 ms) : 0, 224556
AppSec [baseline] (32.634 ms) : 0, 32634
AppSec [candidate] (32.694 ms) : 0, 32694
Debugger [baseline] (63.434 ms) : 0, 63434
Debugger [candidate] (63.992 ms) : 0, 63992
Remote Config [baseline] (641.337 µs) : 0, 641
Remote Config [candidate] (664.889 µs) : 0, 665
Telemetry [baseline] (8.024 ms) : 0, 8024
Telemetry [candidate] (8.144 ms) : 0, 8144
Flare Poller [baseline] (3.808 ms) : 0, 3808
Flare Poller [candidate] (3.868 ms) : 0, 3868
ProfilingAgent [baseline] (98.25 ms) : 0, 98250
ProfilingAgent [candidate] (97.857 ms) : 0, 97857
Profiling [baseline] (98.842 ms) : 0, 98842
Profiling [candidate] (98.449 ms) : 0, 98449
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/register-cfg-inversion-for-instrumenter-cfg
git_commit_date 1763060338 1763053331
git_commit_sha 29d5c2d 0e726e3
release_version 1.56.0-SNAPSHOT~29d5c2d641 1.56.0-SNAPSHOT~0e726e3f8c
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1763064181 1763064181
ci_job_id 1233743281 1233743281
ci_pipeline_id 82294081 82294081
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-mmkqfk3f 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-mmkqfk3f 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 3 performance improvements and 0 performance regressions! Performance is the same for 17 metrics, 16 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:iast_FULL:high_load better
[-449.790µs; -156.587µs] or [-8.479%; -2.952%]
unsure
[-688.555µs; -115.022µs] or [-5.512%; -0.921%]
unstable
[-40.107op/s; +124.857op/s] or [-5.189%; +16.155%]
5.001ms 12.090ms 815.250op/s 5.304ms 12.492ms 772.875op/s
scenario:load:petclinic:profiling:high_load better
[-1.772ms; -0.805ms] or [-9.121%; -4.142%]
better
[-2.119ms; -0.692ms] or [-6.823%; -2.229%]
unstable
[-8.997op/s; +38.934op/s] or [-3.799%; +16.439%]
18.143ms 29.647ms 251.812op/s 19.432ms 31.053ms 236.844op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~29d5c2d641
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.376 ms) : 18187, 18565
.   : milestone, 18376,
appsec (18.592 ms) : 18401, 18782
.   : milestone, 18592,
code_origins (17.788 ms) : 17612, 17964
.   : milestone, 17788,
iast (17.612 ms) : 17438, 17787
.   : milestone, 17612,
profiling (19.711 ms) : 19512, 19910
.   : milestone, 19711,
tracing (17.405 ms) : 17234, 17575
.   : milestone, 17405,
section candidate
no_agent (19.132 ms) : 18937, 19327
.   : milestone, 19132,
appsec (18.384 ms) : 18198, 18571
.   : milestone, 18384,
code_origins (17.608 ms) : 17432, 17784
.   : milestone, 17608,
iast (17.474 ms) : 17299, 17649
.   : milestone, 17474,
profiling (18.535 ms) : 18346, 18723
.   : milestone, 18535,
tracing (17.6 ms) : 17427, 17774
.   : milestone, 17600,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.376 ms [18.187 ms, 18.565 ms] -
appsec 18.592 ms [18.401 ms, 18.782 ms] 215.801 µs (1.2%)
code_origins 17.788 ms [17.612 ms, 17.964 ms] -588.361 µs (-3.2%)
iast 17.612 ms [17.438 ms, 17.787 ms] -763.677 µs (-4.2%)
profiling 19.711 ms [19.512 ms, 19.91 ms] 1.335 ms (7.3%)
tracing 17.405 ms [17.234 ms, 17.575 ms] -971.458 µs (-5.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.132 ms [18.937 ms, 19.327 ms] -
appsec 18.384 ms [18.198 ms, 18.571 ms] -747.508 µs (-3.9%)
code_origins 17.608 ms [17.432 ms, 17.784 ms] -1.524 ms (-8.0%)
iast 17.474 ms [17.299 ms, 17.649 ms] -1.658 ms (-8.7%)
profiling 18.535 ms [18.346 ms, 18.723 ms] -597.021 µs (-3.1%)
tracing 17.6 ms [17.427 ms, 17.774 ms] -1.532 ms (-8.0%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~29d5c2d641
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.195 ms) : 1183, 1207
.   : milestone, 1195,
iast (3.279 ms) : 3238, 3319
.   : milestone, 3279,
iast_FULL (5.985 ms) : 5907, 6062
.   : milestone, 5985,
iast_GLOBAL (3.675 ms) : 3626, 3725
.   : milestone, 3675,
profiling (2.16 ms) : 2140, 2180
.   : milestone, 2160,
tracing (1.829 ms) : 1814, 1845
.   : milestone, 1829,
section candidate
no_agent (1.175 ms) : 1164, 1187
.   : milestone, 1175,
iast (3.361 ms) : 3298, 3424
.   : milestone, 3361,
iast_FULL (5.667 ms) : 5611, 5723
.   : milestone, 5667,
iast_GLOBAL (3.622 ms) : 3560, 3683
.   : milestone, 3622,
profiling (2.064 ms) : 2045, 2082
.   : milestone, 2064,
tracing (1.815 ms) : 1799, 1830
.   : milestone, 1815,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.195 ms [1.183 ms, 1.207 ms] -
iast 3.279 ms [3.238 ms, 3.319 ms] 2.084 ms (174.3%)
iast_FULL 5.985 ms [5.907 ms, 6.062 ms] 4.79 ms (400.8%)
iast_GLOBAL 3.675 ms [3.626 ms, 3.725 ms] 2.48 ms (207.5%)
profiling 2.16 ms [2.14 ms, 2.18 ms] 964.876 µs (80.7%)
tracing 1.829 ms [1.814 ms, 1.845 ms] 634.344 µs (53.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.175 ms [1.164 ms, 1.187 ms] -
iast 3.361 ms [3.298 ms, 3.424 ms] 2.185 ms (185.9%)
iast_FULL 5.667 ms [5.611 ms, 5.723 ms] 4.492 ms (382.1%)
iast_GLOBAL 3.622 ms [3.56 ms, 3.683 ms] 2.446 ms (208.1%)
profiling 2.064 ms [2.045 ms, 2.082 ms] 888.407 µs (75.6%)
tracing 1.815 ms [1.799 ms, 1.83 ms] 639.118 µs (54.4%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/register-cfg-inversion-for-instrumenter-cfg
git_commit_date 1763047590 1763053331
git_commit_sha 640a4bd 0e726e3
release_version 1.56.0-SNAPSHOT~640a4bd02b 1.56.0-SNAPSHOT~0e726e3f8c
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1763055355 1763055355
ci_job_id 1233324407 1233324407
ci_pipeline_id 82294081 82294081
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-3-8hi0k3wc 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-3-8hi0k3wc 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 2 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~640a4bd02b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.474 ms) : 1463, 1486
.   : milestone, 1474,
appsec (3.676 ms) : 3461, 3890
.   : milestone, 3676,
iast (2.225 ms) : 2161, 2288
.   : milestone, 2225,
iast_GLOBAL (2.267 ms) : 2203, 2331
.   : milestone, 2267,
profiling (2.505 ms) : 2335, 2674
.   : milestone, 2505,
tracing (2.026 ms) : 1976, 2075
.   : milestone, 2026,
section candidate
no_agent (1.477 ms) : 1466, 1489
.   : milestone, 1477,
appsec (3.706 ms) : 3487, 3925
.   : milestone, 3706,
iast (2.211 ms) : 2148, 2275
.   : milestone, 2211,
iast_GLOBAL (2.253 ms) : 2189, 2317
.   : milestone, 2253,
profiling (2.062 ms) : 2011, 2114
.   : milestone, 2062,
tracing (2.036 ms) : 1986, 2085
.   : milestone, 2036,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.463 ms, 1.486 ms] -
appsec 3.676 ms [3.461 ms, 3.89 ms] 2.202 ms (149.3%)
iast 2.225 ms [2.161 ms, 2.288 ms] 750.645 µs (50.9%)
iast_GLOBAL 2.267 ms [2.203 ms, 2.331 ms] 792.611 µs (53.8%)
profiling 2.505 ms [2.335 ms, 2.674 ms] 1.031 ms (69.9%)
tracing 2.026 ms [1.976 ms, 2.075 ms] 551.526 µs (37.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.466 ms, 1.489 ms] -
appsec 3.706 ms [3.487 ms, 3.925 ms] 2.229 ms (150.9%)
iast 2.211 ms [2.148 ms, 2.275 ms] 733.919 µs (49.7%)
iast_GLOBAL 2.253 ms [2.189 ms, 2.317 ms] 775.55 µs (52.5%)
profiling 2.062 ms [2.011 ms, 2.114 ms] 585.104 µs (39.6%)
tracing 2.036 ms [1.986 ms, 2.085 ms] 558.326 µs (37.8%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.56.0-SNAPSHOT~0e726e3f8c, baseline=1.56.0-SNAPSHOT~640a4bd02b
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.204 s) : 15204000, 15204000
.   : milestone, 15204000,
appsec (14.675 s) : 14675000, 14675000
.   : milestone, 14675000,
iast (18.655 s) : 18655000, 18655000
.   : milestone, 18655000,
iast_GLOBAL (18.205 s) : 18205000, 18205000
.   : milestone, 18205000,
profiling (15.139 s) : 15139000, 15139000
.   : milestone, 15139000,
tracing (14.796 s) : 14796000, 14796000
.   : milestone, 14796000,
section candidate
no_agent (15.409 s) : 15409000, 15409000
.   : milestone, 15409000,
appsec (14.862 s) : 14862000, 14862000
.   : milestone, 14862000,
iast (18.437 s) : 18437000, 18437000
.   : milestone, 18437000,
iast_GLOBAL (17.987 s) : 17987000, 17987000
.   : milestone, 17987000,
profiling (14.798 s) : 14798000, 14798000
.   : milestone, 14798000,
tracing (14.793 s) : 14793000, 14793000
.   : milestone, 14793000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.204 s [15.204 s, 15.204 s] -
appsec 14.675 s [14.675 s, 14.675 s] -529.0 ms (-3.5%)
iast 18.655 s [18.655 s, 18.655 s] 3.451 s (22.7%)
iast_GLOBAL 18.205 s [18.205 s, 18.205 s] 3.001 s (19.7%)
profiling 15.139 s [15.139 s, 15.139 s] -65.0 ms (-0.4%)
tracing 14.796 s [14.796 s, 14.796 s] -408.0 ms (-2.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.409 s [15.409 s, 15.409 s] -
appsec 14.862 s [14.862 s, 14.862 s] -547.0 ms (-3.5%)
iast 18.437 s [18.437 s, 18.437 s] 3.028 s (19.7%)
iast_GLOBAL 17.987 s [17.987 s, 17.987 s] 2.578 s (16.7%)
profiling 14.798 s [14.798 s, 14.798 s] -611.0 ms (-4.0%)
tracing 14.793 s [14.793 s, 14.793 s] -616.0 ms (-4.0%)

@mcculls mcculls requested a review from a team as a code owner November 13, 2025 17:02
@mcculls mcculls merged commit 714017b into master Nov 13, 2025
540 checks passed
@mcculls mcculls deleted the mcculls/register-cfg-inversion-for-instrumenter-cfg branch November 13, 2025 22:12
@github-actions github-actions bot added this to the 1.56.0 milestone Nov 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: config Configuration tag: no release notes Changes to exclude from release notes type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants