Skip to content

Conversation

@cecile75
Copy link
Contributor

@cecile75 cecile75 commented Oct 27, 2025

What Does This Do

Add Otel Metrics configuration keys. They are not linked to anything yet.

Motivation

OpenTelemetry Metrics API support

Additional Notes

Contributor Checklist

Jira ticket: APMAPI-1671

@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Oct 29, 2025

🎯 Code Coverage
Patch Coverage: 2.13%
Total Coverage: 59.62% (-0.07%)

View detailed report

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

@pr-commenter
Copy link

pr-commenter bot commented Oct 29, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/otelmetricstask1
git_commit_date 1762179170 1762195636
git_commit_sha 364bb8b 28394a2
release_version 1.55.0-SNAPSHOT~364bb8b68f 1.55.0-SNAPSHOT~28394a2300
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1762197641 1762197641
ci_job_id 1212991770 1212991770
ci_pipeline_id 81108399 81108399
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-1-wi3isa2l 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-1-wi3isa2l 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 53 metrics, 12 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.028 s) : 0, 1027825
Total [baseline] (8.695 s) : 0, 8695113
Agent [candidate] (1.03 s) : 0, 1029951
Total [candidate] (8.672 s) : 0, 8671640
section iast
Agent [baseline] (1.167 s) : 0, 1167196
Total [baseline] (9.347 s) : 0, 9346739
Agent [candidate] (1.162 s) : 0, 1161826
Total [candidate] (9.382 s) : 0, 9381870
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.028 s -
Agent iast 1.167 s 139.371 ms (13.6%)
Total tracing 8.695 s -
Total iast 9.347 s 651.626 ms (7.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.03 s -
Agent iast 1.162 s 131.875 ms (12.8%)
Total tracing 8.672 s -
Total iast 9.382 s 710.23 ms (8.2%)
gantt
    title insecure-bank - break down per module: candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.468 ms) : 0, 1468
crashtracking [candidate] (1.46 ms) : 0, 1460
BytebuddyAgent [baseline] (700.773 ms) : 0, 700773
BytebuddyAgent [candidate] (702.392 ms) : 0, 702392
GlobalTracer [baseline] (244.211 ms) : 0, 244211
GlobalTracer [candidate] (244.583 ms) : 0, 244583
AppSec [baseline] (32.382 ms) : 0, 32382
AppSec [candidate] (32.361 ms) : 0, 32361
Debugger [baseline] (6.389 ms) : 0, 6389
Debugger [candidate] (6.376 ms) : 0, 6376
Remote Config [baseline] (673.828 µs) : 0, 674
Remote Config [candidate] (695.429 µs) : 0, 695
Telemetry [baseline] (14.402 ms) : 0, 14402
Telemetry [candidate] (15.734 ms) : 0, 15734
Flare Poller [baseline] (6.441 ms) : 0, 6441
Flare Poller [candidate] (5.21 ms) : 0, 5210
section iast
crashtracking [baseline] (1.478 ms) : 0, 1478
crashtracking [candidate] (1.462 ms) : 0, 1462
BytebuddyAgent [baseline] (829.233 ms) : 0, 829233
BytebuddyAgent [candidate] (824.63 ms) : 0, 824630
GlobalTracer [baseline] (234.023 ms) : 0, 234023
GlobalTracer [candidate] (233.765 ms) : 0, 233765
IAST [baseline] (32.07 ms) : 0, 32070
IAST [candidate] (30.888 ms) : 0, 30888
AppSec [baseline] (29.691 ms) : 0, 29691
AppSec [candidate] (30.626 ms) : 0, 30626
Debugger [baseline] (6.111 ms) : 0, 6111
Debugger [candidate] (6.118 ms) : 0, 6118
Remote Config [baseline] (606.504 µs) : 0, 607
Remote Config [candidate] (597.433 µs) : 0, 597
Telemetry [baseline] (8.461 ms) : 0, 8461
Telemetry [candidate] (8.344 ms) : 0, 8344
Flare Poller [baseline] (4.124 ms) : 0, 4124
Flare Poller [candidate] (4.15 ms) : 0, 4150
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.033 s) : 0, 1032992
Total [baseline] (10.859 s) : 0, 10858734
Agent [candidate] (1.027 s) : 0, 1027235
Total [candidate] (10.9 s) : 0, 10900395
section appsec
Agent [baseline] (1.208 s) : 0, 1208399
Total [baseline] (10.961 s) : 0, 10960515
Agent [candidate] (1.202 s) : 0, 1202413
Total [candidate] (11.02 s) : 0, 11020271
section iast
Agent [baseline] (1.161 s) : 0, 1160935
Total [baseline] (11.212 s) : 0, 11211814
Agent [candidate] (1.169 s) : 0, 1168895
Total [candidate] (11.153 s) : 0, 11153434
section profiling
Agent [baseline] (1.179 s) : 0, 1178639
Total [baseline] (10.913 s) : 0, 10912736
Agent [candidate] (1.181 s) : 0, 1181035
Total [candidate] (10.974 s) : 0, 10973588
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.033 s -
Agent appsec 1.208 s 175.407 ms (17.0%)
Agent iast 1.161 s 127.944 ms (12.4%)
Agent profiling 1.179 s 145.647 ms (14.1%)
Total tracing 10.859 s -
Total appsec 10.961 s 101.782 ms (0.9%)
Total iast 11.212 s 353.08 ms (3.3%)
Total profiling 10.913 s 54.002 ms (0.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.027 s -
Agent appsec 1.202 s 175.179 ms (17.1%)
Agent iast 1.169 s 141.66 ms (13.8%)
Agent profiling 1.181 s 153.8 ms (15.0%)
Total tracing 10.9 s -
Total appsec 11.02 s 119.876 ms (1.1%)
Total iast 11.153 s 253.039 ms (2.3%)
Total profiling 10.974 s 73.193 ms (0.7%)
gantt
    title petclinic - break down per module: candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.464 ms) : 0, 1464
crashtracking [candidate] (1.466 ms) : 0, 1466
BytebuddyAgent [baseline] (702.751 ms) : 0, 702751
BytebuddyAgent [candidate] (700.231 ms) : 0, 700231
GlobalTracer [baseline] (246.278 ms) : 0, 246278
GlobalTracer [candidate] (244.116 ms) : 0, 244116
AppSec [baseline] (32.879 ms) : 0, 32879
AppSec [candidate] (32.294 ms) : 0, 32294
Debugger [baseline] (6.558 ms) : 0, 6558
Debugger [candidate] (6.368 ms) : 0, 6368
Remote Config [baseline] (688.241 µs) : 0, 688
Remote Config [candidate] (670.096 µs) : 0, 670
Telemetry [baseline] (13.188 ms) : 0, 13188
Telemetry [candidate] (16.016 ms) : 0, 16016
Flare Poller [baseline] (8.048 ms) : 0, 8048
Flare Poller [candidate] (5.05 ms) : 0, 5050
section appsec
crashtracking [baseline] (1.471 ms) : 0, 1471
crashtracking [candidate] (1.467 ms) : 0, 1467
BytebuddyAgent [baseline] (729.904 ms) : 0, 729904
BytebuddyAgent [candidate] (725.645 ms) : 0, 725645
GlobalTracer [baseline] (237.03 ms) : 0, 237030
GlobalTracer [candidate] (236.298 ms) : 0, 236298
IAST [baseline] (25.357 ms) : 0, 25357
IAST [candidate] (24.955 ms) : 0, 24955
AppSec [baseline] (174.522 ms) : 0, 174522
AppSec [candidate] (174.097 ms) : 0, 174097
Debugger [baseline] (5.898 ms) : 0, 5898
Debugger [candidate] (5.928 ms) : 0, 5928
Remote Config [baseline] (632.333 µs) : 0, 632
Remote Config [candidate] (618.862 µs) : 0, 619
Telemetry [baseline] (8.428 ms) : 0, 8428
Telemetry [candidate] (8.421 ms) : 0, 8421
Flare Poller [baseline] (3.883 ms) : 0, 3883
Flare Poller [candidate] (3.874 ms) : 0, 3874
section iast
crashtracking [baseline] (1.482 ms) : 0, 1482
crashtracking [candidate] (1.491 ms) : 0, 1491
BytebuddyAgent [baseline] (823.716 ms) : 0, 823716
BytebuddyAgent [candidate] (830.886 ms) : 0, 830886
GlobalTracer [baseline] (233.781 ms) : 0, 233781
GlobalTracer [candidate] (233.759 ms) : 0, 233759
IAST [baseline] (34.182 ms) : 0, 34182
IAST [candidate] (30.963 ms) : 0, 30963
AppSec [baseline] (27.157 ms) : 0, 27157
AppSec [candidate] (30.807 ms) : 0, 30807
Debugger [baseline] (6.148 ms) : 0, 6148
Debugger [candidate] (6.154 ms) : 0, 6154
Remote Config [baseline] (598.797 µs) : 0, 599
Remote Config [candidate] (593.874 µs) : 0, 594
Telemetry [baseline] (8.437 ms) : 0, 8437
Telemetry [candidate] (8.472 ms) : 0, 8472
Flare Poller [baseline] (4.115 ms) : 0, 4115
Flare Poller [candidate] (4.227 ms) : 0, 4227
section profiling
crashtracking [baseline] (1.462 ms) : 0, 1462
crashtracking [candidate] (1.452 ms) : 0, 1452
BytebuddyAgent [baseline] (730.135 ms) : 0, 730135
BytebuddyAgent [candidate] (731.25 ms) : 0, 731250
GlobalTracer [baseline] (221.12 ms) : 0, 221120
GlobalTracer [candidate] (221.19 ms) : 0, 221190
AppSec [baseline] (33.309 ms) : 0, 33309
AppSec [candidate] (33.47 ms) : 0, 33470
Debugger [baseline] (13.0 ms) : 0, 13000
Debugger [candidate] (11.508 ms) : 0, 11508
Remote Config [baseline] (725.735 µs) : 0, 726
Remote Config [candidate] (713.646 µs) : 0, 714
Telemetry [baseline] (9.045 ms) : 0, 9045
Telemetry [candidate] (10.693 ms) : 0, 10693
Flare Poller [baseline] (4.195 ms) : 0, 4195
Flare Poller [candidate] (4.175 ms) : 0, 4175
ProfilingAgent [baseline] (109.92 ms) : 0, 109920
ProfilingAgent [candidate] (110.303 ms) : 0, 110303
Profiling [baseline] (110.567 ms) : 0, 110567
Profiling [candidate] (110.902 ms) : 0, 110902
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/otelmetricstask1
git_commit_date 1762179170 1762195636
git_commit_sha 364bb8b 28394a2
release_version 1.55.0-SNAPSHOT~364bb8b68f 1.55.0-SNAPSHOT~28394a2300
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1762198123 1762198123
ci_job_id 1212991771 1212991771
ci_pipeline_id 81108399 81108399
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-72dxd00o 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-72dxd00o 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 6 performance improvements and 0 performance regressions! Performance is the same for 6 metrics, 12 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:tracing:high_load better
[-85.763µs; -52.233µs] or [-4.715%; -2.871%]
unstable
[-189.688op/s; +378.875op/s] or [-7.677%; +15.333%]
1.750ms 2565.562op/s 1.819ms 2470.969op/s
scenario:load:insecure-bank:profiling:high_load better
[-217.478µs; -179.067µs] or [-10.371%; -8.540%]
unstable
[-53.014op/s; +487.076op/s] or [-2.459%; +22.595%]
1.899ms 2372.719op/s 2.097ms 2155.688op/s
scenario:load:insecure-bank:iast_FULL:high_load better
[-334.528µs; -212.140µs] or [-5.722%; -3.629%]
unstable
[-44.991op/s; +122.241op/s] or [-5.691%; +15.462%]
5.573ms 829.219op/s 5.846ms 790.594op/s
scenario:load:petclinic:appsec:high_load better
[-1.291ms; -0.866ms] or [-6.528%; -4.382%]
unstable
[-11.084op/s; +38.147op/s] or [-4.695%; +16.157%]
18.695ms 249.625op/s 19.774ms 236.094op/s
scenario:load:petclinic:code_origins:high_load better
[-1.927ms; -1.525ms] or [-9.866%; -7.809%]
unstable
[-1.542op/s; +47.479op/s] or [-0.645%; +19.858%]
17.801ms 262.062op/s 19.527ms 239.094op/s
scenario:load:petclinic:iast:high_load better
[-1086.744µs; -668.080µs] or [-5.535%; -3.403%]
unstable
[-13.081op/s; +35.144op/s] or [-5.501%; +14.780%]
18.756ms 248.812op/s 19.633ms 237.781op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.228 ms) : 1216, 1240
.   : milestone, 1228,
iast (3.152 ms) : 3115, 3189
.   : milestone, 3152,
iast_FULL (5.846 ms) : 5788, 5905
.   : milestone, 5846,
iast_GLOBAL (3.489 ms) : 3438, 3541
.   : milestone, 3489,
profiling (2.097 ms) : 2078, 2116
.   : milestone, 2097,
tracing (1.819 ms) : 1802, 1836
.   : milestone, 1819,
section candidate
no_agent (1.228 ms) : 1216, 1241
.   : milestone, 1228,
iast (3.149 ms) : 3110, 3188
.   : milestone, 3149,
iast_FULL (5.573 ms) : 5518, 5628
.   : milestone, 5573,
iast_GLOBAL (3.592 ms) : 3531, 3653
.   : milestone, 3592,
profiling (1.899 ms) : 1882, 1915
.   : milestone, 1899,
tracing (1.75 ms) : 1736, 1765
.   : milestone, 1750,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.228 ms [1.216 ms, 1.24 ms] -
iast 3.152 ms [3.115 ms, 3.189 ms] 1.924 ms (156.6%)
iast_FULL 5.846 ms [5.788 ms, 5.905 ms] 4.618 ms (376.0%)
iast_GLOBAL 3.489 ms [3.438 ms, 3.541 ms] 2.261 ms (184.1%)
profiling 2.097 ms [2.078 ms, 2.116 ms] 868.677 µs (70.7%)
tracing 1.819 ms [1.802 ms, 1.836 ms] 590.818 µs (48.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.228 ms [1.216 ms, 1.241 ms] -
iast 3.149 ms [3.11 ms, 3.188 ms] 1.921 ms (156.4%)
iast_FULL 5.573 ms [5.518 ms, 5.628 ms] 4.345 ms (353.7%)
iast_GLOBAL 3.592 ms [3.531 ms, 3.653 ms] 2.364 ms (192.4%)
profiling 1.899 ms [1.882 ms, 1.915 ms] 670.301 µs (54.6%)
tracing 1.75 ms [1.736 ms, 1.765 ms] 521.716 µs (42.5%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.351 ms) : 19160, 19543
.   : milestone, 19351,
appsec (19.774 ms) : 19568, 19979
.   : milestone, 19774,
code_origins (19.527 ms) : 19332, 19721
.   : milestone, 19527,
iast (19.633 ms) : 19434, 19833
.   : milestone, 19633,
profiling (20.313 ms) : 20106, 20520
.   : milestone, 20313,
tracing (18.401 ms) : 18217, 18585
.   : milestone, 18401,
section candidate
no_agent (19.245 ms) : 19048, 19443
.   : milestone, 19245,
appsec (18.695 ms) : 18507, 18883
.   : milestone, 18695,
code_origins (17.801 ms) : 17622, 17980
.   : milestone, 17801,
iast (18.756 ms) : 18567, 18945
.   : milestone, 18756,
profiling (20.736 ms) : 20529, 20944
.   : milestone, 20736,
tracing (18.758 ms) : 18567, 18948
.   : milestone, 18758,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.351 ms [19.16 ms, 19.543 ms] -
appsec 19.774 ms [19.568 ms, 19.979 ms] 422.163 µs (2.2%)
code_origins 19.527 ms [19.332 ms, 19.721 ms] 175.115 µs (0.9%)
iast 19.633 ms [19.434 ms, 19.833 ms] 281.955 µs (1.5%)
profiling 20.313 ms [20.106 ms, 20.52 ms] 961.587 µs (5.0%)
tracing 18.401 ms [18.217 ms, 18.585 ms] -950.566 µs (-4.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.245 ms [19.048 ms, 19.443 ms] -
appsec 18.695 ms [18.507 ms, 18.883 ms] -550.438 µs (-2.9%)
code_origins 17.801 ms [17.622 ms, 17.98 ms] -1.445 ms (-7.5%)
iast 18.756 ms [18.567 ms, 18.945 ms] -489.44 µs (-2.5%)
profiling 20.736 ms [20.529 ms, 20.944 ms] 1.491 ms (7.7%)
tracing 18.758 ms [18.567 ms, 18.948 ms] -487.92 µs (-2.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/otelmetricstask1
git_commit_date 1762179170 1762195636
git_commit_sha 364bb8b 28394a2
release_version 1.55.0-SNAPSHOT~364bb8b68f 1.55.0-SNAPSHOT~28394a2300
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1762197796 1762197796
ci_job_id 1212991772 1212991772
ci_pipeline_id 81108399 81108399
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-4td64t2r 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-4td64t2r 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 biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.015 s) : 15015000, 15015000
.   : milestone, 15015000,
appsec (15.072 s) : 15072000, 15072000
.   : milestone, 15072000,
iast (18.567 s) : 18567000, 18567000
.   : milestone, 18567000,
iast_GLOBAL (18.083 s) : 18083000, 18083000
.   : milestone, 18083000,
profiling (16.144 s) : 16144000, 16144000
.   : milestone, 16144000,
tracing (15.162 s) : 15162000, 15162000
.   : milestone, 15162000,
section candidate
no_agent (15.593 s) : 15593000, 15593000
.   : milestone, 15593000,
appsec (15.311 s) : 15311000, 15311000
.   : milestone, 15311000,
iast (18.8 s) : 18800000, 18800000
.   : milestone, 18800000,
iast_GLOBAL (17.756 s) : 17756000, 17756000
.   : milestone, 17756000,
profiling (15.557 s) : 15557000, 15557000
.   : milestone, 15557000,
tracing (15.145 s) : 15145000, 15145000
.   : milestone, 15145000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.015 s [15.015 s, 15.015 s] -
appsec 15.072 s [15.072 s, 15.072 s] 57.0 ms (0.4%)
iast 18.567 s [18.567 s, 18.567 s] 3.552 s (23.7%)
iast_GLOBAL 18.083 s [18.083 s, 18.083 s] 3.068 s (20.4%)
profiling 16.144 s [16.144 s, 16.144 s] 1.129 s (7.5%)
tracing 15.162 s [15.162 s, 15.162 s] 147.0 ms (1.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.593 s [15.593 s, 15.593 s] -
appsec 15.311 s [15.311 s, 15.311 s] -282.0 ms (-1.8%)
iast 18.8 s [18.8 s, 18.8 s] 3.207 s (20.6%)
iast_GLOBAL 17.756 s [17.756 s, 17.756 s] 2.163 s (13.9%)
profiling 15.557 s [15.557 s, 15.557 s] -36.0 ms (-0.2%)
tracing 15.145 s [15.145 s, 15.145 s] -448.0 ms (-2.9%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~28394a2300, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.478 ms) : 1466, 1489
.   : milestone, 1478,
appsec (2.463 ms) : 2412, 2514
.   : milestone, 2463,
iast (2.218 ms) : 2154, 2282
.   : milestone, 2218,
iast_GLOBAL (2.259 ms) : 2196, 2323
.   : milestone, 2259,
profiling (2.052 ms) : 2000, 2103
.   : milestone, 2052,
tracing (2.029 ms) : 1980, 2078
.   : milestone, 2029,
section candidate
no_agent (1.481 ms) : 1469, 1492
.   : milestone, 1481,
appsec (3.733 ms) : 3514, 3951
.   : milestone, 3733,
iast (2.216 ms) : 2152, 2280
.   : milestone, 2216,
iast_GLOBAL (2.25 ms) : 2186, 2314
.   : milestone, 2250,
profiling (2.073 ms) : 2020, 2126
.   : milestone, 2073,
tracing (2.035 ms) : 1985, 2084
.   : milestone, 2035,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.466 ms, 1.489 ms] -
appsec 2.463 ms [2.412 ms, 2.514 ms] 985.18 µs (66.7%)
iast 2.218 ms [2.154 ms, 2.282 ms] 740.521 µs (50.1%)
iast_GLOBAL 2.259 ms [2.196 ms, 2.323 ms] 781.712 µs (52.9%)
profiling 2.052 ms [2.0 ms, 2.103 ms] 573.967 µs (38.8%)
tracing 2.029 ms [1.98 ms, 2.078 ms] 551.349 µs (37.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.481 ms [1.469 ms, 1.492 ms] -
appsec 3.733 ms [3.514 ms, 3.951 ms] 2.252 ms (152.1%)
iast 2.216 ms [2.152 ms, 2.28 ms] 735.214 µs (49.7%)
iast_GLOBAL 2.25 ms [2.186 ms, 2.314 ms] 768.836 µs (51.9%)
profiling 2.073 ms [2.02 ms, 2.126 ms] 592.487 µs (40.0%)
tracing 2.035 ms [1.985 ms, 2.084 ms] 553.824 µs (37.4%)

@cecile75 cecile75 added inst: opentelemetry OpenTelemetry instrumentation tag: no release notes Changes to exclude from release notes type: enhancement Enhancements and improvements labels Oct 29, 2025
@cecile75 cecile75 marked this pull request as ready for review October 29, 2025 16:46
@cecile75 cecile75 requested review from a team as code owners October 29, 2025 16:46
@cecile75 cecile75 requested review from mcculls, mhlidd and sarahchen6 and removed request for a team October 29, 2025 16:46
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.

Didn't have time to review all test files, but I have a general concern about where we should handle OTel configurations. We already have OTelEnvironmentConfigSource, which is effectively sets Datadog Configs as aliases for OTel Configs when DD_TRACE_OTEL_ENABLED=true.

IMO we should handle all OTel configs in one place to have one source of truth, and to me it makes sense to isolate them in OTelEnvironmentConfigSource. WDYT?

runtimeMetricsEnabled = configProvider.getBoolean(RUNTIME_METRICS_ENABLED, true);
metricsOtelEnabled =
configProvider.getBoolean(METRICS_OTEL_ENABLED, DEFAULT_METRICS_OTEL_ENABLED);
otelResourceAttributes = configProvider.getMergedMap(OTEL_RESOURCE_ATTRIBUTES, '=');
Copy link
Contributor

Choose a reason for hiding this comment

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

This is already queried in OtelEnvironmentConfigSource, and it appears that the existing way of handling of this config is slightly more specific than what is happening here.

Do we have a consensus of how we would like to handle this config?

This also brings up a bigger question of whether or not we want to reclassify what OtelEnvironmentConfigSource does. It really is not its own config source, but rather prioritizing OTEL configs instead of their DD equivalents when DD_TRACE_OTEL_ENABLED = true. Should we have all OTEL configs handled in the OtelEnvironmentConfigSource, or should we migrate all of the configs handled there to be handled in Config.java?

IMO, it makes sense to handle all OTel Configs in OtelEnvironmentConfigSource to separate them from regular DD config handling, and to keep the handling of OTel Configs all in one place.

cecile75 and others added 5 commits October 30, 2025 10:15
Co-authored-by: mhlidd <matthew.li@datadoghq.com>
Co-authored-by: mhlidd <matthew.li@datadoghq.com>
Co-authored-by: mhlidd <matthew.li@datadoghq.com>
Co-authored-by: mhlidd <matthew.li@datadoghq.com>
@cecile75
Copy link
Contributor Author

Didn't have time to review all test files, but I have a general concern about where we should handle OTel configurations. We already have OTelEnvironmentConfigSource, which is effectively sets Datadog Configs as aliases for OTel Configs when DD_TRACE_OTEL_ENABLED=true.

IMO we should handle all OTel configs in one place to have one source of truth, and to me it makes sense to isolate them in OTelEnvironmentConfigSource. WDYT?

Hi @mhlidd,
Thank you for your review!
OtelEnvironmentConfigSource.java was created to "Map OpenTelemetry system properties and environment variables to their Datadog equivalents" for the traces.
Here, for the metrics, we are using directly otel configuration keys, like any other configuration keys, there is no mapping with Datadog equivalent keys.
For me, it makes more sense to manage the otel metrics config like any other feature and therefore, to create a file under dd-trace-api/src/main/java/datadog/trace/api/config/.
This being said, maybe the file can be renamed OtelMetricsConfig to be less confusing and making it clear that otel config for traces are not here. WDYT?

@mhlidd
Copy link
Contributor

mhlidd commented Oct 30, 2025

@cecile75 Yes you're right about the OtelEnvironmentConfigSource, you're right that under the current config setup that we should keep Otel Config querying in Config.java 😅.

I do think that the OtelEnvironmentConfigSource is confusing and should be refactored, but that's out of scope for this PR. (Not sure what is the best way to do that right now and maintain existing behavior)

This being said, maybe the file can be renamed OtelMetricsConfig to be less confusing and making it clear that otel config for traces are not here. WDYT?

Renaming to OtelMetricsConfig makes sense to me!

@cecile75
Copy link
Contributor Author

cecile75 commented Oct 30, 2025

@mhlidd Looking more into this as there are shared configuration keys between otel metric and otel traces that need remapping: you have mentioned otel.resource.attributes but there is also otel.sdk.disabled, otel.log.level..

@cecile75 cecile75 marked this pull request as draft October 30, 2025 18:02
@cecile75
Copy link
Contributor Author

cecile75 commented Nov 3, 2025

Recent changes:

  • Rename OtelConfig to OtelMetricsConfig
  • Remove otelResourceAttributes from Config
  • Leverage OtelEnvironmentConfigSource.java for any otel configuration keys common to traces and metrics
  • Leverage OtelEnvironmentConfigSource.java for the mapping to runtime metrics

@cecile75 cecile75 marked this pull request as ready for review November 3, 2025 19:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

inst: opentelemetry OpenTelemetry instrumentation 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