Skip to content

Refactor config into its own module - #9426

Merged
PerfectSlayer merged 1 commit into
masterfrom
bbujon/config-module
Sep 15, 2025
Merged

Refactor config into its own module#9426
PerfectSlayer merged 1 commit into
masterfrom
bbujon/config-module

Conversation

@PerfectSlayer

@PerfectSlayerPerfectSlayer commented Aug 27, 2025

Copy link
Copy Markdown
Collaborator

What Does This Do

This PR refactor the config related code into its own module.

Motivation

This would improve readability, maintenance and ownership.

Additional Notes

Using :utils as destination for now as the new config module still has :dd-trace-api as dependency so can't be considered as a :component.

The Config and InstrumenterConfig are not good candidate to the refactoring as they are too tightly coupled to many other products.
The DynamicConfig could still be a good candidate (coupled with sampling internal api).

I used Dependency Inversion for the OTel metrics collector. It’s needed for the OtelEnvironmentConfigSource but can’t be moved to the new config module as it’s heavily dependent on the telemetry code.

We still need to :

  • Move the :component:yaml into this new module (only one class and one dependency, only used for stable config)
  • Decouple the test -- this will be painful as we will discover must of the stuff is not properly / independently tested.
  • Update the module package structure for coherence -- classes were not moved to another package to avoid introducing too many changes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@PerfectSlayerPerfectSlayer added comp: core Tracer core tag: no release notes Changes to exclude from release notes type: refactoring labels Aug 27, 2025
@datadog-datadog-prod-us1

datadog-datadog-prod-us1Bot commented Aug 27, 2025

Copy link
Copy Markdown
Contributor

🎯 Code Coverage
Patch Coverage: 23.08%
Total Coverage: 59.62% (-0.54%)

View detailed report

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

@pr-commenter

pr-commenterBot commented Aug 27, 2025

Copy link
Copy Markdown

Benchmarks

Startup

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterbbujon/config-module
git_commit_date17579463731757948785
git_commit_sha8f4fb42b40c033
release_version1.54.0-SNAPSHOT~8f4fb427ca1.54.0-SNAPSHOT~b40c033805
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17579505001757950500
ci_job_id11293098971129309897
ci_pipeline_id7649325576493255
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-bfzcs7a2 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/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-bfzcs7a2 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
moduleAgentAgent
parentNoneNone

Summary

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

Startup time reports for insecure-bank
gantt
title insecure-bank - global startup overhead: candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.066 s) : 0, 1065572
Total [baseline] (8.66 s) : 0, 8660091
Agent [candidate] (1.065 s) : 0, 1065026
Total [candidate] (8.636 s) : 0, 8636325
section iast
Agent [baseline] (1.194 s) : 0, 1193951
Total [baseline] (9.328 s) : 0, 9327800
Agent [candidate] (1.191 s) : 0, 1190808
Total [candidate] (9.325 s) : 0, 9325382
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.066 s-
Agentiast1.194 s128.379 ms (12.0%)
Totaltracing8.66 s-
Totaliast9.328 s667.709 ms (7.7%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.065 s-
Agentiast1.191 s125.783 ms (11.8%)
Totaltracing8.636 s-
Totaliast9.325 s689.057 ms (8.0%)
gantt
title insecure-bank - break down per module: candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.461 ms) : 0, 1461
crashtracking [candidate] (1.465 ms) : 0, 1465
BytebuddyAgent [baseline] (735.925 ms) : 0, 735925
BytebuddyAgent [candidate] (735.016 ms) : 0, 735016
GlobalTracer [baseline] (252.878 ms) : 0, 252878
GlobalTracer [candidate] (253.202 ms) : 0, 253202
AppSec [baseline] (30.683 ms) : 0, 30683
AppSec [candidate] (30.725 ms) : 0, 30725
Debugger [baseline] (6.427 ms) : 0, 6427
Debugger [candidate] (6.409 ms) : 0, 6409
Remote Config [baseline] (690.06 µs) : 0, 690
Remote Config [candidate] (691.353 µs) : 0, 691
Telemetry [baseline] (16.464 ms) : 0, 16464
Telemetry [candidate] (16.371 ms) : 0, 16371
section iast
crashtracking [baseline] (1.477 ms) : 0, 1477
crashtracking [candidate] (1.463 ms) : 0, 1463
BytebuddyAgent [baseline] (855.298 ms) : 0, 855298
BytebuddyAgent [candidate] (852.721 ms) : 0, 852721
GlobalTracer [baseline] (249.578 ms) : 0, 249578
GlobalTracer [candidate] (244.171 ms) : 0, 244171
IAST [baseline] (27.167 ms) : 0, 27167
IAST [candidate] (31.264 ms) : 0, 31264
AppSec [baseline] (24.607 ms) : 0, 24607
AppSec [candidate] (25.409 ms) : 0, 25409
Debugger [baseline] (6.001 ms) : 0, 6001
Debugger [candidate] (6.05 ms) : 0, 6050
Remote Config [baseline] (602.492 µs) : 0, 602
Remote Config [candidate] (614.592 µs) : 0, 615
Telemetry [baseline] (8.177 ms) : 0, 8177
Telemetry [candidate] (8.188 ms) : 0, 8188
Loading
Startup time reports for petclinic
gantt
title petclinic - global startup overhead: candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.069 s) : 0, 1069372
Total [baseline] (10.791 s) : 0, 10791274
Agent [candidate] (1.062 s) : 0, 1061954
Total [candidate] (10.83 s) : 0, 10830391
section appsec
Agent [baseline] (1.235 s) : 0, 1235486
Total [baseline] (11.11 s) : 0, 11109520
Agent [candidate] (1.247 s) : 0, 1246802
Total [candidate] (11.101 s) : 0, 11100876
section iast
Agent [baseline] (1.196 s) : 0, 1195781
Total [baseline] (11.033 s) : 0, 11033498
Agent [candidate] (1.204 s) : 0, 1203680
Total [candidate] (9.717 s) : 0, 9716829
section profiling
Agent [baseline] (1.221 s) : 0, 1220531
Total [baseline] (11.068 s) : 0, 11067522
Agent [candidate] (1.213 s) : 0, 1212676
Total [candidate] (11.058 s) : 0, 11057946
Loading
  • baseline results
ModuleVariantDurationΔ tracing
Agenttracing1.069 s-
Agentappsec1.235 s166.114 ms (15.5%)
Agentiast1.196 s126.409 ms (11.8%)
Agentprofiling1.221 s151.159 ms (14.1%)
Totaltracing10.791 s-
Totalappsec11.11 s318.246 ms (2.9%)
Totaliast11.033 s242.224 ms (2.2%)
Totalprofiling11.068 s276.248 ms (2.6%)
  • candidate results
ModuleVariantDurationΔ tracing
Agenttracing1.062 s-
Agentappsec1.247 s184.847 ms (17.4%)
Agentiast1.204 s141.726 ms (13.3%)
Agentprofiling1.213 s150.722 ms (14.2%)
Totaltracing10.83 s-
Totalappsec11.101 s270.486 ms (2.5%)
Totaliast9.717 s-1.114 s (-10.3%)
Totalprofiling11.058 s227.555 ms (2.1%)
gantt
title petclinic - break down per module: candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.472 ms) : 0, 1472
crashtracking [candidate] (1.455 ms) : 0, 1455
BytebuddyAgent [baseline] (739.87 ms) : 0, 739870
BytebuddyAgent [candidate] (733.087 ms) : 0, 733087
GlobalTracer [baseline] (253.457 ms) : 0, 253457
GlobalTracer [candidate] (252.571 ms) : 0, 252571
AppSec [baseline] (30.587 ms) : 0, 30587
AppSec [candidate] (30.42 ms) : 0, 30420
Debugger [baseline] (6.425 ms) : 0, 6425
Debugger [candidate] (6.364 ms) : 0, 6364
Remote Config [baseline] (692.683 µs) : 0, 693
Remote Config [candidate] (690.209 µs) : 0, 690
Telemetry [baseline] (15.524 ms) : 0, 15524
Telemetry [candidate] (16.238 ms) : 0, 16238
section appsec
crashtracking [baseline] (1.457 ms) : 0, 1457
crashtracking [candidate] (1.467 ms) : 0, 1467
BytebuddyAgent [baseline] (755.741 ms) : 0, 755741
BytebuddyAgent [candidate] (763.876 ms) : 0, 763876
GlobalTracer [baseline] (245.924 ms) : 0, 245924
GlobalTracer [candidate] (248.037 ms) : 0, 248037
IAST [baseline] (23.749 ms) : 0, 23749
IAST [candidate] (24.084 ms) : 0, 24084
AppSec [baseline] (171.473 ms) : 0, 171473
AppSec [candidate] (172.626 ms) : 0, 172626
Debugger [baseline] (6.763 ms) : 0, 6763
Debugger [candidate] (6.087 ms) : 0, 6087
Remote Config [baseline] (645.254 µs) : 0, 645
Remote Config [candidate] (660.73 µs) : 0, 661
Telemetry [baseline] (8.496 ms) : 0, 8496
Telemetry [candidate] (8.594 ms) : 0, 8594
section iast
crashtracking [baseline] (1.461 ms) : 0, 1461
crashtracking [candidate] (1.476 ms) : 0, 1476
BytebuddyAgent [baseline] (855.844 ms) : 0, 855844
BytebuddyAgent [candidate] (864.307 ms) : 0, 864307
GlobalTracer [baseline] (247.796 ms) : 0, 247796
GlobalTracer [candidate] (248.228 ms) : 0, 248228
IAST [baseline] (28.982 ms) : 0, 28982
IAST [candidate] (29.582 ms) : 0, 29582
AppSec [baseline] (25.596 ms) : 0, 25596
AppSec [candidate] (24.319 ms) : 0, 24319
Debugger [baseline] (6.069 ms) : 0, 6069
Debugger [candidate] (6.042 ms) : 0, 6042
Remote Config [baseline] (607.727 µs) : 0, 608
Remote Config [candidate] (598.026 µs) : 0, 598
Telemetry [baseline] (8.217 ms) : 0, 8217
Telemetry [candidate] (8.001 ms) : 0, 8001
section profiling
crashtracking [baseline] (1.457 ms) : 0, 1457
crashtracking [candidate] (1.445 ms) : 0, 1445
BytebuddyAgent [baseline] (769.099 ms) : 0, 769099
BytebuddyAgent [candidate] (763.552 ms) : 0, 763552
GlobalTracer [baseline] (234.987 ms) : 0, 234987
GlobalTracer [candidate] (233.26 ms) : 0, 233260
AppSec [baseline] (30.808 ms) : 0, 30808
AppSec [candidate] (30.558 ms) : 0, 30558
Debugger [baseline] (9.018 ms) : 0, 9018
Debugger [candidate] (12.988 ms) : 0, 12988
Remote Config [baseline] (756.653 µs) : 0, 757
Remote Config [candidate] (734.017 µs) : 0, 734
Telemetry [baseline] (14.154 ms) : 0, 14154
Telemetry [candidate] (10.252 ms) : 0, 10252
ProfilingAgent [baseline] (108.929 ms) : 0, 108929
ProfilingAgent [candidate] (108.539 ms) : 0, 108539
Profiling [baseline] (109.592 ms) : 0, 109592
Profiling [candidate] (109.191 ms) : 0, 109191
Loading

Load

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterbbujon/config-module
git_commit_date17579463731757948785
git_commit_sha8f4fb42b40c033
release_version1.54.0-SNAPSHOT~8f4fb427ca1.54.0-SNAPSHOT~b40c033805
See matching parameters
BaselineCandidate
applicationinsecure-bankinsecure-bank
ci_job_date17579503141757950314
ci_job_id11293098981129309898
ci_pipeline_id7649325576493255
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-0-tun7ivox 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/LinuxLinux runner-zfyrx7zua-project-304-concurrent-0-tun7ivox 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 1 performance regressions! Performance is the same for 8 metrics, 12 unstable metrics.

scenarioΔ mean http_req_durationΔ mean throughputcandidate mean http_req_durationcandidate mean throughputbaseline mean http_req_durationbaseline mean throughput
scenario:load:insecure-bank:tracing:high_loadbetter
[-680.880µs; -427.240µs] or [-8.291%; -5.203%]
unstable
[-28.251op/s; +109.063op/s] or [-5.005%; +19.321%]
7.658ms604.875op/s8.212ms564.469op/s
scenario:load:petclinic:code_origins:high_loadbetter
[-2.277ms; -1.425ms] or [-4.854%; -3.037%]
unstable
[-1.593op/s; +12.423op/s] or [-1.596%; +12.449%]
45.048ms105.203op/s46.899ms99.787op/s
scenario:load:petclinic:profiling:high_loadworse
[+1.355ms; +2.388ms] or [+2.879%; +5.073%]
unstable
[-11.278op/s; +3.703op/s] or [-11.342%; +3.724%]
48.939ms95.650op/s47.068ms99.438op/s
scenario:load:petclinic:appsec:high_loadbetter
[-2.507ms; -1.566ms] or [-4.956%; -3.095%]
unstable
[-3.244op/s; +10.969op/s] or [-3.506%; +11.852%]
48.546ms96.412op/s50.582ms92.550op/s
Request duration reports for insecure-bank
gantt
title insecure-bank - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section baseline
no_agent (4.27 ms) : 4222, 4319
. : milestone, 4270,
iast (9.416 ms) : 9260, 9572
. : milestone, 9416,
iast_FULL (14.026 ms) : 13745, 14308
. : milestone, 14026,
iast_GLOBAL (10.985 ms) : 10777, 11194
. : milestone, 10985,
profiling (9.139 ms) : 8977, 9301
. : milestone, 9139,
tracing (8.212 ms) : 8093, 8331
. : milestone, 8212,
section candidate
no_agent (4.378 ms) : 4328, 4428
. : milestone, 4378,
iast (9.417 ms) : 9255, 9579
. : milestone, 9417,
iast_FULL (14.021 ms) : 13740, 14301
. : milestone, 14021,
iast_GLOBAL (10.896 ms) : 10701, 11092
. : milestone, 10896,
profiling (9.49 ms) : 9316, 9664
. : milestone, 9490,
tracing (7.658 ms) : 7541, 7774
. : milestone, 7658,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.27 ms [4.222 ms, 4.319 ms]-
iast9.416 ms [9.26 ms, 9.572 ms]5.146 ms (120.5%)
iast_FULL14.026 ms [13.745 ms, 14.308 ms]9.756 ms (228.5%)
iast_GLOBAL10.985 ms [10.777 ms, 11.194 ms]6.715 ms (157.3%)
profiling9.139 ms [8.977 ms, 9.301 ms]4.869 ms (114.0%)
tracing8.212 ms [8.093 ms, 8.331 ms]3.942 ms (92.3%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent4.378 ms [4.328 ms, 4.428 ms]-
iast9.417 ms [9.255 ms, 9.579 ms]5.039 ms (115.1%)
iast_FULL14.021 ms [13.74 ms, 14.301 ms]9.643 ms (220.2%)
iast_GLOBAL10.896 ms [10.701 ms, 11.092 ms]6.518 ms (148.9%)
profiling9.49 ms [9.316 ms, 9.664 ms]5.112 ms (116.8%)
tracing7.658 ms [7.541 ms, 7.774 ms]3.28 ms (74.9%)
Request duration reports for petclinic
gantt
title petclinic - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section baseline
no_agent (37.164 ms) : 36864, 37465
. : milestone, 37164,
appsec (50.582 ms) : 50145, 51019
. : milestone, 50582,
code_origins (46.899 ms) : 46484, 47314
. : milestone, 46899,
iast (45.706 ms) : 45301, 46110
. : milestone, 45706,
profiling (47.068 ms) : 46599, 47536
. : milestone, 47068,
tracing (45.049 ms) : 44663, 45435
. : milestone, 45049,
section candidate
no_agent (37.557 ms) : 37253, 37860
. : milestone, 37557,
appsec (48.546 ms) : 48109, 48983
. : milestone, 48546,
code_origins (45.048 ms) : 44672, 45424
. : milestone, 45048,
iast (46.354 ms) : 45955, 46753
. : milestone, 46354,
profiling (48.939 ms) : 48448, 49430
. : milestone, 48939,
tracing (45.514 ms) : 45101, 45928
. : milestone, 45514,
Loading
  • baseline results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent37.164 ms [36.864 ms, 37.465 ms]-
appsec50.582 ms [50.145 ms, 51.019 ms]13.418 ms (36.1%)
code_origins46.899 ms [46.484 ms, 47.314 ms]9.734 ms (26.2%)
iast45.706 ms [45.301 ms, 46.11 ms]8.541 ms (23.0%)
profiling47.068 ms [46.599 ms, 47.536 ms]9.903 ms (26.6%)
tracing45.049 ms [44.663 ms, 45.435 ms]7.885 ms (21.2%)
  • candidate results
VariantRequest duration [CI 0.99]Δ no_agent
no_agent37.557 ms [37.253 ms, 37.86 ms]-
appsec48.546 ms [48.109 ms, 48.983 ms]10.99 ms (29.3%)
code_origins45.048 ms [44.672 ms, 45.424 ms]7.492 ms (19.9%)
iast46.354 ms [45.955 ms, 46.753 ms]8.798 ms (23.4%)
profiling48.939 ms [48.448 ms, 49.43 ms]11.383 ms (30.3%)
tracing45.514 ms [45.101 ms, 45.928 ms]7.958 ms (21.2%)

Dacapo

Parameters

BaselineCandidate
baseline_or_candidatebaselinecandidate
git_branchmasterbbujon/config-module
git_commit_date17579463731757948785
git_commit_sha8f4fb42b40c033
release_version1.54.0-SNAPSHOT~8f4fb427ca1.54.0-SNAPSHOT~b40c033805
See matching parameters
BaselineCandidate
applicationbiojavabiojava
ci_job_date17579507961757950796
ci_job_id11293098991129309899
ci_pipeline_id7649325576493255
cpu_modelIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHzIntel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_versionLinux runner-zfyrx7zua-project-304-concurrent-1-jkfa42n1 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/LinuxLinux runner-zfyrx7zua-project-304-concurrent-1-jkfa42n1 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 11 metrics, 1 unstable metrics.

Execution time for tomcat
gantt
title tomcat - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section baseline
no_agent (1.473 ms) : 1461, 1484
. : milestone, 1473,
appsec (3.678 ms) : 3461, 3896
. : milestone, 3678,
iast (2.2 ms) : 2137, 2263
. : milestone, 2200,
iast_GLOBAL (2.238 ms) : 2175, 2301
. : milestone, 2238,
profiling (2.039 ms) : 1988, 2089
. : milestone, 2039,
tracing (2.007 ms) : 1959, 2056
. : milestone, 2007,
section candidate
no_agent (1.474 ms) : 1462, 1485
. : milestone, 1474,
appsec (3.637 ms) : 3425, 3850
. : milestone, 3637,
iast (2.196 ms) : 2134, 2259
. : milestone, 2196,
iast_GLOBAL (2.229 ms) : 2166, 2291
. : milestone, 2229,
profiling (2.072 ms) : 2020, 2125
. : milestone, 2072,
tracing (2.024 ms) : 1975, 2073
. : milestone, 2024,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.473 ms [1.461 ms, 1.484 ms]-
appsec3.678 ms [3.461 ms, 3.896 ms]2.206 ms (149.8%)
iast2.2 ms [2.137 ms, 2.263 ms]726.931 µs (49.4%)
iast_GLOBAL2.238 ms [2.175 ms, 2.301 ms]765.7 µs (52.0%)
profiling2.039 ms [1.988 ms, 2.089 ms]565.873 µs (38.4%)
tracing2.007 ms [1.959 ms, 2.056 ms]534.613 µs (36.3%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent1.474 ms [1.462 ms, 1.485 ms]-
appsec3.637 ms [3.425 ms, 3.85 ms]2.163 ms (146.8%)
iast2.196 ms [2.134 ms, 2.259 ms]722.382 µs (49.0%)
iast_GLOBAL2.229 ms [2.166 ms, 2.291 ms]754.713 µs (51.2%)
profiling2.072 ms [2.02 ms, 2.125 ms]598.527 µs (40.6%)
tracing2.024 ms [1.975 ms, 2.073 ms]549.964 µs (37.3%)
Execution time for biojava
gantt
title biojava - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~b40c033805, baseline=1.54.0-SNAPSHOT~8f4fb427ca
dateFormat X
axisFormat %s
section baseline
no_agent (14.956 s) : 14956000, 14956000
. : milestone, 14956000,
appsec (14.901 s) : 14901000, 14901000
. : milestone, 14901000,
iast (18.471 s) : 18471000, 18471000
. : milestone, 18471000,
iast_GLOBAL (17.964 s) : 17964000, 17964000
. : milestone, 17964000,
profiling (15.32 s) : 15320000, 15320000
. : milestone, 15320000,
tracing (15.219 s) : 15219000, 15219000
. : milestone, 15219000,
section candidate
no_agent (15.536 s) : 15536000, 15536000
. : milestone, 15536000,
appsec (14.821 s) : 14821000, 14821000
. : milestone, 14821000,
iast (18.229 s) : 18229000, 18229000
. : milestone, 18229000,
iast_GLOBAL (18.076 s) : 18076000, 18076000
. : milestone, 18076000,
profiling (15.446 s) : 15446000, 15446000
. : milestone, 15446000,
tracing (14.819 s) : 14819000, 14819000
. : milestone, 14819000,
Loading
  • baseline results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent14.956 s [14.956 s, 14.956 s]-
appsec14.901 s [14.901 s, 14.901 s]-55.0 ms (-0.4%)
iast18.471 s [18.471 s, 18.471 s]3.515 s (23.5%)
iast_GLOBAL17.964 s [17.964 s, 17.964 s]3.008 s (20.1%)
profiling15.32 s [15.32 s, 15.32 s]364.0 ms (2.4%)
tracing15.219 s [15.219 s, 15.219 s]263.0 ms (1.8%)
  • candidate results
VariantExecution Time [CI 0.99]Δ no_agent
no_agent15.536 s [15.536 s, 15.536 s]-
appsec14.821 s [14.821 s, 14.821 s]-715.0 ms (-4.6%)
iast18.229 s [18.229 s, 18.229 s]2.693 s (17.3%)
iast_GLOBAL18.076 s [18.076 s, 18.076 s]2.54 s (16.3%)
profiling15.446 s [15.446 s, 15.446 s]-90.0 ms (-0.6%)
tracing14.819 s [14.819 s, 14.819 s]-717.0 ms (-4.6%)

@PerfectSlayer
PerfectSlayerforce-pushed the bbujon/config-module branch 7 times, most recently from 2cd71e0 to 50e5e23CompareAugust 28, 2025 13:02
@PerfectSlayer
PerfectSlayer marked this pull request as ready for review August 28, 2025 13:03
@PerfectSlayer
PerfectSlayer requested review from a team as code ownersAugust 28, 2025 13:03
@PerfectSlayer
PerfectSlayer requested review from bric3, daniel-mohedano and manuel-alvarez-alvarez and removed request for a teamAugust 28, 2025 13:03

@mhliddmhlidd left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Overall LGTM, a few nits and questions

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
importdatadog.trace.util.ConfigStrings;
importstaticdatadog.trace.util.ConfigStrings.propertyNameToSystemPropertyName;

Nit: Replace all calls to the function below

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
importdatadog.trace.util.ConfigStrings
import staticdatadog.trace.util.ConfigStrings.propertyNameToSystemPropertyName;

Nit: replace all calls to the function below

Comment on lines 1232 to 1249

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

For my understanding, is there a reason that you chose to register the instance here instead of when it is initialized in OtelEnvMetricCollectorImpl?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

instead of when it is initialized in OtelEnvMetricCollectorImpl

There is nobody to initialize it. The code that needs it can't have a dependency on it (to avoid circular dependency).
So the initialization should come from the :internal-api module.

@bric3bric3 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Added a couple of questions for my understanding.

Comment threadinternal-api/src/main/java/datadog/trace/util/Strings.java Outdated
Comment on lines 177 to 180

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

question: For my understanding this registration code is called here and in Config class, why is that ?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

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

The two modules are tightly coupled together.
I inverted the dependency and needed somewhere for the parent module to register the service implementation.
I did it into the two main entry points as object lifecycle are screwed due to heavy use of static and singleton.

Comment threadutils/config-utils/src/main/java/datadog/trace/util/ConfigStrings.java Outdated
@PerfectSlayer
PerfectSlayerforce-pushed the bbujon/config-module branch 2 times, most recently from cc4709a to 89a6a02CompareSeptember 15, 2025 11:04
@PerfectSlayer
PerfectSlayer enabled auto-merge (squash) September 15, 2025 11:15
Using `utils` for now as it has `:dd-trace-api` as dependency so can't be considered as a `:component`.
@PerfectSlayer
PerfectSlayer merged commit 6e03d19 into masterSep 15, 2025
673 of 674 checks passed
@PerfectSlayer
PerfectSlayer deleted the bbujon/config-module branch September 15, 2025 20:39
@github-actionsgithub-actionsBot added this to the 1.54.0 milestone Sep 15, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: coreTracer coretag: no release notesChanges to exclude from release notestype: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@PerfectSlayer@bric3@mhlidd