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: 4.44%
Total Coverage: 62.40% (+2.70%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 8ef1286 | 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 1762184665
git_commit_sha 364bb8b 2788bdd
release_version 1.55.0-SNAPSHOT~364bb8b68f 1.55.0-SNAPSHOT~2788bddb11
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1762186543 1762186543
ci_job_id 1212397204 1212397204
ci_pipeline_id 81075392 81075392
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-x7nze507 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-x7nze507 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~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.03 s) : 0, 1030491
Total [baseline] (8.702 s) : 0, 8702212
Agent [candidate] (1.032 s) : 0, 1031826
Total [candidate] (8.661 s) : 0, 8660709
section iast
Agent [baseline] (1.164 s) : 0, 1163906
Total [baseline] (9.354 s) : 0, 9354072
Agent [candidate] (1.172 s) : 0, 1171966
Total [candidate] (9.389 s) : 0, 9388657
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.03 s -
Agent iast 1.164 s 133.416 ms (12.9%)
Total tracing 8.702 s -
Total iast 9.354 s 651.86 ms (7.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.032 s -
Agent iast 1.172 s 140.14 ms (13.6%)
Total tracing 8.661 s -
Total iast 9.389 s 727.948 ms (8.4%)
gantt
    title insecure-bank - break down per module: candidate=1.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.472 ms) : 0, 1472
crashtracking [candidate] (1.459 ms) : 0, 1459
BytebuddyAgent [baseline] (703.114 ms) : 0, 703114
BytebuddyAgent [candidate] (704.035 ms) : 0, 704035
GlobalTracer [baseline] (244.408 ms) : 0, 244408
GlobalTracer [candidate] (245.068 ms) : 0, 245068
AppSec [baseline] (32.262 ms) : 0, 32262
AppSec [candidate] (32.369 ms) : 0, 32369
Debugger [baseline] (6.413 ms) : 0, 6413
Debugger [candidate] (6.355 ms) : 0, 6355
Remote Config [baseline] (687.819 µs) : 0, 688
Remote Config [candidate] (684.786 µs) : 0, 685
Telemetry [baseline] (14.346 ms) : 0, 14346
Telemetry [candidate] (14.143 ms) : 0, 14143
Flare Poller [baseline] (6.604 ms) : 0, 6604
Flare Poller [candidate] (6.57 ms) : 0, 6570
section iast
crashtracking [baseline] (1.473 ms) : 0, 1473
crashtracking [candidate] (1.495 ms) : 0, 1495
BytebuddyAgent [baseline] (825.815 ms) : 0, 825815
BytebuddyAgent [candidate] (832.649 ms) : 0, 832649
GlobalTracer [baseline] (233.986 ms) : 0, 233986
GlobalTracer [candidate] (235.574 ms) : 0, 235574
AppSec [baseline] (28.946 ms) : 0, 28946
AppSec [candidate] (28.832 ms) : 0, 28832
Debugger [baseline] (6.182 ms) : 0, 6182
Debugger [candidate] (6.124 ms) : 0, 6124
Remote Config [baseline] (608.829 µs) : 0, 609
Remote Config [candidate] (592.862 µs) : 0, 593
Telemetry [baseline] (8.464 ms) : 0, 8464
Telemetry [candidate] (8.382 ms) : 0, 8382
Flare Poller [baseline] (4.187 ms) : 0, 4187
Flare Poller [candidate] (4.17 ms) : 0, 4170
IAST [baseline] (32.998 ms) : 0, 32998
IAST [candidate] (32.668 ms) : 0, 32668
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.032 s) : 0, 1031928
Total [baseline] (10.712 s) : 0, 10712313
Agent [candidate] (1.03 s) : 0, 1030320
Total [candidate] (10.775 s) : 0, 10774751
section appsec
Agent [baseline] (1.218 s) : 0, 1217968
Total [baseline] (11.056 s) : 0, 11055534
Agent [candidate] (1.201 s) : 0, 1201311
Total [candidate] (10.967 s) : 0, 10966897
section iast
Agent [baseline] (1.164 s) : 0, 1164207
Total [baseline] (11.231 s) : 0, 11230971
Agent [candidate] (1.166 s) : 0, 1165852
Total [candidate] (11.242 s) : 0, 11242137
section profiling
Agent [baseline] (1.191 s) : 0, 1190715
Total [baseline] (10.85 s) : 0, 10849766
Agent [candidate] (1.181 s) : 0, 1180845
Total [candidate] (10.896 s) : 0, 10895791
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.032 s -
Agent appsec 1.218 s 186.04 ms (18.0%)
Agent iast 1.164 s 132.279 ms (12.8%)
Agent profiling 1.191 s 158.787 ms (15.4%)
Total tracing 10.712 s -
Total appsec 11.056 s 343.221 ms (3.2%)
Total iast 11.231 s 518.658 ms (4.8%)
Total profiling 10.85 s 137.453 ms (1.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.03 s -
Agent appsec 1.201 s 170.991 ms (16.6%)
Agent iast 1.166 s 135.532 ms (13.2%)
Agent profiling 1.181 s 150.525 ms (14.6%)
Total tracing 10.775 s -
Total appsec 10.967 s 192.146 ms (1.8%)
Total iast 11.242 s 467.386 ms (4.3%)
Total profiling 10.896 s 121.04 ms (1.1%)
gantt
    title petclinic - break down per module: candidate=1.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.456 ms) : 0, 1456
crashtracking [candidate] (1.469 ms) : 0, 1469
BytebuddyAgent [baseline] (703.995 ms) : 0, 703995
BytebuddyAgent [candidate] (702.921 ms) : 0, 702921
GlobalTracer [baseline] (245.411 ms) : 0, 245411
GlobalTracer [candidate] (244.622 ms) : 0, 244622
AppSec [baseline] (32.381 ms) : 0, 32381
AppSec [candidate] (32.26 ms) : 0, 32260
Debugger [baseline] (6.395 ms) : 0, 6395
Debugger [candidate] (6.388 ms) : 0, 6388
Remote Config [baseline] (684.824 µs) : 0, 685
Remote Config [candidate] (670.221 µs) : 0, 670
Telemetry [baseline] (14.434 ms) : 0, 14434
Telemetry [candidate] (14.392 ms) : 0, 14392
Flare Poller [baseline] (5.89 ms) : 0, 5890
Flare Poller [candidate] (6.475 ms) : 0, 6475
section appsec
crashtracking [baseline] (1.493 ms) : 0, 1493
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (736.183 ms) : 0, 736183
BytebuddyAgent [candidate] (724.68 ms) : 0, 724680
GlobalTracer [baseline] (238.986 ms) : 0, 238986
GlobalTracer [candidate] (236.012 ms) : 0, 236012
IAST [baseline] (25.504 ms) : 0, 25504
IAST [candidate] (24.811 ms) : 0, 24811
AppSec [baseline] (175.297 ms) : 0, 175297
AppSec [candidate] (174.56 ms) : 0, 174560
Debugger [baseline] (5.97 ms) : 0, 5970
Debugger [candidate] (5.908 ms) : 0, 5908
Remote Config [baseline] (632.547 µs) : 0, 633
Remote Config [candidate] (641.455 µs) : 0, 641
Telemetry [baseline] (8.522 ms) : 0, 8522
Telemetry [candidate] (8.322 ms) : 0, 8322
Flare Poller [baseline] (3.97 ms) : 0, 3970
Flare Poller [candidate] (3.871 ms) : 0, 3871
section iast
crashtracking [baseline] (1.465 ms) : 0, 1465
crashtracking [candidate] (1.472 ms) : 0, 1472
BytebuddyAgent [baseline] (825.018 ms) : 0, 825018
BytebuddyAgent [candidate] (827.387 ms) : 0, 827387
GlobalTracer [baseline] (235.324 ms) : 0, 235324
GlobalTracer [candidate] (234.379 ms) : 0, 234379
IAST [baseline] (33.808 ms) : 0, 33808
IAST [candidate] (31.185 ms) : 0, 31185
AppSec [baseline] (28.032 ms) : 0, 28032
AppSec [candidate] (30.779 ms) : 0, 30779
Debugger [baseline] (6.125 ms) : 0, 6125
Debugger [candidate] (6.076 ms) : 0, 6076
Remote Config [baseline] (602.916 µs) : 0, 603
Remote Config [candidate] (596.787 µs) : 0, 597
Telemetry [baseline] (8.424 ms) : 0, 8424
Telemetry [candidate] (8.392 ms) : 0, 8392
Flare Poller [baseline] (4.121 ms) : 0, 4121
Flare Poller [candidate] (4.265 ms) : 0, 4265
section profiling
crashtracking [baseline] (1.494 ms) : 0, 1494
crashtracking [candidate] (1.453 ms) : 0, 1453
BytebuddyAgent [baseline] (738.235 ms) : 0, 738235
BytebuddyAgent [candidate] (731.4 ms) : 0, 731400
GlobalTracer [baseline] (223.015 ms) : 0, 223015
GlobalTracer [candidate] (221.571 ms) : 0, 221571
AppSec [baseline] (34.395 ms) : 0, 34395
AppSec [candidate] (33.229 ms) : 0, 33229
Debugger [baseline] (12.362 ms) : 0, 12362
Debugger [candidate] (9.165 ms) : 0, 9165
Remote Config [baseline] (695.732 µs) : 0, 696
Remote Config [candidate] (1.457 ms) : 0, 1457
Telemetry [baseline] (8.973 ms) : 0, 8973
Telemetry [candidate] (12.216 ms) : 0, 12216
Flare Poller [baseline] (4.238 ms) : 0, 4238
Flare Poller [candidate] (4.189 ms) : 0, 4189
ProfilingAgent [baseline] (111.063 ms) : 0, 111063
ProfilingAgent [candidate] (109.68 ms) : 0, 109680
Profiling [baseline] (111.691 ms) : 0, 111691
Profiling [candidate] (110.318 ms) : 0, 110318
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/otelmetricstask1
git_commit_date 1762179170 1762184665
git_commit_sha 364bb8b 2788bdd
release_version 1.55.0-SNAPSHOT~364bb8b68f 1.55.0-SNAPSHOT~2788bddb11
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1762187039 1762187039
ci_job_id 1212397205 1212397205
ci_pipeline_id 81075392 81075392
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-4dq363go 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-4dq363go 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 4 performance improvements and 1 performance regressions! Performance is the same for 7 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:iast_GLOBAL:high_load better
[-189.310µs; -82.142µs] or [-5.210%; -2.260%]
unstable
[-82.447op/s; +178.260op/s] or [-6.533%; +14.124%]
3.498ms 1309.969op/s 3.634ms 1262.062op/s
scenario:load:insecure-bank:profiling:high_load better
[-94.736µs; -58.421µs] or [-4.700%; -2.898%]
unstable
[-164.486op/s; +337.361op/s] or [-7.352%; +15.079%]
1.939ms 2323.688op/s 2.016ms 2237.250op/s
scenario:load:petclinic:iast:high_load worse
[+515.409µs; +930.768µs] or [+2.738%; +4.945%]
unstable
[-34.836op/s; +16.524op/s] or [-14.050%; +6.664%]
19.546ms 238.781op/s 18.823ms 247.938op/s
scenario:load:petclinic:tracing:high_load better
[-1154.680µs; -739.541µs] or [-5.884%; -3.768%]
unstable
[-13.773op/s; +37.710op/s] or [-5.789%; +15.851%]
18.678ms 249.875op/s 19.625ms 237.906op/s
scenario:load:petclinic:appsec:high_load better
[-925.417µs; -480.245µs] or [-4.495%; -2.332%]
unstable
[-16.716op/s; +32.654op/s] or [-7.372%; +14.401%]
19.887ms 234.719op/s 20.590ms 226.750op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.255 ms) : 19056, 19455
.   : milestone, 19255,
appsec (20.59 ms) : 20382, 20798
.   : milestone, 20590,
code_origins (18.633 ms) : 18447, 18820
.   : milestone, 18633,
iast (18.823 ms) : 18630, 19015
.   : milestone, 18823,
profiling (20.412 ms) : 20209, 20615
.   : milestone, 20412,
tracing (19.625 ms) : 19429, 19821
.   : milestone, 19625,
section candidate
no_agent (19.251 ms) : 19047, 19454
.   : milestone, 19251,
appsec (19.887 ms) : 19681, 20093
.   : milestone, 19887,
code_origins (18.608 ms) : 18421, 18794
.   : milestone, 18608,
iast (19.546 ms) : 19353, 19739
.   : milestone, 19546,
profiling (20.446 ms) : 20245, 20646
.   : milestone, 20446,
tracing (18.678 ms) : 18488, 18868
.   : milestone, 18678,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.255 ms [19.056 ms, 19.455 ms] -
appsec 20.59 ms [20.382 ms, 20.798 ms] 1.334 ms (6.9%)
code_origins 18.633 ms [18.447 ms, 18.82 ms] -621.849 µs (-3.2%)
iast 18.823 ms [18.63 ms, 19.015 ms] -432.555 µs (-2.2%)
profiling 20.412 ms [20.209 ms, 20.615 ms] 1.157 ms (6.0%)
tracing 19.625 ms [19.429 ms, 19.821 ms] 369.919 µs (1.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.251 ms [19.047 ms, 19.454 ms] -
appsec 19.887 ms [19.681 ms, 20.093 ms] 636.271 µs (3.3%)
code_origins 18.608 ms [18.421 ms, 18.794 ms] -642.983 µs (-3.3%)
iast 19.546 ms [19.353 ms, 19.739 ms] 295.197 µs (1.5%)
profiling 20.446 ms [20.245 ms, 20.646 ms] 1.195 ms (6.2%)
tracing 18.678 ms [18.488 ms, 18.868 ms] -572.529 µs (-3.0%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.258 ms) : 1246, 1271
.   : milestone, 1258,
iast (3.212 ms) : 3171, 3252
.   : milestone, 3212,
iast_FULL (5.895 ms) : 5836, 5954
.   : milestone, 5895,
iast_GLOBAL (3.634 ms) : 3581, 3687
.   : milestone, 3634,
profiling (2.016 ms) : 1998, 2033
.   : milestone, 2016,
tracing (1.799 ms) : 1784, 1813
.   : milestone, 1799,
section candidate
no_agent (1.22 ms) : 1208, 1232
.   : milestone, 1220,
iast (3.289 ms) : 3247, 3331
.   : milestone, 3289,
iast_FULL (5.863 ms) : 5804, 5923
.   : milestone, 5863,
iast_GLOBAL (3.498 ms) : 3452, 3545
.   : milestone, 3498,
profiling (1.939 ms) : 1923, 1955
.   : milestone, 1939,
tracing (1.805 ms) : 1791, 1820
.   : milestone, 1805,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.258 ms [1.246 ms, 1.271 ms] -
iast 3.212 ms [3.171 ms, 3.252 ms] 1.953 ms (155.2%)
iast_FULL 5.895 ms [5.836 ms, 5.954 ms] 4.637 ms (368.5%)
iast_GLOBAL 3.634 ms [3.581 ms, 3.687 ms] 2.376 ms (188.8%)
profiling 2.016 ms [1.998 ms, 2.033 ms] 757.426 µs (60.2%)
tracing 1.799 ms [1.784 ms, 1.813 ms] 540.266 µs (42.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.22 ms [1.208 ms, 1.232 ms] -
iast 3.289 ms [3.247 ms, 3.331 ms] 2.069 ms (169.5%)
iast_FULL 5.863 ms [5.804 ms, 5.923 ms] 4.643 ms (380.5%)
iast_GLOBAL 3.498 ms [3.452 ms, 3.545 ms] 2.278 ms (186.7%)
profiling 1.939 ms [1.923 ms, 1.955 ms] 718.988 µs (58.9%)
tracing 1.805 ms [1.791 ms, 1.82 ms] 585.195 µs (48.0%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master cecile/otelmetricstask1
git_commit_date 1762179170 1762184665
git_commit_sha 364bb8b 2788bdd
release_version 1.55.0-SNAPSHOT~364bb8b68f 1.55.0-SNAPSHOT~2788bddb11
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1762186769 1762186769
ci_job_id 1212397206 1212397206
ci_pipeline_id 81075392 81075392
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-2-p7oif1uj 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-2-p7oif1uj 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.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.48 ms) : 1468, 1492
.   : milestone, 1480,
appsec (3.667 ms) : 3453, 3880
.   : milestone, 3667,
iast (2.213 ms) : 2149, 2277
.   : milestone, 2213,
iast_GLOBAL (2.264 ms) : 2199, 2328
.   : milestone, 2264,
profiling (2.074 ms) : 2022, 2126
.   : milestone, 2074,
tracing (2.038 ms) : 1988, 2088
.   : milestone, 2038,
section candidate
no_agent (1.481 ms) : 1470, 1493
.   : milestone, 1481,
appsec (3.742 ms) : 3522, 3961
.   : milestone, 3742,
iast (2.224 ms) : 2160, 2288
.   : milestone, 2224,
iast_GLOBAL (2.27 ms) : 2205, 2335
.   : milestone, 2270,
profiling (2.085 ms) : 2032, 2138
.   : milestone, 2085,
tracing (2.035 ms) : 1985, 2085
.   : milestone, 2035,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.48 ms [1.468 ms, 1.492 ms] -
appsec 3.667 ms [3.453 ms, 3.88 ms] 2.186 ms (147.7%)
iast 2.213 ms [2.149 ms, 2.277 ms] 732.667 µs (49.5%)
iast_GLOBAL 2.264 ms [2.199 ms, 2.328 ms] 783.72 µs (53.0%)
profiling 2.074 ms [2.022 ms, 2.126 ms] 594.196 µs (40.1%)
tracing 2.038 ms [1.988 ms, 2.088 ms] 557.83 µs (37.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.481 ms [1.47 ms, 1.493 ms] -
appsec 3.742 ms [3.522 ms, 3.961 ms] 2.26 ms (152.6%)
iast 2.224 ms [2.16 ms, 2.288 ms] 742.493 µs (50.1%)
iast_GLOBAL 2.27 ms [2.205 ms, 2.335 ms] 788.435 µs (53.2%)
profiling 2.085 ms [2.032 ms, 2.138 ms] 603.263 µs (40.7%)
tracing 2.035 ms [1.985 ms, 2.085 ms] 553.672 µs (37.4%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~2788bddb11, baseline=1.55.0-SNAPSHOT~364bb8b68f
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.025 s) : 15025000, 15025000
.   : milestone, 15025000,
appsec (14.933 s) : 14933000, 14933000
.   : milestone, 14933000,
iast (18.821 s) : 18821000, 18821000
.   : milestone, 18821000,
iast_GLOBAL (18.106 s) : 18106000, 18106000
.   : milestone, 18106000,
profiling (15.325 s) : 15325000, 15325000
.   : milestone, 15325000,
tracing (15.099 s) : 15099000, 15099000
.   : milestone, 15099000,
section candidate
no_agent (14.954 s) : 14954000, 14954000
.   : milestone, 14954000,
appsec (15.168 s) : 15168000, 15168000
.   : milestone, 15168000,
iast (18.634 s) : 18634000, 18634000
.   : milestone, 18634000,
iast_GLOBAL (18.072 s) : 18072000, 18072000
.   : milestone, 18072000,
profiling (15.914 s) : 15914000, 15914000
.   : milestone, 15914000,
tracing (15.531 s) : 15531000, 15531000
.   : milestone, 15531000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.025 s [15.025 s, 15.025 s] -
appsec 14.933 s [14.933 s, 14.933 s] -92.0 ms (-0.6%)
iast 18.821 s [18.821 s, 18.821 s] 3.796 s (25.3%)
iast_GLOBAL 18.106 s [18.106 s, 18.106 s] 3.081 s (20.5%)
profiling 15.325 s [15.325 s, 15.325 s] 300.0 ms (2.0%)
tracing 15.099 s [15.099 s, 15.099 s] 74.0 ms (0.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.954 s [14.954 s, 14.954 s] -
appsec 15.168 s [15.168 s, 15.168 s] 214.0 ms (1.4%)
iast 18.634 s [18.634 s, 18.634 s] 3.68 s (24.6%)
iast_GLOBAL 18.072 s [18.072 s, 18.072 s] 3.118 s (20.9%)
profiling 15.914 s [15.914 s, 15.914 s] 960.0 ms (6.4%)
tracing 15.531 s [15.531 s, 15.531 s] 577.0 ms (3.9%)

@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

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