Skip to content

Conversation

kr-igor
Copy link
Contributor

@kr-igor kr-igor commented Jul 10, 2025

This change is aimed to reduce DSM overhead by using a lightweight object instead of linked maps.

Introduced DataStreamsTags which are now used instead of LinkedHashMap.
Updated all integrations and tests.

My tests show ~20% throughput increase with a significant latency decrease without increasing CPU load. (left side is v1.51.1, right side is this branch)
Screenshot 2025-07-18 at 1 30 21 PM
Screenshot 2025-07-18 at 1 31 28 PM

@pr-commenter
Copy link

pr-commenter bot commented Jul 11, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master kr-igor/dsm-optimization-v2
git_commit_date 1753099061 1753108644
git_commit_sha b6521fb a836ab6
release_version 1.52.0-SNAPSHOT~b6521fb91a 1.52.0-SNAPSHOT~a836ab6abf
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1753110584 1753110584
ci_job_id 1038903799 1038903799
ci_pipeline_id 71182823 71182823
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-c71f0ype 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-c71f0ype 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 48 metrics, 11 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.038 s) : 0, 1038144
Total [baseline] (8.649 s) : 0, 8649309
Agent [candidate] (1.039 s) : 0, 1039366
Total [candidate] (8.6 s) : 0, 8600395
section iast
Agent [baseline] (1.19 s) : 0, 1189864
Total [baseline] (9.328 s) : 0, 9328107
Agent [candidate] (1.18 s) : 0, 1179916
Total [candidate] (9.282 s) : 0, 9281994
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.038 s -
Agent iast 1.19 s 151.719 ms (14.6%)
Total tracing 8.649 s -
Total iast 9.328 s 678.798 ms (7.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.039 s -
Agent iast 1.18 s 140.55 ms (13.5%)
Total tracing 8.6 s -
Total iast 9.282 s 681.598 ms (7.9%)
gantt
    title insecure-bank - break down per module: candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.424 ms) : 0, 1424
crashtracking [candidate] (1.432 ms) : 0, 1432
BytebuddyAgent [baseline] (729.279 ms) : 0, 729279
BytebuddyAgent [candidate] (730.396 ms) : 0, 730396
GlobalTracer [baseline] (240.821 ms) : 0, 240821
GlobalTracer [candidate] (241.374 ms) : 0, 241374
AppSec [baseline] (30.666 ms) : 0, 30666
AppSec [candidate] (30.403 ms) : 0, 30403
Debugger [baseline] (6.051 ms) : 0, 6051
Debugger [candidate] (6.014 ms) : 0, 6014
Remote Config [baseline] (660.419 µs) : 0, 660
Remote Config [candidate] (650.194 µs) : 0, 650
Telemetry [baseline] (8.257 ms) : 0, 8257
Telemetry [candidate] (8.194 ms) : 0, 8194
section iast
crashtracking [baseline] (1.47 ms) : 0, 1470
crashtracking [candidate] (1.439 ms) : 0, 1439
BytebuddyAgent [baseline] (860.256 ms) : 0, 860256
BytebuddyAgent [candidate] (852.971 ms) : 0, 852971
GlobalTracer [baseline] (233.603 ms) : 0, 233603
GlobalTracer [candidate] (233.316 ms) : 0, 233316
IAST [baseline] (30.462 ms) : 0, 30462
IAST [candidate] (26.495 ms) : 0, 26495
AppSec [baseline] (27.028 ms) : 0, 27028
AppSec [candidate] (27.927 ms) : 0, 27927
Debugger [baseline] (7.385 ms) : 0, 7385
Debugger [candidate] (8.278 ms) : 0, 8278
Remote Config [baseline] (596.194 µs) : 0, 596
Remote Config [candidate] (575.767 µs) : 0, 576
Telemetry [baseline] (8.009 ms) : 0, 8009
Telemetry [candidate] (7.888 ms) : 0, 7888
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.038 s) : 0, 1037852
Total [baseline] (10.678 s) : 0, 10677789
Agent [candidate] (1.039 s) : 0, 1038804
Total [candidate] (10.547 s) : 0, 10547083
section appsec
Agent [baseline] (1.226 s) : 0, 1226021
Total [baseline] (10.814 s) : 0, 10814221
Agent [candidate] (1.216 s) : 0, 1216424
Total [candidate] (10.711 s) : 0, 10711477
section iast
Agent [baseline] (1.171 s) : 0, 1171384
Total [baseline] (10.822 s) : 0, 10821777
Agent [candidate] (1.173 s) : 0, 1173251
Total [candidate] (10.914 s) : 0, 10914003
section profiling
Agent [baseline] (1.182 s) : 0, 1182300
Total [baseline] (10.863 s) : 0, 10863169
Agent [candidate] (1.184 s) : 0, 1183926
Total [candidate] (10.779 s) : 0, 10778525
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.038 s -
Agent appsec 1.226 s 188.169 ms (18.1%)
Agent iast 1.171 s 133.532 ms (12.9%)
Agent profiling 1.182 s 144.448 ms (13.9%)
Total tracing 10.678 s -
Total appsec 10.814 s 136.432 ms (1.3%)
Total iast 10.822 s 143.988 ms (1.3%)
Total profiling 10.863 s 185.38 ms (1.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.039 s -
Agent appsec 1.216 s 177.62 ms (17.1%)
Agent iast 1.173 s 134.447 ms (12.9%)
Agent profiling 1.184 s 145.122 ms (14.0%)
Total tracing 10.547 s -
Total appsec 10.711 s 164.394 ms (1.6%)
Total iast 10.914 s 366.921 ms (3.5%)
Total profiling 10.779 s 231.442 ms (2.2%)
gantt
    title petclinic - break down per module: candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.433 ms) : 0, 1433
crashtracking [candidate] (1.428 ms) : 0, 1428
BytebuddyAgent [baseline] (729.295 ms) : 0, 729295
BytebuddyAgent [candidate] (729.968 ms) : 0, 729968
GlobalTracer [baseline] (240.984 ms) : 0, 240984
GlobalTracer [candidate] (241.138 ms) : 0, 241138
AppSec [baseline] (30.369 ms) : 0, 30369
AppSec [candidate] (30.441 ms) : 0, 30441
Debugger [baseline] (5.978 ms) : 0, 5978
Debugger [candidate] (6.0 ms) : 0, 6000
Remote Config [baseline] (643.635 µs) : 0, 644
Remote Config [candidate] (645.435 µs) : 0, 645
Telemetry [baseline] (8.18 ms) : 0, 8180
Telemetry [candidate] (8.256 ms) : 0, 8256
section appsec
crashtracking [baseline] (1.433 ms) : 0, 1433
crashtracking [candidate] (1.429 ms) : 0, 1429
BytebuddyAgent [baseline] (757.849 ms) : 0, 757849
BytebuddyAgent [candidate] (750.796 ms) : 0, 750796
GlobalTracer [baseline] (235.868 ms) : 0, 235868
GlobalTracer [candidate] (234.189 ms) : 0, 234189
IAST [baseline] (23.804 ms) : 0, 23804
IAST [candidate] (23.477 ms) : 0, 23477
AppSec [baseline] (168.298 ms) : 0, 168298
AppSec [candidate] (167.931 ms) : 0, 167931
Debugger [baseline] (8.649 ms) : 0, 8649
Debugger [candidate] (7.079 ms) : 0, 7079
Remote Config [baseline] (622.724 µs) : 0, 623
Remote Config [candidate] (605.101 µs) : 0, 605
Telemetry [baseline] (8.16 ms) : 0, 8160
Telemetry [candidate] (9.586 ms) : 0, 9586
section iast
crashtracking [baseline] (1.425 ms) : 0, 1425
crashtracking [candidate] (1.436 ms) : 0, 1436
BytebuddyAgent [baseline] (845.99 ms) : 0, 845990
BytebuddyAgent [candidate] (847.224 ms) : 0, 847224
GlobalTracer [baseline] (230.947 ms) : 0, 230947
GlobalTracer [candidate] (231.285 ms) : 0, 231285
IAST [baseline] (27.407 ms) : 0, 27407
IAST [candidate] (30.07 ms) : 0, 30070
AppSec [baseline] (28.745 ms) : 0, 28745
AppSec [candidate] (26.484 ms) : 0, 26484
Debugger [baseline] (7.461 ms) : 0, 7461
Debugger [candidate] (7.405 ms) : 0, 7405
Remote Config [baseline] (572.256 µs) : 0, 572
Remote Config [candidate] (580.579 µs) : 0, 581
Telemetry [baseline] (7.875 ms) : 0, 7875
Telemetry [candidate] (7.862 ms) : 0, 7862
section profiling
crashtracking [baseline] (1.395 ms) : 0, 1395
crashtracking [candidate] (1.404 ms) : 0, 1404
BytebuddyAgent [baseline] (759.056 ms) : 0, 759056
BytebuddyAgent [candidate] (759.266 ms) : 0, 759266
GlobalTracer [baseline] (220.033 ms) : 0, 220033
GlobalTracer [candidate] (220.629 ms) : 0, 220629
AppSec [baseline] (30.16 ms) : 0, 30160
AppSec [candidate] (30.246 ms) : 0, 30246
Debugger [baseline] (6.231 ms) : 0, 6231
Debugger [candidate] (6.279 ms) : 0, 6279
Remote Config [baseline] (682.034 µs) : 0, 682
Remote Config [candidate] (653.839 µs) : 0, 654
Telemetry [baseline] (11.705 ms) : 0, 11705
Telemetry [candidate] (14.014 ms) : 0, 14014
ProfilingAgent [baseline] (104.581 ms) : 0, 104581
ProfilingAgent [candidate] (103.141 ms) : 0, 103141
Profiling [baseline] (104.604 ms) : 0, 104604
Profiling [candidate] (103.164 ms) : 0, 103164
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master kr-igor/dsm-optimization-v2
git_commit_date 1753099061 1753108644
git_commit_sha b6521fb a836ab6
release_version 1.52.0-SNAPSHOT~b6521fb91a 1.52.0-SNAPSHOT~a836ab6abf
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1753110236 1753110236
ci_job_id 1038903802 1038903802
ci_pipeline_id 71182823 71182823
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-5dtspizu 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-5dtspizu 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, 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:petclinic:code_origins:high_load better
[-2.019ms; -1.187ms] or [-4.396%; -2.585%]
unstable
[-2.090op/s; +11.986op/s] or [-2.050%; +11.761%]
44.324ms 106.861op/s 45.927ms 101.912op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.442 ms) : 4388, 4496
.   : milestone, 4442,
iast (9.27 ms) : 9120, 9420
.   : milestone, 9270,
iast_FULL (14.047 ms) : 13768, 14326
.   : milestone, 14047,
iast_GLOBAL (10.363 ms) : 10177, 10548
.   : milestone, 10363,
profiling (8.686 ms) : 8543, 8829
.   : milestone, 8686,
tracing (7.603 ms) : 7488, 7717
.   : milestone, 7603,
section candidate
no_agent (4.336 ms) : 4283, 4390
.   : milestone, 4336,
iast (9.379 ms) : 9225, 9532
.   : milestone, 9379,
iast_FULL (14.337 ms) : 14046, 14627
.   : milestone, 14337,
iast_GLOBAL (10.39 ms) : 10210, 10570
.   : milestone, 10390,
profiling (9.004 ms) : 8849, 9159
.   : milestone, 9004,
tracing (7.696 ms) : 7579, 7813
.   : milestone, 7696,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.442 ms [4.388 ms, 4.496 ms] -
iast 9.27 ms [9.12 ms, 9.42 ms] 4.828 ms (108.7%)
iast_FULL 14.047 ms [13.768 ms, 14.326 ms] 9.605 ms (216.2%)
iast_GLOBAL 10.363 ms [10.177 ms, 10.548 ms] 5.92 ms (133.3%)
profiling 8.686 ms [8.543 ms, 8.829 ms] 4.244 ms (95.5%)
tracing 7.603 ms [7.488 ms, 7.717 ms] 3.16 ms (71.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.336 ms [4.283 ms, 4.39 ms] -
iast 9.379 ms [9.225 ms, 9.532 ms] 5.042 ms (116.3%)
iast_FULL 14.337 ms [14.046 ms, 14.627 ms] 10.0 ms (230.6%)
iast_GLOBAL 10.39 ms [10.21 ms, 10.57 ms] 6.053 ms (139.6%)
profiling 9.004 ms [8.849 ms, 9.159 ms] 4.667 ms (107.6%)
tracing 7.696 ms [7.579 ms, 7.813 ms] 3.36 ms (77.5%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a
    dateFormat X
    axisFormat %s
section baseline
no_agent (37.273 ms) : 36974, 37572
.   : milestone, 37273,
appsec (47.243 ms) : 46817, 47669
.   : milestone, 47243,
code_origins (45.927 ms) : 45527, 46327
.   : milestone, 45927,
iast (44.567 ms) : 44185, 44950
.   : milestone, 44567,
profiling (48.407 ms) : 47964, 48849
.   : milestone, 48407,
tracing (44.978 ms) : 44597, 45358
.   : milestone, 44978,
section candidate
no_agent (36.789 ms) : 36490, 37089
.   : milestone, 36789,
appsec (48.05 ms) : 47614, 48486
.   : milestone, 48050,
code_origins (44.324 ms) : 43951, 44696
.   : milestone, 44324,
iast (44.459 ms) : 44079, 44839
.   : milestone, 44459,
profiling (47.579 ms) : 47156, 48003
.   : milestone, 47579,
tracing (45.276 ms) : 44900, 45652
.   : milestone, 45276,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.273 ms [36.974 ms, 37.572 ms] -
appsec 47.243 ms [46.817 ms, 47.669 ms] 9.97 ms (26.7%)
code_origins 45.927 ms [45.527 ms, 46.327 ms] 8.654 ms (23.2%)
iast 44.567 ms [44.185 ms, 44.95 ms] 7.294 ms (19.6%)
profiling 48.407 ms [47.964 ms, 48.849 ms] 11.134 ms (29.9%)
tracing 44.978 ms [44.597 ms, 45.358 ms] 7.705 ms (20.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 36.789 ms [36.49 ms, 37.089 ms] -
appsec 48.05 ms [47.614 ms, 48.486 ms] 11.261 ms (30.6%)
code_origins 44.324 ms [43.951 ms, 44.696 ms] 7.535 ms (20.5%)
iast 44.459 ms [44.079 ms, 44.839 ms] 7.67 ms (20.8%)
profiling 47.579 ms [47.156 ms, 48.003 ms] 10.79 ms (29.3%)
tracing 45.276 ms [44.9 ms, 45.652 ms] 8.487 ms (23.1%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master kr-igor/dsm-optimization-v2
git_commit_date 1753099061 1753108644
git_commit_sha b6521fb a836ab6
release_version 1.52.0-SNAPSHOT~b6521fb91a 1.52.0-SNAPSHOT~a836ab6abf
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1753110731 1753110731
ci_job_id 1038903805 1038903805
ci_pipeline_id 71182823 71182823
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-u1obkkw3 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-u1obkkw3 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.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.987 s) : 14987000, 14987000
.   : milestone, 14987000,
appsec (14.845 s) : 14845000, 14845000
.   : milestone, 14845000,
iast (18.455 s) : 18455000, 18455000
.   : milestone, 18455000,
iast_GLOBAL (17.943 s) : 17943000, 17943000
.   : milestone, 17943000,
profiling (15.408 s) : 15408000, 15408000
.   : milestone, 15408000,
tracing (14.821 s) : 14821000, 14821000
.   : milestone, 14821000,
section candidate
no_agent (14.911 s) : 14911000, 14911000
.   : milestone, 14911000,
appsec (14.941 s) : 14941000, 14941000
.   : milestone, 14941000,
iast (18.264 s) : 18264000, 18264000
.   : milestone, 18264000,
iast_GLOBAL (17.878 s) : 17878000, 17878000
.   : milestone, 17878000,
profiling (15.519 s) : 15519000, 15519000
.   : milestone, 15519000,
tracing (14.979 s) : 14979000, 14979000
.   : milestone, 14979000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.987 s [14.987 s, 14.987 s] -
appsec 14.845 s [14.845 s, 14.845 s] -142.0 ms (-0.9%)
iast 18.455 s [18.455 s, 18.455 s] 3.468 s (23.1%)
iast_GLOBAL 17.943 s [17.943 s, 17.943 s] 2.956 s (19.7%)
profiling 15.408 s [15.408 s, 15.408 s] 421.0 ms (2.8%)
tracing 14.821 s [14.821 s, 14.821 s] -166.0 ms (-1.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.911 s [14.911 s, 14.911 s] -
appsec 14.941 s [14.941 s, 14.941 s] 30.0 ms (0.2%)
iast 18.264 s [18.264 s, 18.264 s] 3.353 s (22.5%)
iast_GLOBAL 17.878 s [17.878 s, 17.878 s] 2.967 s (19.9%)
profiling 15.519 s [15.519 s, 15.519 s] 608.0 ms (4.1%)
tracing 14.979 s [14.979 s, 14.979 s] 68.0 ms (0.5%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.52.0-SNAPSHOT~a836ab6abf, baseline=1.52.0-SNAPSHOT~b6521fb91a
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.481 ms) : 1470, 1493
.   : milestone, 1481,
appsec (3.649 ms) : 3431, 3868
.   : milestone, 3649,
iast (2.194 ms) : 2131, 2257
.   : milestone, 2194,
iast_GLOBAL (2.259 ms) : 2196, 2323
.   : milestone, 2259,
profiling (2.054 ms) : 2003, 2104
.   : milestone, 2054,
tracing (2.037 ms) : 1987, 2086
.   : milestone, 2037,
section candidate
no_agent (1.483 ms) : 1471, 1495
.   : milestone, 1483,
appsec (3.687 ms) : 3470, 3904
.   : milestone, 3687,
iast (2.203 ms) : 2140, 2266
.   : milestone, 2203,
iast_GLOBAL (2.242 ms) : 2180, 2305
.   : milestone, 2242,
profiling (2.046 ms) : 1996, 2096
.   : milestone, 2046,
tracing (2.021 ms) : 1973, 2070
.   : milestone, 2021,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.481 ms [1.47 ms, 1.493 ms] -
appsec 3.649 ms [3.431 ms, 3.868 ms] 2.168 ms (146.3%)
iast 2.194 ms [2.131 ms, 2.257 ms] 712.353 µs (48.1%)
iast_GLOBAL 2.259 ms [2.196 ms, 2.323 ms] 777.713 µs (52.5%)
profiling 2.054 ms [2.003 ms, 2.104 ms] 572.076 µs (38.6%)
tracing 2.037 ms [1.987 ms, 2.086 ms] 555.087 µs (37.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.483 ms [1.471 ms, 1.495 ms] -
appsec 3.687 ms [3.47 ms, 3.904 ms] 2.204 ms (148.6%)
iast 2.203 ms [2.14 ms, 2.266 ms] 720.374 µs (48.6%)
iast_GLOBAL 2.242 ms [2.18 ms, 2.305 ms] 759.299 µs (51.2%)
profiling 2.046 ms [1.996 ms, 2.096 ms] 563.227 µs (38.0%)
tracing 2.021 ms [1.973 ms, 2.07 ms] 538.294 µs (36.3%)

@pr-commenter
Copy link

pr-commenter bot commented Jul 11, 2025

Kafka / producer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master kr-igor/dsm-optimization-v2
git_commit_date 1753099061 1753108644
git_commit_sha b6521fb a836ab6
See matching parameters
Baseline Candidate
ci_job_date 1753109826 1753109826
ci_job_id 1038903815 1038903815
ci_pipeline_id 71182823 71182823
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.25 11.0.25
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/producer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/producer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.25+9-post-Ubuntu-1ubuntu122.04 11.0.25+9-post-Ubuntu-1ubuntu122.04

Summary

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

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaProduceBenchmark.benchProduce same

@kr-igor kr-igor marked this pull request as ready for review July 11, 2025 22:53
@kr-igor kr-igor requested review from a team as code owners July 11, 2025 22:53
@kr-igor kr-igor requested a review from smola July 11, 2025 22:53
Copy link
Contributor

github-actions bot commented Jul 11, 2025

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.

@pr-commenter
Copy link

pr-commenter bot commented Jul 11, 2025

Kafka / consumer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master kr-igor/dsm-optimization-v2
git_commit_date 1753099061 1753108644
git_commit_sha b6521fb a836ab6
See matching parameters
Baseline Candidate
ci_job_date 1753109858 1753109858
ci_job_id 1038903819 1038903819
ci_pipeline_id 71182823 71182823
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.25 11.0.25
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/consumer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/go/src/github.com/DataDog/apm-reliability/dd-trace-java/platform/src/consumer-benchmark/build/tmp/jmh -Duser.country=US -Duser.language=en -Duser.variant
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.25+9-post-Ubuntu-1ubuntu122.04 11.0.25+9-post-Ubuntu-1ubuntu122.04

Summary

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

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaConsumerBenchmark.benchConsume same

result.put(DIRECTION_TAG, DIRECTION_OUT);
result.put(TYPE_TAG, "grpc");
return DataStreamsContext.fromTags(result);
return DataStreamsContext.fromTags(
Copy link
Contributor

@dougqh dougqh Jul 14, 2025

Choose a reason for hiding this comment

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

I would avoid builder idioms in the critical path. That's still extra allocation that we really don't need.


public DataStreamsTags(DataStreamsTagsBuilder builder) {
this.builder = builder;
this.size =
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 introducing a capturing lambda. I think a regular loop would probably be better here.

Comment on lines 93 to 102
processor.process(BUS_TAG, this.builder.bus);
count += 1;
}

if (this.builder.direction == Direction.Inbound) {
count += 1;
processor.process(DIRECTION_TAG, DIRECTION_IN);
} else if (this.builder.direction == Direction.Outbound) {
count += 1;
processor.process(DIRECTION_TAG, DIRECTION_OUT);
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggestion: Just a matter of taste, but probably count++; Would be a better option (here and other similar places)?

Comment on lines 286 to 299
+ ","
+ ", kafkaClusterId='"
+ this.builder.kafkaClusterId
+ ","
+ ", partition='"
+ this.builder.partition
+ ","
+ ", hash="
+ hash
+ ","
+ ", aggregationHash="
+ aggregationHash
+ ","
+ ", size="
Copy link
Contributor

Choose a reason for hiding this comment

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

I think this code will produce String with TWO commas. Is that expected?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, you are right... AI autosuggest :D

Copy link
Contributor

Choose a reason for hiding this comment

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

Nice :), just FYI IDEA has toString() method generation too,

result.put(TYPE_TAG, "grpc");
return result;
private static final DataStreamsTags createServerPathwaySortedTags() {
return new DataStreamsTagsBuilder()
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we can probably still keep these pretty clean without needing a builder. I've put suggestions throughout...

  • createGrpcInbound() <-- bonus, that's cacheable

DataStreamsContext dsmContext = DataStreamsContext.fromTags(getTags(eventBusName));
DataStreamsTags tags =
new DataStreamsTagsBuilder()
.withDirection(DataStreamsTags.Direction.Outbound)
Copy link
Contributor

@dougqh dougqh Jul 14, 2025

Choose a reason for hiding this comment

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

createBusOutbound(eventBusName)

sortedTags.put(TagsProcessor.TOPIC_TAG, bucket);
sortedTags.put(TagsProcessor.TYPE_TAG, "s3");
DataStreamsTags tags =
new DataStreamsTagsBuilder()
Copy link
Contributor

Choose a reason for hiding this comment

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

createS3Outbound(bucket, key)

sortedTags.put(TYPE_TAG, "kinesis");
DataStreamsTags tags =
new DataStreamsTagsBuilder()
.withType("kinesis")
Copy link
Contributor

Choose a reason for hiding this comment

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

createKinesisInbound(streamArn)


return sortedTags;
private DataStreamsTags getTags(String snsTopicName) {
return new DataStreamsTagsBuilder()
Copy link
Contributor

Choose a reason for hiding this comment

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

createSnsOutbound(snsTopicName)

Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

If you're in refactoring mode, can you have a look (made in another PR if it's easier) to complete the context refactoring?

In short, PathwayContext should not be stored in span data model (DDSpanContext).
Instead, it must be stored with Context as DataStreamsContext and AgentSpan.
You may create a second Context entry if the DataStreamsContext holds different kind of data (or have a different lifecycle) than what PathwayContext should hold.

I already done some refactoring (adding DataStreamsContext, creating a dedicated DSM propagator) but it miss the last step of moving away PathwayContext from span.
Would that be something you could have a look at? Would you like us to pair on this task? The end goal would be to decouple Tracing from DSM. So you can save even more resources.

if (traceConfig().isDataStreamsEnabled()) {
DataStreamsContext dsmContext = DataStreamsContext.fromTags(getTags(eventBusName));
DataStreamsTags tags =
DataStreamsTags.createWithBus("bus", DataStreamsTags.Direction.Outbound, eventBusName);
Copy link
Contributor

Choose a reason for hiding this comment

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

Why pass "bus" as argument to withBus helper? Is there a case where the value isn't "bus"?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, the type is always bus, no need to pass it here.

private long completeHash;
private int nonNullSize;

// hash tags
Copy link
Contributor

Choose a reason for hiding this comment

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

These should probably be final
Right now, strictly speaking this probably isn't thread safe

kafkaClusterId != null ? KAFKA_CLUSTER_ID_TAG + ":" + kafkaClusterId : null;
this.partition = partition != null ? PARTITION_TAG + ":" + partition : null;

// hashable tags are 0-4
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice, that should unroll and inline nicely

Copy link
Contributor

@dougqh dougqh left a comment

Choose a reason for hiding this comment

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

That's a very nice improvement. Looks good to me.

@kr-igor kr-igor enabled auto-merge (squash) July 21, 2025 16:59
@kr-igor kr-igor merged commit e82c8b5 into master Jul 21, 2025
504 checks passed
@kr-igor kr-igor deleted the kr-igor/dsm-optimization-v2 branch July 21, 2025 20:16
@github-actions github-actions bot added this to the 1.52.0 milestone Jul 21, 2025
kr-igor added a commit that referenced this pull request Jul 22, 2025
)

* DSM optimizations - major refactoring to get rid of LinkedHashMap

* Refactored DSM tags for all integrations

* Removed tests which no longer needed

* Fixed some more tests

* Fixed payload writer tests

* Fixed http tests

* Removed DataStreamsTagsBuilder, updated all integraions and tests

* Spotless apply

* Fixed more tests

* Add base hash support and service name overrides

* Fixed more tests

* Spotless apply

* Added tests for tags

* Improved coverage

* Removed unused imports

* Fixed even more tests

* Updated multiple tests

* Fixed more tests

* Spotless apply

* Fixed even more tests

* Fixed http tests, improved test coverage

* Spotless apply

* One more refactoring

* Some fixes in tests

* Improved test coverage

* Spotless apply

* Removed unused import

* Fixed all tags

* Fixed kafka tests
This was referenced Jul 22, 2025
@PerfectSlayer PerfectSlayer added the tag: performance Performance related changes label Aug 4, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Aug 5, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [redis.clients:jedis](https://github.com/redis/jedis) | dependencies |
misk/gradle/libs.versions.toml | gradle | minor | `6.0.0` -> `6.1.0` |
|
[com.google.api.grpc:proto-google-common-protos](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.59.2` -> `2.60.0` |
|
[com.google.cloud:google-cloud-core-http](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.58.2` -> `2.59.0` |
|
[com.google.cloud:google-cloud-core](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.58.2` -> `2.59.0` |
| [com.google.api:gax](https://github.com/googleapis/sdk-platform-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`2.68.2` -> `2.69.0` |
| [com.squareup.wire](https://github.com/square/wire) | plugin |
misk/gradle/libs.versions.toml | gradle | patch | `5.3.5` -> `5.3.6` |
| [com.squareup.wire:wire-schema](https://github.com/square/wire) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `5.3.5`
-> `5.3.6` |
| [com.squareup.wire:wire-runtime](https://github.com/square/wire) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `5.3.5`
-> `5.3.6` |
| [com.squareup.wire:wire-reflector](https://github.com/square/wire) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `5.3.5`
-> `5.3.6` |
| [com.squareup.wire:wire-moshi-adapter](https://github.com/square/wire)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`5.3.5` -> `5.3.6` |
| [com.squareup.wire:wire-grpc-client](https://github.com/square/wire) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `5.3.5`
-> `5.3.6` |
| [com.squareup.wire:wire-bom](https://github.com/square/wire) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch | `5.3.5`
-> `5.3.6` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.51.2` -> `1.52.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
| [software.amazon.awssdk:regions](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.32.14` -> `2.32.15` |

---

### Release Notes

<details>
<summary>redis/jedis (redis.clients:jedis)</summary>

### [`v6.1.0`](https://github.com/redis/jedis/releases/tag/v6.1.0):
6.1.0

### Changes

#### 🚀 New Features

- Add support for SVS-VAMANA vector indexing
([#&#8203;4222](redis/jedis#4222))
- Clarify why new stream entries aren't deleted with XDELEX
([#&#8203;4218](redis/jedis#4218))
- Add support for new stream commands
([#&#8203;4211](redis/jedis#4211))
- Add Support for New BITOP Operations in Redis 8.2
([#&#8203;4188](redis/jedis#4188))
([#&#8203;4190](redis/jedis#4190))
- Add binary stream support for XREAD and XREADGROUP
([#&#8203;3566](redis/jedis#3566))
([#&#8203;4152](redis/jedis#4152))
- Run pipeline in current thread if all the keys on same node
([#&#8203;4149](redis/jedis#4149))

#### 🐛 Bug Fixes

- Restore binary compatibility of SetParams
([#&#8203;4225](redis/jedis#4225))
- Fix memory leak in JedisClusterInfoCache - replica nodes not cleared
([#&#8203;4205](redis/jedis#4205))
- Fix:JedisCluster throws NullPointerException when maxAttempts is set
to 0 ([#&#8203;4186](redis/jedis#4186))

#### 🧰 Maintenance

- DOC-5471 time series doc examples
([#&#8203;4210](redis/jedis#4210))
- Bump jackson.version from 2.19.1 to 2.19.2
([#&#8203;4208](redis/jedis#4208))
- Fix flaky test ClientCommandsTest.killSkipmeYesNo
([#&#8203;4206](redis/jedis#4206))
- Bump org.junit:junit-bom from 5.13.2 to 5.13.3
([#&#8203;4198](redis/jedis#4198))
- Migrate publishing to Maven Central Portal
([#&#8203;4199](redis/jedis#4199))
- Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.7 to 3.2.8
([#&#8203;4197](redis/jedis#4197))
- Bump org.junit:junit-bom from 5.13.1 to 5.13.2
([#&#8203;4192](redis/jedis#4192))
- DOC-5227 added probabilistic data type examples
([#&#8203;4184](redis/jedis#4184))
- Bump jackson.version from 2.19.0 to 2.19.1
([#&#8203;4180](redis/jedis#4180))
- Update test infra to use latest Redis
([#&#8203;4179](redis/jedis#4179))
- Bump org.junit:junit-bom from 5.13.0-RC1 to 5.13.1
([#&#8203;4174](redis/jedis#4174))
- Bump org.json:json from
[`2025010`](redis/jedis@20250107) to
[`2025051`](redis/jedis@20250517)
([#&#8203;4171](redis/jedis#4171))
- Bump org.apache.httpcomponents.client5:httpclient5-fluent from 5.4.4
to 5.5 ([#&#8203;4170](redis/jedis#4170))
- Fix flaky tests in DocumentTest
([#&#8203;3617](redis/jedis#3617))
- Add retryable command execution example
([#&#8203;3780](redis/jedis#3780))
- Bump jackson.version from 2.18.3 to 2.19.0
([#&#8203;4160](redis/jedis#4160))
- Bump com.google.code.gson:gson from 2.12.1 to 2.13.1
([#&#8203;4161](redis/jedis#4161))

#### Contributors

We'd like to thank all the contributors who worked on this release!

[@&#8203;219sansim](https://github.com/219sansim),
[@&#8203;YoHanKi](https://github.com/YoHanKi),
[@&#8203;andy-stark-redis](https://github.com/andy-stark-redis),
[@&#8203;ggivo](https://github.com/ggivo),
[@&#8203;jujn](https://github.com/jujn),
[@&#8203;thachlp](https://github.com/thachlp),
[@&#8203;uglide](https://github.com/uglide) and
[@&#8203;xrayw](https://github.com/xrayw)

</details>

<details>
<summary>googleapis/sdk-platform-java
(com.google.api.grpc:proto-google-common-protos)</summary>

###
[`v2.60.0`](https://github.com/googleapis/sdk-platform-java/blob/HEAD/CHANGELOG.md#2600-2025-06-23)

##### Features

- handle auto pagination for BigQuery v2
([#&#8203;3829](googleapis/sdk-platform-java#3829))
([025c84c](googleapis/sdk-platform-java@025c84c))

##### Dependencies

- update google auth library dependencies to v1.37.1
([#&#8203;3846](googleapis/sdk-platform-java#3846))
([ea1d9e5](googleapis/sdk-platform-java@ea1d9e5))
- update google http client dependencies to v1.47.1
([#&#8203;3848](googleapis/sdk-platform-java#3848))
([a9a39d7](googleapis/sdk-platform-java@a9a39d7))

</details>

<details>
<summary>square/wire (com.squareup.wire)</summary>

###
[`v5.3.6`](https://github.com/square/wire/blob/HEAD/CHANGELOG.md#Version-536)

[Compare Source](square/wire@5.3.5...5.3.6)

*2025-08-05*

##### CLI

- New CLI option `--ignore_unused_roots_and_prunes`
([#&#8203;3354](square/wire#3354))

##### JVM

- Fix: Handle negative hexadecimal in default values
([#&#8203;3355](square/wire#3355))
- Optimization: Avoid copying of repeated and map types when
mutableTypes are being used
([#&#8203;3352](square/wire#3352) by \[Rahul
Ravikumar]\[tikurahul])

##### Swift

- Fix: Properly disambiguate OneOf enum if it has the same name as
enclosing type
([#&#8203;3350](square/wire#3350) by
\[Dimitris Koutsogiorgas]\[dnkoutso])

</details>

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.52.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.52.0):
1.52.0

### Components

#### Application Security Management (WAF)

- ✨ Only report ASM\_DD, ASM\_DATA and ASM capabilities when
AppSec is enabled
([#&#8203;9260](DataDog/dd-trace-java#9260) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- 🐛 Fix NPE in AppSecConfigServiceImpl
([#&#8203;9165](DataDog/dd-trace-java#9165) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))
- 🐛 Fix AppSec play.mvc.StatusHeader instrumentation for play 2.6
([#&#8203;9160](DataDog/dd-trace-java#9160) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

#### Build & Tooling

- ✨📖 Automatically register crashtracking via native
extensions
([#&#8203;8851](DataDog/dd-trace-java#8851) -
[@&#8203;MattAlp](https://github.com/MattAlp))

#### Configuration at Runtime

- ✨ Create activation origin config for telemetry
([#&#8203;9064](DataDog/dd-trace-java#9064) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

#### Continuous Integration Visibility

- ✨ Update GitLab provided tags
([#&#8203;9275](DataDog/dd-trace-java#9275) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Fix base branch SHA usage in GitHub Actions
([#&#8203;9257](DataDog/dd-trace-java#9257) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add `ci.job.id` tag
([#&#8203;9256](DataDog/dd-trace-java#9256) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add new org to Weaver instrumentation
([#&#8203;9235](DataDog/dd-trace-java#9235) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano) - thanks
for the contribution!)
- ✨ Improve Git commit info building
([#&#8203;9210](DataDog/dd-trace-java#9210) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Update Attempt to Fix to v5
([#&#8203;9145](DataDog/dd-trace-java#9145) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Crash tracking

- ✨📖 Automatically register crashtracking via native
extensions
([#&#8203;8851](DataDog/dd-trace-java#8851) -
[@&#8203;MattAlp](https://github.com/MattAlp))

#### Data Streams Monitoring

- ✨ Reduce DSM CPU overheard
([#&#8203;9151](DataDog/dd-trace-java#9151) -
[@&#8203;kr-igor](https://github.com/kr-igor))
- ✨⚡ DSM optimizations for high throughput scenarios
([#&#8203;9137](DataDog/dd-trace-java#9137) -
[@&#8203;kr-igor](https://github.com/kr-igor))

#### Database Monitoring

- 🐛 Fix duplicate trace injection for SQL Server and Oracle DBM full
propagation mode
([#&#8203;9224](DataDog/dd-trace-java#9224) -
[@&#8203;lu-zhengda](https://github.com/lu-zhengda))

#### Dynamic Instrumentation

- 🐛 Add URI in string primitives
([#&#8203;9285](DataDog/dd-trace-java#9285) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Increase SourceFile tracking max queue size
([#&#8203;9271](DataDog/dd-trace-java#9271) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add capping on SourceFile tracking queue
([#&#8203;9245](DataDog/dd-trace-java#9245) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add third-party filtering in SourceFile tracking
([#&#8203;9205](DataDog/dd-trace-java#9205) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### ML Observability (LLMObs)

- ✨ Add methods to capture embedding and retrieval spans
([#&#8203;9297](DataDog/dd-trace-java#9297) -
[@&#8203;nayeem-kamal](https://github.com/nayeem-kamal))

#### Metrics

- ✨ Change primary client stats configuration key
([#&#8203;9196](DataDog/dd-trace-java#9196) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Calculate client stats also if the span kind is eligible
([#&#8203;9157](DataDog/dd-trace-java#9157) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Backpropagate peer tags
([#&#8203;9144](DataDog/dd-trace-java#9144) -
[@&#8203;bric3](https://github.com/bric3))
- 🐛 Make client stats reliable in case of downgrade
([#&#8203;9136](DataDog/dd-trace-java#9136) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Platform components

- 🐛 Fix VM options parsing from /proc/fs
([#&#8203;9255](DataDog/dd-trace-java#9255) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Profiling

- ✨ Switch profile compression to zstd default
([#&#8203;9293](DataDog/dd-trace-java#9293) -
[@&#8203;jbachorik](https://github.com/jbachorik))

- ✨ Bump ddprof to 1.29.0
([#&#8203;9262](DataDog/dd-trace-java#9262) -
[@&#8203;zhengyu123](https://github.com/zhengyu123))
- Potential memory leak and race with the JVMTI wallclock sampler by
[@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#234
- Downport async-profiler no-allocation changes by
[@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#245
- Adopt openjdk safefetch by
[@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#246
- Safe fetch 64-bit value and pointer by
[@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#247
- Rebase on Async-Profiler 4.1 by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#252
- Patch upstream stackWalker.cpp not to fail on unaligned access by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#218
- Remap thread id to avoid bitmap contention by
[@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#229
- Improve performance using Unsafe to activate/deactivate thread filter
by [@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#230
- Unify context propagation by
[@&#8203;zhengyu123](https://github.com/zhengyu123) in
DataDog/java-profiler#231

- 🐛 Fix the profiler stackdepth setting propagation in recent (22+)
Java versions
([#&#8203;9130](DataDog/dd-trace-java#9130) -
[@&#8203;jbachorik](https://github.com/jbachorik))

#### Realtime User Monitoring

- ✨ Wrap servlet original PrintWriter on rum injector
([#&#8203;9146](DataDog/dd-trace-java#9146) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Telemetry

- ✨ Create activation origin config for telemetry
([#&#8203;9064](DataDog/dd-trace-java#9064) -
[@&#8203;sezen-datadog](https://github.com/sezen-datadog))

#### Tracer core

- ✨⚡ Reduce span construction overhead by switching to
optimized TagMap
([#&#8203;8589](DataDog/dd-trace-java#8589) -
[@&#8203;dougqh](https://github.com/dougqh))
- 🐛 Match Hands Off Config selectors on process\_arguments value
([#&#8203;9201](DataDog/dd-trace-java#9201) -
[@&#8203;paullegranddc](https://github.com/paullegranddc))
- ✨ Move JSON generation to sender thread to improve startup
time.
([#&#8203;9197](DataDog/dd-trace-java#9197) -
[@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD))
- ✨ Improve agent to avoid loading global config on main thread
([#&#8203;9190](DataDog/dd-trace-java#9190) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ add injection metadata fields to telemetry forwarder
([#&#8203;9185](DataDog/dd-trace-java#9185) -
[@&#8203;sydney-tung](https://github.com/sydney-tung))
- 🐛 Avoid race conditions on feature discovery during Writer
creation
([#&#8203;9173](DataDog/dd-trace-java#9173) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Surface potential root cause when agent initialization
errors
([#&#8203;9170](DataDog/dd-trace-java#9170) -
[@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD))
- 💡 Support adding W3C baggage as span tags
([#&#8203;9169](DataDog/dd-trace-java#9169) -
[@&#8203;rachelyangdog](https://github.com/rachelyangdog))
- ✨⚡ Align our default classloader excludes with OTel
([#&#8203;9161](DataDog/dd-trace-java#9161) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Backpropagate container tags hash coming from the info
endpoint
([#&#8203;9156](DataDog/dd-trace-java#9156) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Avoid race conditions and multiple agent discovery feature
states
([#&#8203;9135](DataDog/dd-trace-java#9135) -
[@&#8203;amarziali](https://github.com/amarziali))

### Instrumentations

#### AWS SDK instrumentation

- ✨ Enhance Service Representation for Serverless
([#&#8203;9203](DataDog/dd-trace-java#9203) -
[@&#8203;zarirhamza](https://github.com/zarirhamza))

#### gRPC instrumentation

- 🐛 Add check to prevent injection of repeated GRPC headers
([#&#8203;9246](DataDog/dd-trace-java#9246) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### JDBC instrumentation

- 🐛 Fix duplicate trace injection for SQL Server and Oracle DBM full
propagation mode
([#&#8203;9224](DataDog/dd-trace-java#9224) -
[@&#8203;lu-zhengda](https://github.com/lu-zhengda))

#### Play Framework instrumentation

- 🐛 Fix AppSec play.mvc.StatusHeader instrumentation for play 2.6
([#&#8203;9160](DataDog/dd-trace-java#9160) -
[@&#8203;manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 9da36329ffa552291a640381780b608ef6513e29
ygree added a commit that referenced this pull request Aug 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: data streams Data Streams Monitoring tag: performance Performance related changes type: enhancement Enhancements and improvements
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants