Skip to content

Conversation

@PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Jan 19, 2026

What Does This Do

This PR is the first step extracting the various concerns the :communication module mix.

It all started when trying to move the datadog.communication.monitor package from :communication module to a dedicated module. The rest is only the required changed to make it work even if it grew bigger that wanted. It ended up by creating a dedicated metrics product.

It introduces:

  • an AgentMeter like the AgentTracer (that got rid of the histogram related API)
  • a MeterInstaller to initialize the metrics part (both during agent bootstrap and native bootstrap)
  • a :metrics-agent for agent setup, a metrics-api with only metrics-related api (no dependencies), and a metrics-lib with api implementations dedicated Gradle modules

Motivation

The :communication module is going under a redo this quarter to provide clear API for intake communications.

Additional Notes

There might be more to extract from :internal-api and :dd-trace-core to the new metrics module but I want to start "small". We might consider consolidating the metrics product later, but for now, the focus is on :communication.

Contributor Checklist

Jira ticket: APMLP-877

@pr-commenter
Copy link

pr-commenter bot commented Jan 19, 2026

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1769439891 1769440236
end_time 2026-01-26T15:06:10 2026-01-26T15:11:56
git_branch master bbujon/communications
git_commit_sha 73e4642 f4196be
start_time 2026-01-26T15:04:52 2026-01-26T15:10:37
See matching parameters
Baseline Candidate
ci_job_id 1376902408 1376902408
ci_pipeline_id 92820274 92820274
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1769437575 1769437575

Summary

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

See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-20.196µs; +48.883µs] or [-7.451%; +18.035%]
unstable
[-30.598µs; +67.414µs] or [-9.896%; +21.804%]
unstable
[-40.344µs; +78.173µs] or [-12.459%; +24.142%]
unstable
[-185.494µs; +396.583µs] or [-19.993%; +42.744%]
same
scenario:basic same same same unstable
[-39.038µs; +145.201µs] or [-5.198%; +19.335%]
unstable
[-256.365op/s; +114.118op/s] or [-9.486%; +4.222%]
scenario:loop unsure
[+5.132µs; +12.205µs] or [+0.058%; +0.138%]
same same same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (309.184 µs) : 276, 342
.   : milestone, 309,
basic (274.659 µs) : 268, 281
.   : milestone, 275,
loop (8.962 ms) : 8958, 8966
.   : milestone, 8962,
section candidate
noprobe (327.593 µs) : 270, 385
.   : milestone, 328,
basic (275.608 µs) : 270, 282
.   : milestone, 276,
loop (8.962 ms) : 8957, 8968
.   : milestone, 8962,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 309.184 µs [276.487 µs, 341.881 µs]
basic 274.659 µs [268.212 µs, 281.106 µs]
loop 8.962 ms [8.958 ms, 8.966 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 327.593 µs [270.259 µs, 384.926 µs]
basic 275.608 µs [269.619 µs, 281.597 µs]
loop 8.962 ms [8.957 ms, 8.968 ms]

@pr-commenter
Copy link

pr-commenter bot commented Jan 19, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/communications
git_commit_date 1769437140 1769437575
git_commit_sha 0e6e189 f4196be
release_version 1.59.0-SNAPSHOT~0e6e189eee 1.59.0-SNAPSHOT~f4196be4c5
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769441170 1769441170
ci_job_id 1376902385 1376902385
ci_pipeline_id 92820274 92820274
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-luf13er1 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-luf13er1 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 7 performance improvements and 0 performance regressions! Performance is the same for 50 metrics, 8 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:insecure-bank:iast:GlobalTracer better
[-11.813ms; -9.221ms] or [-4.548%; -3.550%]
249.220ms 259.737ms
scenario:startup:insecure-bank:tracing:GlobalTracer better
[-29.005ms; -26.588ms] or [-10.157%; -9.311%]
257.773ms 285.569ms
scenario:startup:petclinic:appsec:GlobalTracer better
[-13.038ms; -11.121ms] or [-4.965%; -4.235%]
250.526ms 262.605ms
scenario:startup:petclinic:appsec:Flare Poller better
[-277.982µs; -80.504µs] or [-7.524%; -2.179%]
3.515ms 3.694ms
scenario:startup:petclinic:iast:GlobalTracer better
[-15.302ms; -8.533ms] or [-5.845%; -3.259%]
249.882ms 261.799ms
scenario:startup:petclinic:profiling:GlobalTracer better
[-14.884ms; -7.115ms] or [-6.556%; -3.134%]
216.034ms 227.033ms
scenario:startup:petclinic:tracing:GlobalTracer better
[-30.924ms; -27.412ms] or [-10.788%; -9.563%]
257.477ms 286.645ms
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.088 s) : 0, 1087849
Total [baseline] (8.784 s) : 0, 8784400
Agent [candidate] (1.089 s) : 0, 1089435
Total [candidate] (8.775 s) : 0, 8775132
section iast
Agent [baseline] (1.229 s) : 0, 1228998
Total [baseline] (9.316 s) : 0, 9316258
Agent [candidate] (1.23 s) : 0, 1230165
Total [candidate] (9.351 s) : 0, 9351130
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.088 s -
Agent iast 1.229 s 141.149 ms (13.0%)
Total tracing 8.784 s -
Total iast 9.316 s 531.858 ms (6.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.089 s -
Agent iast 1.23 s 140.73 ms (12.9%)
Total tracing 8.775 s -
Total iast 9.351 s 575.998 ms (6.6%)
gantt
    title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.173 ms) : 0, 1173
crashtracking [candidate] (1.18 ms) : 0, 1180
BytebuddyAgent [baseline] (652.066 ms) : 0, 652066
BytebuddyAgent [candidate] (652.52 ms) : 0, 652520
AgentMeter [candidate] (28.776 ms) : 0, 28776
GlobalTracer [baseline] (285.569 ms) : 0, 285569
GlobalTracer [candidate] (257.773 ms) : 0, 257773
AppSec [baseline] (32.757 ms) : 0, 32757
AppSec [candidate] (33.069 ms) : 0, 33069
Debugger [baseline] (65.791 ms) : 0, 65791
Debugger [candidate] (66.408 ms) : 0, 66408
Remote Config [baseline] (614.51 µs) : 0, 615
Remote Config [candidate] (627.484 µs) : 0, 627
Telemetry [baseline] (8.946 ms) : 0, 8946
Telemetry [candidate] (8.944 ms) : 0, 8944
Flare Poller [baseline] (5.413 ms) : 0, 5413
Flare Poller [candidate] (4.616 ms) : 0, 4616
section iast
crashtracking [baseline] (1.179 ms) : 0, 1179
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (793.227 ms) : 0, 793227
BytebuddyAgent [candidate] (793.574 ms) : 0, 793574
AgentMeter [candidate] (11.278 ms) : 0, 11278
GlobalTracer [baseline] (259.737 ms) : 0, 259737
GlobalTracer [candidate] (249.22 ms) : 0, 249220
IAST [baseline] (27.197 ms) : 0, 27197
IAST [candidate] (26.895 ms) : 0, 26895
AppSec [baseline] (33.702 ms) : 0, 33702
AppSec [candidate] (31.686 ms) : 0, 31686
Debugger [baseline] (66.125 ms) : 0, 66125
Debugger [candidate] (68.545 ms) : 0, 68545
Remote Config [baseline] (540.772 µs) : 0, 541
Remote Config [candidate] (542.896 µs) : 0, 543
Telemetry [baseline] (8.466 ms) : 0, 8466
Telemetry [candidate] (8.49 ms) : 0, 8490
Flare Poller [baseline] (3.519 ms) : 0, 3519
Flare Poller [candidate] (3.505 ms) : 0, 3505
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.095 s) : 0, 1094706
Total [baseline] (10.802 s) : 0, 10802429
Agent [candidate] (1.09 s) : 0, 1089529
Total [candidate] (10.69 s) : 0, 10689765
section appsec
Agent [baseline] (1.27 s) : 0, 1269529
Total [baseline] (11.075 s) : 0, 11074969
Agent [candidate] (1.269 s) : 0, 1268549
Total [candidate] (11.028 s) : 0, 11027889
section iast
Agent [baseline] (1.241 s) : 0, 1241363
Total [baseline] (11.283 s) : 0, 11283192
Agent [candidate] (1.233 s) : 0, 1232733
Total [candidate] (11.208 s) : 0, 11207988
section profiling
Agent [baseline] (1.221 s) : 0, 1221133
Total [baseline] (10.965 s) : 0, 10964725
Agent [candidate] (1.208 s) : 0, 1207709
Total [candidate] (10.902 s) : 0, 10902115
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.095 s -
Agent appsec 1.27 s 174.822 ms (16.0%)
Agent iast 1.241 s 146.657 ms (13.4%)
Agent profiling 1.221 s 126.426 ms (11.5%)
Total tracing 10.802 s -
Total appsec 11.075 s 272.54 ms (2.5%)
Total iast 11.283 s 480.763 ms (4.5%)
Total profiling 10.965 s 162.295 ms (1.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.09 s -
Agent appsec 1.269 s 179.02 ms (16.4%)
Agent iast 1.233 s 143.204 ms (13.1%)
Agent profiling 1.208 s 118.18 ms (10.8%)
Total tracing 10.69 s -
Total appsec 11.028 s 338.123 ms (3.2%)
Total iast 11.208 s 518.222 ms (4.8%)
Total profiling 10.902 s 212.35 ms (2.0%)
gantt
    title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.181 ms) : 0, 1181
crashtracking [candidate] (1.172 ms) : 0, 1172
BytebuddyAgent [baseline] (656.898 ms) : 0, 656898
BytebuddyAgent [candidate] (652.034 ms) : 0, 652034
AgentMeter [candidate] (28.974 ms) : 0, 28974
GlobalTracer [baseline] (286.645 ms) : 0, 286645
GlobalTracer [candidate] (257.477 ms) : 0, 257477
AppSec [baseline] (33.053 ms) : 0, 33053
AppSec [candidate] (32.868 ms) : 0, 32868
Debugger [baseline] (68.135 ms) : 0, 68135
Debugger [candidate] (66.666 ms) : 0, 66666
Remote Config [baseline] (601.527 µs) : 0, 602
Remote Config [candidate] (613.074 µs) : 0, 613
Telemetry [baseline] (8.879 ms) : 0, 8879
Telemetry [candidate] (8.926 ms) : 0, 8926
Flare Poller [baseline] (3.767 ms) : 0, 3767
Flare Poller [candidate] (5.253 ms) : 0, 5253
section appsec
crashtracking [baseline] (1.173 ms) : 0, 1173
crashtracking [candidate] (1.174 ms) : 0, 1174
BytebuddyAgent [baseline] (691.355 ms) : 0, 691355
BytebuddyAgent [candidate] (691.221 ms) : 0, 691221
AgentMeter [candidate] (12.026 ms) : 0, 12026
GlobalTracer [baseline] (262.605 ms) : 0, 262605
GlobalTracer [candidate] (250.526 ms) : 0, 250526
AppSec [baseline] (173.661 ms) : 0, 173661
AppSec [candidate] (174.343 ms) : 0, 174343
Debugger [baseline] (66.803 ms) : 0, 66803
Debugger [candidate] (65.547 ms) : 0, 65547
Remote Config [baseline] (711.788 µs) : 0, 712
Remote Config [candidate] (673.476 µs) : 0, 673
Telemetry [baseline] (9.265 ms) : 0, 9265
Telemetry [candidate] (9.349 ms) : 0, 9349
Flare Poller [baseline] (3.694 ms) : 0, 3694
Flare Poller [candidate] (3.515 ms) : 0, 3515
IAST [baseline] (24.824 ms) : 0, 24824
IAST [candidate] (24.673 ms) : 0, 24673
section iast
crashtracking [baseline] (1.197 ms) : 0, 1197
crashtracking [candidate] (1.185 ms) : 0, 1185
BytebuddyAgent [baseline] (800.65 ms) : 0, 800650
BytebuddyAgent [candidate] (794.456 ms) : 0, 794456
AgentMeter [candidate] (11.324 ms) : 0, 11324
GlobalTracer [baseline] (261.799 ms) : 0, 261799
GlobalTracer [candidate] (249.882 ms) : 0, 249882
AppSec [baseline] (34.076 ms) : 0, 34076
AppSec [candidate] (35.286 ms) : 0, 35286
Debugger [baseline] (67.885 ms) : 0, 67885
Debugger [candidate] (65.679 ms) : 0, 65679
Remote Config [baseline] (556.36 µs) : 0, 556
Remote Config [candidate] (535.698 µs) : 0, 536
Telemetry [baseline] (8.657 ms) : 0, 8657
Telemetry [candidate] (8.657 ms) : 0, 8657
Flare Poller [baseline] (3.551 ms) : 0, 3551
Flare Poller [candidate] (3.579 ms) : 0, 3579
IAST [baseline] (27.539 ms) : 0, 27539
IAST [candidate] (26.835 ms) : 0, 26835
section profiling
ProfilingAgent [baseline] (97.58 ms) : 0, 97580
ProfilingAgent [candidate] (95.934 ms) : 0, 95934
crashtracking [baseline] (1.234 ms) : 0, 1234
crashtracking [candidate] (1.214 ms) : 0, 1214
BytebuddyAgent [baseline] (710.038 ms) : 0, 710038
BytebuddyAgent [candidate] (701.045 ms) : 0, 701045
AgentMeter [candidate] (8.792 ms) : 0, 8792
GlobalTracer [baseline] (227.033 ms) : 0, 227033
GlobalTracer [candidate] (216.034 ms) : 0, 216034
AppSec [baseline] (32.972 ms) : 0, 32972
AppSec [candidate] (32.585 ms) : 0, 32585
Debugger [baseline] (68.464 ms) : 0, 68464
Debugger [candidate] (68.079 ms) : 0, 68079
Remote Config [baseline] (626.322 µs) : 0, 626
Remote Config [candidate] (624.874 µs) : 0, 625
Telemetry [baseline] (8.92 ms) : 0, 8920
Telemetry [candidate] (8.802 ms) : 0, 8802
Flare Poller [baseline] (3.656 ms) : 0, 3656
Flare Poller [candidate] (4.864 ms) : 0, 4864
Profiling [baseline] (98.168 ms) : 0, 98168
Profiling [candidate] (96.518 ms) : 0, 96518
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/communications
git_commit_date 1769437140 1769437575
git_commit_sha 0e6e189 f4196be
release_version 1.59.0-SNAPSHOT~0e6e189eee 1.59.0-SNAPSHOT~f4196be4c5
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769441832 1769441832
ci_job_id 1376902388 1376902388
ci_pipeline_id 92820274 92820274
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-5-85j18zht 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-5-85j18zht 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 2 performance improvements and 1 performance regressions! Performance is the same for 18 metrics, 15 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:profiling:high_load worse
[+60.049µs; +179.903µs] or [+3.726%; +11.163%]
unstable
[+327.546µs; +1195.408µs] or [+7.317%; +26.704%]
unstable
[-521.757op/s; +4.257op/s] or [-22.611%; +0.184%]
1.732ms 5.238ms 2048.812op/s 1.612ms 4.477ms 2307.562op/s
scenario:load:petclinic:profiling:high_load better
[-1.637ms; -0.687ms] or [-8.335%; -3.500%]
unsure
[-1486.500µs; -121.216µs] or [-4.823%; -0.393%]
unstable
[-14.848op/s; +38.848op/s] or [-6.293%; +16.465%]
18.478ms 30.019ms 247.938op/s 19.640ms 30.823ms 235.938op/s
scenario:load:petclinic:iast:high_load better
[-1.696ms; -0.554ms] or [-9.149%; -2.991%]
unsure
[-2.194ms; -0.598ms] or [-7.303%; -1.990%]
unstable
[-13.597op/s; +44.160op/s] or [-5.505%; +17.879%]
17.411ms 28.643ms 262.281op/s 18.536ms 30.039ms 247.000op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.179 ms) : 1168, 1191
.   : milestone, 1179,
iast (3.158 ms) : 3118, 3198
.   : milestone, 3158,
iast_FULL (5.87 ms) : 5812, 5929
.   : milestone, 5870,
iast_GLOBAL (3.67 ms) : 3609, 3731
.   : milestone, 3670,
profiling (1.955 ms) : 1939, 1971
.   : milestone, 1955,
tracing (1.809 ms) : 1794, 1824
.   : milestone, 1809,
section candidate
no_agent (1.191 ms) : 1180, 1203
.   : milestone, 1191,
iast (3.117 ms) : 3076, 3159
.   : milestone, 3117,
iast_FULL (5.777 ms) : 5719, 5834
.   : milestone, 5777,
iast_GLOBAL (3.695 ms) : 3642, 3748
.   : milestone, 3695,
profiling (2.211 ms) : 2189, 2233
.   : milestone, 2211,
tracing (1.753 ms) : 1739, 1768
.   : milestone, 1753,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.179 ms [1.168 ms, 1.191 ms] -
iast 3.158 ms [3.118 ms, 3.198 ms] 1.979 ms (167.8%)
iast_FULL 5.87 ms [5.812 ms, 5.929 ms] 4.691 ms (397.8%)
iast_GLOBAL 3.67 ms [3.609 ms, 3.731 ms] 2.49 ms (211.2%)
profiling 1.955 ms [1.939 ms, 1.971 ms] 775.445 µs (65.8%)
tracing 1.809 ms [1.794 ms, 1.824 ms] 629.707 µs (53.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.191 ms [1.18 ms, 1.203 ms] -
iast 3.117 ms [3.076 ms, 3.159 ms] 1.926 ms (161.6%)
iast_FULL 5.777 ms [5.719 ms, 5.834 ms] 4.585 ms (384.9%)
iast_GLOBAL 3.695 ms [3.642 ms, 3.748 ms] 2.504 ms (210.2%)
profiling 2.211 ms [2.189 ms, 2.233 ms] 1.02 ms (85.6%)
tracing 1.753 ms [1.739 ms, 1.768 ms] 561.908 µs (47.2%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.365 ms) : 19168, 19562
.   : milestone, 19365,
appsec (19.056 ms) : 18863, 19250
.   : milestone, 19056,
code_origins (17.776 ms) : 17601, 17950
.   : milestone, 17776,
iast (18.898 ms) : 18707, 19090
.   : milestone, 18898,
profiling (19.789 ms) : 19589, 19989
.   : milestone, 19789,
tracing (17.884 ms) : 17709, 18059
.   : milestone, 17884,
section candidate
no_agent (19.475 ms) : 19275, 19675
.   : milestone, 19475,
appsec (18.571 ms) : 18376, 18765
.   : milestone, 18571,
code_origins (18.035 ms) : 17855, 18215
.   : milestone, 18035,
iast (17.793 ms) : 17617, 17969
.   : milestone, 17793,
profiling (18.825 ms) : 18636, 19013
.   : milestone, 18825,
tracing (17.782 ms) : 17606, 17958
.   : milestone, 17782,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.365 ms [19.168 ms, 19.562 ms] -
appsec 19.056 ms [18.863 ms, 19.25 ms] -308.993 µs (-1.6%)
code_origins 17.776 ms [17.601 ms, 17.95 ms] -1.59 ms (-8.2%)
iast 18.898 ms [18.707 ms, 19.09 ms] -467.101 µs (-2.4%)
profiling 19.789 ms [19.589 ms, 19.989 ms] 423.719 µs (2.2%)
tracing 17.884 ms [17.709 ms, 18.059 ms] -1.481 ms (-7.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.475 ms [19.275 ms, 19.675 ms] -
appsec 18.571 ms [18.376 ms, 18.765 ms] -904.745 µs (-4.6%)
code_origins 18.035 ms [17.855 ms, 18.215 ms] -1.441 ms (-7.4%)
iast 17.793 ms [17.617 ms, 17.969 ms] -1.683 ms (-8.6%)
profiling 18.825 ms [18.636 ms, 19.013 ms] -650.844 µs (-3.3%)
tracing 17.782 ms [17.606 ms, 17.958 ms] -1.693 ms (-8.7%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/communications
git_commit_date 1769437140 1769437575
git_commit_sha 0e6e189 f4196be
release_version 1.59.0-SNAPSHOT~0e6e189eee 1.59.0-SNAPSHOT~f4196be4c5
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1769441821 1769441821
ci_job_id 1376902393 1376902393
ci_pipeline_id 92820274 92820274
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-1blra37x 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-1blra37x 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 1 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 0 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:dacapo:tomcat:appsec better
[-1.337ms; -0.997ms] or [-36.831%; -27.453%]
2.463ms 3.630ms
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.318 s) : 15318000, 15318000
.   : milestone, 15318000,
appsec (14.598 s) : 14598000, 14598000
.   : milestone, 14598000,
iast (18.241 s) : 18241000, 18241000
.   : milestone, 18241000,
iast_GLOBAL (17.911 s) : 17911000, 17911000
.   : milestone, 17911000,
profiling (15.093 s) : 15093000, 15093000
.   : milestone, 15093000,
tracing (14.711 s) : 14711000, 14711000
.   : milestone, 14711000,
section candidate
no_agent (14.951 s) : 14951000, 14951000
.   : milestone, 14951000,
appsec (14.734 s) : 14734000, 14734000
.   : milestone, 14734000,
iast (18.197 s) : 18197000, 18197000
.   : milestone, 18197000,
iast_GLOBAL (17.892 s) : 17892000, 17892000
.   : milestone, 17892000,
profiling (14.831 s) : 14831000, 14831000
.   : milestone, 14831000,
tracing (14.565 s) : 14565000, 14565000
.   : milestone, 14565000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.318 s [15.318 s, 15.318 s] -
appsec 14.598 s [14.598 s, 14.598 s] -720.0 ms (-4.7%)
iast 18.241 s [18.241 s, 18.241 s] 2.923 s (19.1%)
iast_GLOBAL 17.911 s [17.911 s, 17.911 s] 2.593 s (16.9%)
profiling 15.093 s [15.093 s, 15.093 s] -225.0 ms (-1.5%)
tracing 14.711 s [14.711 s, 14.711 s] -607.0 ms (-4.0%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.951 s [14.951 s, 14.951 s] -
appsec 14.734 s [14.734 s, 14.734 s] -217.0 ms (-1.5%)
iast 18.197 s [18.197 s, 18.197 s] 3.246 s (21.7%)
iast_GLOBAL 17.892 s [17.892 s, 17.892 s] 2.941 s (19.7%)
profiling 14.831 s [14.831 s, 14.831 s] -120.0 ms (-0.8%)
tracing 14.565 s [14.565 s, 14.565 s] -386.0 ms (-2.6%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~f4196be4c5, baseline=1.59.0-SNAPSHOT~0e6e189eee
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.474 ms) : 1462, 1485
.   : milestone, 1474,
appsec (3.63 ms) : 3413, 3848
.   : milestone, 3630,
iast (2.205 ms) : 2140, 2269
.   : milestone, 2205,
iast_GLOBAL (2.257 ms) : 2192, 2323
.   : milestone, 2257,
profiling (2.081 ms) : 2027, 2135
.   : milestone, 2081,
tracing (2.042 ms) : 1990, 2094
.   : milestone, 2042,
section candidate
no_agent (1.475 ms) : 1463, 1486
.   : milestone, 1475,
appsec (2.463 ms) : 2411, 2516
.   : milestone, 2463,
iast (2.203 ms) : 2138, 2268
.   : milestone, 2203,
iast_GLOBAL (2.253 ms) : 2188, 2319
.   : milestone, 2253,
profiling (2.068 ms) : 2015, 2122
.   : milestone, 2068,
tracing (2.028 ms) : 1977, 2079
.   : milestone, 2028,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.462 ms, 1.485 ms] -
appsec 3.63 ms [3.413 ms, 3.848 ms] 2.157 ms (146.3%)
iast 2.205 ms [2.14 ms, 2.269 ms] 730.915 µs (49.6%)
iast_GLOBAL 2.257 ms [2.192 ms, 2.323 ms] 783.515 µs (53.2%)
profiling 2.081 ms [2.027 ms, 2.135 ms] 607.622 µs (41.2%)
tracing 2.042 ms [1.99 ms, 2.094 ms] 568.195 µs (38.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.463 ms, 1.486 ms] -
appsec 2.463 ms [2.411 ms, 2.516 ms] 988.613 µs (67.0%)
iast 2.203 ms [2.138 ms, 2.268 ms] 728.253 µs (49.4%)
iast_GLOBAL 2.253 ms [2.188 ms, 2.319 ms] 778.46 µs (52.8%)
profiling 2.068 ms [2.015 ms, 2.122 ms] 593.5 µs (40.2%)
tracing 2.028 ms [1.977 ms, 2.079 ms] 553.191 µs (37.5%)

throw new UndeclaredThrowableException(e);
}

installDatadogMeter(initTelemetry);
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 nice to have a separate agent for the metrics! I don't remember if the startup bench are comparing all the StaticEventLogger durations - just to say that having lower startup time here looks only a side effect since some code has been moved out tracing init

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Indeed. It introduces a new step: AgentMeter

StaticEventLogger.begin("AgentMeter");

The overall startup time should not change, but the tracer time might artificially decrease.

@PerfectSlayer PerfectSlayer marked this pull request as ready for review January 22, 2026 10:40
@PerfectSlayer PerfectSlayer requested review from a team as code owners January 22, 2026 10:40
@PerfectSlayer PerfectSlayer requested review from amarziali, claponcet, jpbempel, manuel-alvarez-alvarez and mcculls and removed request for a team January 22, 2026 10:40
@github-actions
Copy link
Contributor

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@PerfectSlayer PerfectSlayer marked this pull request as draft January 22, 2026 11:57
Copy link
Contributor

@AlexeyKuznetsov-DD AlexeyKuznetsov-DD left a comment

Choose a reason for hiding this comment

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

PR is almost LGTM to me, left several minor comments

Comment on lines +32 to +51
// val excludedClassesBranchCoverage by extra(
// listOf(
// )
// )
// val excludedClassesInstructionCoverage by extra(
// listOf(
// )
// )
Copy link
Contributor

Choose a reason for hiding this comment

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

reminder: cleanup commented code

Comment on lines +23 to +36
val minimumBranchCoverage by extra(0.5)
val minimumInstructionCoverage by extra(0.8)
Copy link
Contributor

Choose a reason for hiding this comment

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

would be nice to have better coverage if possible

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I left all the testing coverage part aside for now until the CI tests pass. I haven't still be able to get a single build working. Once working, I will re-apply the ignored classes here and start refactoring and testing.
So yes, I don't intent to leave it in this state.

@PerfectSlayer PerfectSlayer marked this pull request as ready for review January 22, 2026 17:00
PerfectSlayer and others added 17 commits January 26, 2026 10:23
api in shared
lib in metrics

However there are still some things to think about

The tracer jar now has split packages:

> Task :dd-java-agent:generateAgentJarIndex
[main] WARN datadog.trace.bootstrap.AgentJarIndex - Detected duplicate content 'datadog.metrics.statsd.*' under 'shared', already seen in metrics. Ensure your content is under a distinct directory.
[main] WARN datadog.trace.bootstrap.AgentJarIndex - Detected duplicate content 'datadog.metrics.api.*' under 'shared', already seen in metrics. Ensure your content is under a distinct directory.

Also, the metric-agent isn't using `excludeShared`, and the metrics-lib had to be removed from shared
* Also fixes the muzzle checks
* Remove the need to exclude sketches-java when declaring metrics-lib
 1. Bootstrap (root level):
    - datadog/metrics/agent/AgentMeter.class
    - datadog/metrics/api/*.class (interfaces: Counter, Histogram, Histograms, Monitoring, NoOp implementations)
  2. metrics/:
    - All metrics-lib implementation classes:
      - datadog/metrics/api/DDSketchHistogram.classdata, etc.
      - datadog/metrics/statsd/* (StatsDClient implementations)
  3. shared/:
    - com/datadoghq/sketch/** (sketches-java library)
This fixes GraalVM smoke test, but I would think the issue could have broken
regular agent.
Copy link
Contributor

@amarziali amarziali left a comment

Choose a reason for hiding this comment

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

looks ok to me

Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

LGTM, appreciate all the explanatory comments

@PerfectSlayer PerfectSlayer merged commit b3c7600 into master Jan 26, 2026
725 of 727 checks passed
@PerfectSlayer PerfectSlayer deleted the bbujon/communications branch January 26, 2026 16:19
@github-actions github-actions bot added this to the 1.59.0 milestone Jan 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants