Skip to content

Ensure ClassloadingInstrumentation is always applied even with DD_TRACE_ENABLED=false #8863

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

mcculls
Copy link
Contributor

@mcculls mcculls commented May 21, 2025

Motivation

This avoids potential class-loading delegation issues when using other products in dd-java-agent

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@mcculls mcculls added type: enhancement inst: java Core Java language instrumentation labels May 21, 2025
@pr-commenter
Copy link

pr-commenter bot commented May 21, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/classloader-delegation-instrumentation-independent-of-tracing
git_commit_date 1747843428 1747862031
git_commit_sha 58089f3 9670fbf
release_version 1.50.0-SNAPSHOT~58089f324f 1.50.0-SNAPSHOT~9670fbf555
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1747864527 1747864527
ci_job_id 949218892 949218892
ci_pipeline_id 65800006 65800006
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-xfgrdzbb-project-304-concurrent-0-mk8gi6s5 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-xfgrdzbb-project-304-concurrent-0-mk8gi6s5 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

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

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.02 s) : 0, 1019908
Total [baseline] (10.507 s) : 0, 10507350
Agent [candidate] (1.024 s) : 0, 1024101
Total [candidate] (10.465 s) : 0, 10465353
section appsec
Agent [baseline] (1.162 s) : 0, 1162124
Total [baseline] (10.729 s) : 0, 10728547
Agent [candidate] (1.17 s) : 0, 1170170
Total [candidate] (10.704 s) : 0, 10704118
section iast
Agent [baseline] (1.152 s) : 0, 1152103
Total [baseline] (10.872 s) : 0, 10871856
Agent [candidate] (1.158 s) : 0, 1158480
Total [candidate] (10.997 s) : 0, 10996980
section profiling
Agent [baseline] (1.265 s) : 0, 1265157
Total [baseline] (10.844 s) : 0, 10844042
Agent [candidate] (1.274 s) : 0, 1274043
Total [candidate] (10.885 s) : 0, 10885162
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.02 s -
Agent appsec 1.162 s 142.216 ms (13.9%)
Agent iast 1.152 s 132.195 ms (13.0%)
Agent profiling 1.265 s 245.249 ms (24.0%)
Total tracing 10.507 s -
Total appsec 10.729 s 221.197 ms (2.1%)
Total iast 10.872 s 364.506 ms (3.5%)
Total profiling 10.844 s 336.692 ms (3.2%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.024 s -
Agent appsec 1.17 s 146.069 ms (14.3%)
Agent iast 1.158 s 134.378 ms (13.1%)
Agent profiling 1.274 s 249.941 ms (24.4%)
Total tracing 10.465 s -
Total appsec 10.704 s 238.765 ms (2.3%)
Total iast 10.997 s 531.627 ms (5.1%)
Total profiling 10.885 s 419.809 ms (4.0%)
gantt
    title petclinic - break down per module: candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (683.853 ms) : 0, 683853
BytebuddyAgent [candidate] (685.772 ms) : 0, 685772
GlobalTracer [baseline] (240.489 ms) : 0, 240489
GlobalTracer [candidate] (241.115 ms) : 0, 241115
AppSec [baseline] (55.061 ms) : 0, 55061
AppSec [candidate] (55.427 ms) : 0, 55427
Debugger [baseline] (6.975 ms) : 0, 6975
Debugger [candidate] (6.889 ms) : 0, 6889
Remote Config [baseline] (710.338 µs) : 0, 710
Remote Config [candidate] (716.498 µs) : 0, 716
Telemetry [baseline] (9.177 ms) : 0, 9177
Telemetry [candidate] (10.508 ms) : 0, 10508
section appsec
BytebuddyAgent [baseline] (701.179 ms) : 0, 701179
BytebuddyAgent [candidate] (706.678 ms) : 0, 706678
GlobalTracer [baseline] (236.94 ms) : 0, 236940
GlobalTracer [candidate] (238.23 ms) : 0, 238230
IAST [baseline] (21.804 ms) : 0, 21804
IAST [candidate] (21.819 ms) : 0, 21819
AppSec [baseline] (175.15 ms) : 0, 175150
AppSec [candidate] (176.206 ms) : 0, 176206
Debugger [baseline] (6.35 ms) : 0, 6350
Debugger [candidate] (5.962 ms) : 0, 5962
Remote Config [baseline] (634.447 µs) : 0, 634
Remote Config [candidate] (645.589 µs) : 0, 646
Telemetry [baseline] (7.398 ms) : 0, 7398
Telemetry [candidate] (7.838 ms) : 0, 7838
section iast
BytebuddyAgent [baseline] (804.238 ms) : 0, 804238
BytebuddyAgent [candidate] (808.551 ms) : 0, 808551
GlobalTracer [baseline] (230.953 ms) : 0, 230953
GlobalTracer [candidate] (232.626 ms) : 0, 232626
IAST [baseline] (27.552 ms) : 0, 27552
IAST [candidate] (29.367 ms) : 0, 29367
AppSec [baseline] (51.345 ms) : 0, 51345
AppSec [candidate] (49.577 ms) : 0, 49577
Debugger [baseline] (5.928 ms) : 0, 5928
Debugger [candidate] (5.991 ms) : 0, 5991
Remote Config [baseline] (604.067 µs) : 0, 604
Remote Config [candidate] (613.596 µs) : 0, 614
Telemetry [baseline] (7.868 ms) : 0, 7868
Telemetry [candidate] (7.975 ms) : 0, 7975
section profiling
BytebuddyAgent [baseline] (673.656 ms) : 0, 673656
BytebuddyAgent [candidate] (679.291 ms) : 0, 679291
GlobalTracer [baseline] (360.532 ms) : 0, 360532
GlobalTracer [candidate] (361.657 ms) : 0, 361657
AppSec [baseline] (61.869 ms) : 0, 61869
AppSec [candidate] (62.454 ms) : 0, 62454
Debugger [baseline] (6.261 ms) : 0, 6261
Debugger [candidate] (6.327 ms) : 0, 6327
Remote Config [baseline] (657.25 µs) : 0, 657
Remote Config [candidate] (672.019 µs) : 0, 672
Telemetry [baseline] (8.22 ms) : 0, 8220
Telemetry [candidate] (8.32 ms) : 0, 8320
ProfilingAgent [baseline] (102.992 ms) : 0, 102992
ProfilingAgent [candidate] (104.016 ms) : 0, 104016
Profiling [baseline] (103.016 ms) : 0, 103016
Profiling [candidate] (104.04 ms) : 0, 104040
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.019 s) : 0, 1019330
Total [baseline] (8.646 s) : 0, 8646069
Agent [candidate] (1.021 s) : 0, 1021174
Total [candidate] (8.631 s) : 0, 8630974
section iast
Agent [baseline] (1.15 s) : 0, 1149643
Total [baseline] (9.218 s) : 0, 9217725
Agent [candidate] (1.164 s) : 0, 1164334
Total [candidate] (9.248 s) : 0, 9248042
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.15 s) : 0, 1149653
Total [baseline] (9.211 s) : 0, 9211128
Agent [candidate] (1.149 s) : 0, 1149184
Total [candidate] (9.152 s) : 0, 9152459
section iast_TELEMETRY_OFF
Agent [baseline] (1.147 s) : 0, 1147270
Total [baseline] (9.212 s) : 0, 9212084
Agent [candidate] (1.152 s) : 0, 1152404
Total [candidate] (9.266 s) : 0, 9266328
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.019 s -
Agent iast 1.15 s 130.313 ms (12.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.15 s 130.324 ms (12.8%)
Agent iast_TELEMETRY_OFF 1.147 s 127.94 ms (12.6%)
Total tracing 8.646 s -
Total iast 9.218 s 571.656 ms (6.6%)
Total iast_HARDCODED_SECRET_DISABLED 9.211 s 565.059 ms (6.5%)
Total iast_TELEMETRY_OFF 9.212 s 566.016 ms (6.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.021 s -
Agent iast 1.164 s 143.16 ms (14.0%)
Agent iast_HARDCODED_SECRET_DISABLED 1.149 s 128.01 ms (12.5%)
Agent iast_TELEMETRY_OFF 1.152 s 131.23 ms (12.9%)
Total tracing 8.631 s -
Total iast 9.248 s 617.068 ms (7.1%)
Total iast_HARDCODED_SECRET_DISABLED 9.152 s 521.485 ms (6.0%)
Total iast_TELEMETRY_OFF 9.266 s 635.353 ms (7.4%)
gantt
    title insecure-bank - break down per module: candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (682.658 ms) : 0, 682658
BytebuddyAgent [candidate] (681.918 ms) : 0, 681918
GlobalTracer [baseline] (239.909 ms) : 0, 239909
GlobalTracer [candidate] (240.155 ms) : 0, 240155
AppSec [baseline] (54.347 ms) : 0, 54347
AppSec [candidate] (54.51 ms) : 0, 54510
Debugger [baseline] (6.883 ms) : 0, 6883
Debugger [candidate] (10.51 ms) : 0, 10510
Remote Config [baseline] (719.68 µs) : 0, 720
Remote Config [candidate] (712.746 µs) : 0, 713
Telemetry [baseline] (11.362 ms) : 0, 11362
Telemetry [candidate] (9.807 ms) : 0, 9807
section iast
BytebuddyAgent [baseline] (802.918 ms) : 0, 802918
BytebuddyAgent [candidate] (812.956 ms) : 0, 812956
GlobalTracer [baseline] (230.236 ms) : 0, 230236
GlobalTracer [candidate] (233.249 ms) : 0, 233249
IAST [baseline] (28.944 ms) : 0, 28944
IAST [candidate] (27.365 ms) : 0, 27365
AppSec [baseline] (48.743 ms) : 0, 48743
AppSec [candidate] (50.075 ms) : 0, 50075
Debugger [baseline] (5.933 ms) : 0, 5933
Debugger [candidate] (6.052 ms) : 0, 6052
Remote Config [baseline] (605.547 µs) : 0, 606
Remote Config [candidate] (593.992 µs) : 0, 594
Telemetry [baseline] (7.91 ms) : 0, 7910
Telemetry [candidate] (7.974 ms) : 0, 7974
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (801.766 ms) : 0, 801766
BytebuddyAgent [candidate] (801.601 ms) : 0, 801601
GlobalTracer [baseline] (230.828 ms) : 0, 230828
GlobalTracer [candidate] (230.725 ms) : 0, 230725
IAST [baseline] (27.756 ms) : 0, 27756
IAST [candidate] (28.74 ms) : 0, 28740
AppSec [baseline] (51.323 ms) : 0, 51323
AppSec [candidate] (49.46 ms) : 0, 49460
Debugger [baseline] (5.89 ms) : 0, 5890
Debugger [candidate] (5.905 ms) : 0, 5905
Remote Config [baseline] (587.94 µs) : 0, 588
Remote Config [candidate] (594.268 µs) : 0, 594
Telemetry [baseline] (7.923 ms) : 0, 7923
Telemetry [candidate] (7.894 ms) : 0, 7894
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (799.293 ms) : 0, 799293
BytebuddyAgent [candidate] (804.385 ms) : 0, 804385
GlobalTracer [baseline] (230.73 ms) : 0, 230730
GlobalTracer [candidate] (231.839 ms) : 0, 231839
IAST [baseline] (22.481 ms) : 0, 22481
IAST [candidate] (23.294 ms) : 0, 23294
AppSec [baseline] (56.787 ms) : 0, 56787
AppSec [candidate] (54.864 ms) : 0, 54864
Debugger [baseline] (5.997 ms) : 0, 5997
Debugger [candidate] (5.958 ms) : 0, 5958
Remote Config [baseline] (597.113 µs) : 0, 597
Remote Config [candidate] (612.122 µs) : 0, 612
Telemetry [baseline] (7.78 ms) : 0, 7780
Telemetry [candidate] (7.808 ms) : 0, 7808
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-05-21T21:25:45 2025-05-21T21:33:30
git_branch master mcculls/classloader-delegation-instrumentation-independent-of-tracing
git_commit_date 1747843428 1747862031
git_commit_sha 58089f3 9670fbf
release_version 1.50.0-SNAPSHOT~58089f324f 1.50.0-SNAPSHOT~9670fbf555
start_time 2025-05-21T21:25:30 2025-05-21T21:33:16
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1747863611 1747863611
ci_job_id 949218893 949218893
ci_pipeline_id 65800006 65800006
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-qzhj-cns-project-304-concurrent-0-8ri23pjx 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-qzhj-cns-project-304-concurrent-0-8ri23pjx 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

Found 0 performance improvements and 1 performance regressions! Performance is the same for 11 metrics, 18 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:profiling worse
[+31.139µs; +83.801µs] or [+2.034%; +5.474%]
unstable
[-627.312op/s; +399.392op/s] or [-20.388%; +12.980%]
1.588ms 2962.963op/s 1.531ms 3076.923op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f
    dateFormat X
    axisFormat %s
section baseline
no_agent (393.878 µs) : 374, 414
.   : milestone, 394,
iast (527.108 µs) : 504, 550
.   : milestone, 527,
iast_FULL (738.291 µs) : 716, 760
.   : milestone, 738,
iast_GLOBAL (567.056 µs) : 545, 589
.   : milestone, 567,
iast_HARDCODED_SECRET_DISABLED (531.683 µs) : 509, 555
.   : milestone, 532,
iast_INACTIVE (468.129 µs) : 446, 491
.   : milestone, 468,
iast_TELEMETRY_OFF (504.919 µs) : 482, 528
.   : milestone, 505,
tracing (465.364 µs) : 443, 488
.   : milestone, 465,
section candidate
no_agent (390.676 µs) : 370, 411
.   : milestone, 391,
iast (524.266 µs) : 501, 547
.   : milestone, 524,
iast_FULL (739.815 µs) : 718, 762
.   : milestone, 740,
iast_GLOBAL (574.224 µs) : 552, 597
.   : milestone, 574,
iast_HARDCODED_SECRET_DISABLED (515.336 µs) : 493, 538
.   : milestone, 515,
iast_INACTIVE (463.804 µs) : 443, 485
.   : milestone, 464,
iast_TELEMETRY_OFF (526.493 µs) : 503, 550
.   : milestone, 526,
tracing (467.673 µs) : 445, 490
.   : milestone, 468,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 393.878 µs [373.846 µs, 413.91 µs] -
iast 527.108 µs [503.818 µs, 550.398 µs] 133.23 µs (33.8%)
iast_FULL 738.291 µs [716.178 µs, 760.404 µs] 344.413 µs (87.4%)
iast_GLOBAL 567.056 µs [544.981 µs, 589.131 µs] 173.178 µs (44.0%)
iast_HARDCODED_SECRET_DISABLED 531.683 µs [508.813 µs, 554.553 µs] 137.805 µs (35.0%)
iast_INACTIVE 468.129 µs [445.61 µs, 490.648 µs] 74.251 µs (18.9%)
iast_TELEMETRY_OFF 504.919 µs [482.147 µs, 527.692 µs] 111.041 µs (28.2%)
tracing 465.364 µs [442.897 µs, 487.832 µs] 71.486 µs (18.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 390.676 µs [369.974 µs, 411.377 µs] -
iast 524.266 µs [501.307 µs, 547.225 µs] 133.59 µs (34.2%)
iast_FULL 739.815 µs [717.837 µs, 761.793 µs] 349.139 µs (89.4%)
iast_GLOBAL 574.224 µs [551.92 µs, 596.529 µs] 183.549 µs (47.0%)
iast_HARDCODED_SECRET_DISABLED 515.336 µs [492.996 µs, 537.676 µs] 124.66 µs (31.9%)
iast_INACTIVE 463.804 µs [442.804 µs, 484.804 µs] 73.129 µs (18.7%)
iast_TELEMETRY_OFF 526.493 µs [502.948 µs, 550.037 µs] 135.817 µs (34.8%)
tracing 467.673 µs [444.958 µs, 490.388 µs] 76.997 µs (19.7%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.369 ms) : 1349, 1389
.   : milestone, 1369,
appsec (1.738 ms) : 1714, 1762
.   : milestone, 1738,
appsec_no_iast (1.739 ms) : 1716, 1762
.   : milestone, 1739,
code_origins (1.671 ms) : 1645, 1698
.   : milestone, 1671,
iast (1.52 ms) : 1497, 1544
.   : milestone, 1520,
profiling (1.531 ms) : 1508, 1554
.   : milestone, 1531,
tracing (1.497 ms) : 1472, 1521
.   : milestone, 1497,
section candidate
no_agent (1.367 ms) : 1347, 1387
.   : milestone, 1367,
appsec (1.749 ms) : 1725, 1773
.   : milestone, 1749,
appsec_no_iast (1.752 ms) : 1729, 1775
.   : milestone, 1752,
code_origins (1.663 ms) : 1636, 1690
.   : milestone, 1663,
iast (1.528 ms) : 1504, 1551
.   : milestone, 1528,
profiling (1.588 ms) : 1563, 1614
.   : milestone, 1588,
tracing (1.509 ms) : 1484, 1534
.   : milestone, 1509,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.369 ms [1.349 ms, 1.389 ms] -
appsec 1.738 ms [1.714 ms, 1.762 ms] 369.102 µs (27.0%)
appsec_no_iast 1.739 ms [1.716 ms, 1.762 ms] 369.87 µs (27.0%)
code_origins 1.671 ms [1.645 ms, 1.698 ms] 302.28 µs (22.1%)
iast 1.52 ms [1.497 ms, 1.544 ms] 151.295 µs (11.1%)
profiling 1.531 ms [1.508 ms, 1.554 ms] 161.959 µs (11.8%)
tracing 1.497 ms [1.472 ms, 1.521 ms] 127.66 µs (9.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.367 ms [1.347 ms, 1.387 ms] -
appsec 1.749 ms [1.725 ms, 1.773 ms] 381.915 µs (27.9%)
appsec_no_iast 1.752 ms [1.729 ms, 1.775 ms] 385.068 µs (28.2%)
code_origins 1.663 ms [1.636 ms, 1.69 ms] 295.437 µs (21.6%)
iast 1.528 ms [1.504 ms, 1.551 ms] 160.323 µs (11.7%)
profiling 1.588 ms [1.563 ms, 1.614 ms] 221.278 µs (16.2%)
tracing 1.509 ms [1.484 ms, 1.534 ms] 141.676 µs (10.4%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/classloader-delegation-instrumentation-independent-of-tracing
git_commit_date 1747843428 1747862031
git_commit_sha 58089f3 9670fbf
release_version 1.50.0-SNAPSHOT~58089f324f 1.50.0-SNAPSHOT~9670fbf555
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1747864020 1747864020
ci_job_id 949218894 949218894
ci_pipeline_id 65800006 65800006
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-vhwr7gmc-project-304-concurrent-0-2iwpc7sh 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-vhwr7gmc-project-304-concurrent-0-2iwpc7sh 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant appsec appsec

Summary

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

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.481 ms) : 1470, 1493
.   : milestone, 1481,
appsec (2.413 ms) : 2364, 2462
.   : milestone, 2413,
iast (2.198 ms) : 2136, 2259
.   : milestone, 2198,
iast_GLOBAL (2.232 ms) : 2170, 2294
.   : milestone, 2232,
profiling (2.033 ms) : 1985, 2082
.   : milestone, 2033,
tracing (2.028 ms) : 1980, 2076
.   : milestone, 2028,
section candidate
no_agent (1.48 ms) : 1468, 1491
.   : milestone, 1480,
appsec (2.417 ms) : 2368, 2465
.   : milestone, 2417,
iast (2.202 ms) : 2139, 2264
.   : milestone, 2202,
iast_GLOBAL (2.232 ms) : 2170, 2293
.   : milestone, 2232,
profiling (2.035 ms) : 1986, 2084
.   : milestone, 2035,
tracing (2.041 ms) : 1992, 2089
.   : milestone, 2041,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.481 ms [1.47 ms, 1.493 ms] -
appsec 2.413 ms [2.364 ms, 2.462 ms] 931.354 µs (62.9%)
iast 2.198 ms [2.136 ms, 2.259 ms] 716.32 µs (48.4%)
iast_GLOBAL 2.232 ms [2.17 ms, 2.294 ms] 750.812 µs (50.7%)
profiling 2.033 ms [1.985 ms, 2.082 ms] 551.762 µs (37.2%)
tracing 2.028 ms [1.98 ms, 2.076 ms] 546.324 µs (36.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.48 ms [1.468 ms, 1.491 ms] -
appsec 2.417 ms [2.368 ms, 2.465 ms] 936.877 µs (63.3%)
iast 2.202 ms [2.139 ms, 2.264 ms] 721.756 µs (48.8%)
iast_GLOBAL 2.232 ms [2.17 ms, 2.293 ms] 751.675 µs (50.8%)
profiling 2.035 ms [1.986 ms, 2.084 ms] 554.778 µs (37.5%)
tracing 2.041 ms [1.992 ms, 2.089 ms] 560.645 µs (37.9%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~9670fbf555, baseline=1.50.0-SNAPSHOT~58089f324f
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.451 s) : 15451000, 15451000
.   : milestone, 15451000,
appsec (15.017 s) : 15017000, 15017000
.   : milestone, 15017000,
iast (18.334 s) : 18334000, 18334000
.   : milestone, 18334000,
iast_GLOBAL (18.073 s) : 18073000, 18073000
.   : milestone, 18073000,
profiling (14.946 s) : 14946000, 14946000
.   : milestone, 14946000,
tracing (14.863 s) : 14863000, 14863000
.   : milestone, 14863000,
section candidate
no_agent (15.458 s) : 15458000, 15458000
.   : milestone, 15458000,
appsec (14.796 s) : 14796000, 14796000
.   : milestone, 14796000,
iast (19.105 s) : 19105000, 19105000
.   : milestone, 19105000,
iast_GLOBAL (18.265 s) : 18265000, 18265000
.   : milestone, 18265000,
profiling (15.132 s) : 15132000, 15132000
.   : milestone, 15132000,
tracing (14.953 s) : 14953000, 14953000
.   : milestone, 14953000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.451 s [15.451 s, 15.451 s] -
appsec 15.017 s [15.017 s, 15.017 s] -434.0 ms (-2.8%)
iast 18.334 s [18.334 s, 18.334 s] 2.883 s (18.7%)
iast_GLOBAL 18.073 s [18.073 s, 18.073 s] 2.622 s (17.0%)
profiling 14.946 s [14.946 s, 14.946 s] -505.0 ms (-3.3%)
tracing 14.863 s [14.863 s, 14.863 s] -588.0 ms (-3.8%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.458 s [15.458 s, 15.458 s] -
appsec 14.796 s [14.796 s, 14.796 s] -662.0 ms (-4.3%)
iast 19.105 s [19.105 s, 19.105 s] 3.647 s (23.6%)
iast_GLOBAL 18.265 s [18.265 s, 18.265 s] 2.807 s (18.2%)
profiling 15.132 s [15.132 s, 15.132 s] -326.0 ms (-2.1%)
tracing 14.953 s [14.953 s, 14.953 s] -505.0 ms (-3.3%)

…CE_ENABLED=false

This avoids potential class-loading delegation issues when using other products in dd-java-agent
@mcculls mcculls force-pushed the mcculls/classloader-delegation-instrumentation-independent-of-tracing branch from 54f795e to 9670fbf Compare May 21, 2025 21:13
@mcculls mcculls marked this pull request as ready for review May 21, 2025 22:35
@mcculls mcculls requested a review from a team as a code owner May 21, 2025 22:35
@mcculls mcculls enabled auto-merge (squash) May 21, 2025 22:35
@mcculls mcculls merged commit 43d6612 into master May 22, 2025
591 of 592 checks passed
@mcculls mcculls deleted the mcculls/classloader-delegation-instrumentation-independent-of-tracing branch May 22, 2025 06:53
@github-actions github-actions bot added this to the 1.50.0 milestone May 22, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jun 20, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.49.0` -> `1.50.0` |

---

### Release Notes

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

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

### Deprecation Notice

> \[!NOTE]
> `DD_RUNTIME_ID_ENABLED` has been deprecated and will be removed in
future releases. Please use `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED`
instead.

### Components

#### Application Security Management (WAF)

- 🐛 Add String length truncation limit to ObjectIntrospector and
update truncation metrics
([#&#8203;8825](DataDog/dd-trace-java#8825) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Adapt standalone ASM to support API Security
([#&#8203;8804](DataDog/dd-trace-java#8804) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Add appsec.waf.input\_truncated metric
([#&#8203;8791](DataDog/dd-trace-java#8791) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request body collection
([#&#8203;8748](DataDog/dd-trace-java#8748) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request/response headers collection
([#&#8203;8724](DataDog/dd-trace-java#8724) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Build & Tooling

- ✨ Add artifacts to public s3 bucket
([#&#8203;8947](DataDog/dd-trace-java#8947) -
[@&#8203;randomanderson](https://github.com/randomanderson))

#### Continuous Integration Visibility

- ✨ Improve PR information building
([#&#8203;8908](DataDog/dd-trace-java#8908) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Truncate span stack traces when Test Optimization is
enabled
([#&#8203;8903](DataDog/dd-trace-java#8903) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Ensure auto-detected service name is the same for every process
in the same build
([#&#8203;8902](DataDog/dd-trace-java#8902) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Use tag as fallback in api requests if no branch is available
([#&#8203;8876](DataDog/dd-trace-java#8876) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add support for JUnit 5.13-RC1
([#&#8203;8865](DataDog/dd-trace-java#8865),
[#&#8203;8871](DataDog/dd-trace-java#8871) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement attempt to fix v3 and v4 and bump capability
version
([#&#8203;8824](DataDog/dd-trace-java#8824) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🧹 Align retry logic for all test framework instrumentations
([#&#8203;8803](DataDog/dd-trace-java#8803) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Always build ci workspace without trailing separator
([#&#8203;8788](DataDog/dd-trace-java#8788) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add commit discrepancies telemetry when building repository
git information
([#&#8203;8763](DataDog/dd-trace-java#8763) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Data Streams Monitoring

- 💡 Surface process tags in dsm payloads and use them for base hash
calculation
([#&#8203;8836](DataDog/dd-trace-java#8836) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Dynamic Instrumentation

- ✨ Optimized allocations for collection filter functions
([#&#8203;8896](DataDog/dd-trace-java#8896) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix SymDB upload size check
([#&#8203;8887](DataDog/dd-trace-java#8887) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for Set in filter function
([#&#8203;8873](DataDog/dd-trace-java#8873) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for isDefined in log template
([#&#8203;8859](DataDog/dd-trace-java#8859) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix Max captured frames for Exception Replay
([#&#8203;8856](DataDog/dd-trace-java#8856) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Remove static inherited fields collection
([#&#8203;8832](DataDog/dd-trace-java#8832) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 💡 Add process tags to dynamic instrumentation intake payload
([#&#8203;8779](DataDog/dd-trace-java#8779) -
[@&#8203;amarziali](https://github.com/amarziali))

#### GraalVM native-image

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Add JMXFetch support for GraalVM Native
([#&#8203;8569](DataDog/dd-trace-java#8569) -
[@&#8203;ygree](https://github.com/ygree))

#### JMX fetch

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))

#### Library Injection

- ✨ Deny oracle db jvm based tools
([#&#8203;8909](DataDog/dd-trace-java#8909) -
[@&#8203;bric3](https://github.com/bric3))

#### OpenTracing

- 🐛 Fix OT packaging for exception replay
([#&#8203;8912](DataDog/dd-trace-java#8912) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### Profiling

- ✨ Bump ddprof to 1.27.0
([#&#8203;8893](DataDog/dd-trace-java#8893) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- Properly handle the adaptive sampling interval overflow by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#213
- Fix [#&#8203;200](DataDog/dd-trace-java#200)
Crash related to aligned\_alloc and free in context by
[@&#8203;yanglong1010](https://github.com/yanglong1010) in
DataDog/java-profiler#208
- Explicitly initialize empty context page by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#210
- Re-connect crash recursion protection with VM stackwalker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#214
- ✨ Enable ZSTD compression for profiling
([#&#8203;8862](DataDog/dd-trace-java#8862) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 💡 Collect process tags for profiling upload requests
([#&#8203;8780](DataDog/dd-trace-java#8780) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Telemetry

- 💡 Surface process tags on telemetry payloads
([#&#8203;8837](DataDog/dd-trace-java#8837) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Trace context propagation

- ✨ Migrating all HttpClient Instrumentations to Inject Full
Context
([#&#8203;8826](DataDog/dd-trace-java#8826) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Migrating all HttpServer Instrumentations to Extract full
Context
([#&#8203;8820](DataDog/dd-trace-java#8820) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer core

- ✨⚡ Skip JAXB generated classes classloader
([#&#8203;9003](DataDog/dd-trace-java#9003) -
[@&#8203;bric3](https://github.com/bric3))
- ✨ Add DD\_RUNTIME\_METRICS\_RUNTIME\_ID\_ENABLED alias for
runtime id generation
([#&#8203;8981](DataDog/dd-trace-java#8981) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Use resolved address for peer.hostname when available without
hitting the cache
([#&#8203;8915](DataDog/dd-trace-java#8915) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface server name process tag for tomcat
([#&#8203;8894](DataDog/dd-trace-java#8894) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface websphere cell and server name on process tags
([#&#8203;8880](DataDog/dd-trace-java#8880) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Added special lightweight pre-main class that skips
installation on incompatible JVMs.
([#&#8203;8855](DataDog/dd-trace-java#8855) -
[@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD))
- 💡 Add entrypoint type to process tags
([#&#8203;8839](DataDog/dd-trace-java#8839) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Notify listeners when the scope top changes after switching
scope stacks
([#&#8203;8797](DataDog/dd-trace-java#8797) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Read hsperfdata for Java PIDs if jvmstat is unavailable
([#&#8203;8792](DataDog/dd-trace-java#8792) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Turn JDK socket support on by default
([#&#8203;8752](DataDog/dd-trace-java#8752) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Simplify context propagation
([#&#8203;8719](DataDog/dd-trace-java#8719) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Add JSON parsing support
([#&#8203;8579](DataDog/dd-trace-java#8579) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer internal logging

- ✨ Fix printing format of span identifiers
([#&#8203;8897](DataDog/dd-trace-java#8897) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Tracer public API

- 💡 Track the source of installation
([#&#8203;8956](DataDog/dd-trace-java#8956) -
[@&#8203;mabdinur](https://github.com/mabdinur))
- ✨ Enforce size limit on application\_monitoring.yaml files
([#&#8203;8789](DataDog/dd-trace-java#8789) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Enabling baggage cache to support limits and non-ascii
characters
([#&#8203;8713](DataDog/dd-trace-java#8713) -
[@&#8203;mhlidd](https://github.com/mhlidd))

### Instrumentations

#### AWS Lambda instrumentation

- ✨ Pass Lambda Request ID to Extension
([#&#8203;8814](DataDog/dd-trace-java#8814) -
[@&#8203;nhulston](https://github.com/nhulston))

#### Core Java language instrumentation

- ✨ Ensure ClassloadingInstrumentation is always applied even
with `DD_TRACE_ENABLED=false`
([#&#8203;8863](DataDog/dd-trace-java#8863) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Eclipse Vert.x instrumentation

- 🐛 Do not override route with / in vertx instrumentation
([#&#8203;8881](DataDog/dd-trace-java#8881) -
[@&#8203;vandonr](https://github.com/vandonr))

#### IBM Liberty

- 🐛 Fix error mark on http status for IBM liberty
([#&#8203;8822](DataDog/dd-trace-java#8822) -
[@&#8203;amarziali](https://github.com/amarziali))

#### JDBC instrumentation

- 🐛 Do not prepend DBM <> APM trace comment in SQLCommenter if there
is a pg plan hint
([#&#8203;8864](DataDog/dd-trace-java#8864) -
[@&#8203;edengorevoy](https://github.com/edengorevoy))

#### JMS instrumentation

- ✨ Add jms as an extra integration name where there is JMS
involved
([#&#8203;8933](DataDog/dd-trace-java#8933) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Kotlin instrumentation

- ✨ Enable kotlin\_coroutine integration by default
([#&#8203;8848](DataDog/dd-trace-java#8848) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🧹 Rework Kotlin coroutines instrumentation around coroutine
context
([#&#8203;8774](DataDog/dd-trace-java#8774) -
[@&#8203;mcculls](https://github.com/mcculls))

#### OpenTelemetry instrumentation

- 🐛 Support WithSpan inheritContext attribute
([#&#8203;8858](DataDog/dd-trace-java#8858) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Play Framework instrumentation

- 🐛 Fix the Play Framework's span resource name priority so that the
client JAX-RS 404 cannot override it
([#&#8203;8591](DataDog/dd-trace-java#8591) -
[@&#8203;ygree](https://github.com/ygree))

#### Quarkus Instrumentation

- 🐛 Ignore quarkus jaxrs stubs and cdi wrapper proxies
([#&#8203;8891](DataDog/dd-trace-java#8891) -
[@&#8203;amarziali](https://github.com/amarziali))

#### ServiceTalk

- ✨ Improve ServiceTalk Captured Context API Instrumentation
for v0.42.56+
([#&#8203;8821](DataDog/dd-trace-java#8821) -
[@&#8203;ygree](https://github.com/ygree))

#### Spring instrumentation

- ✨ Supporting Baggage for Instrumentations used in Weblog
Tests
([#&#8203;8773](DataDog/dd-trace-java#8773) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### WebSocket Instrumentation

- 💡 Trace websocket for spring webflux reactive handlers
([#&#8203;8831](DataDog/dd-trace-java#8831) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡:test\_tube: WebSocket support for Netty
([#&#8203;8632](DataDog/dd-trace-java#8632) -
[@&#8203;ValentinZakharov](https://github.com/ValentinZakharov))

#### Zio Instrumentation

- 🧹 Cleanup Zio fiber instrumentation to avoid repeated activation
of continuation
([#&#8203;8798](DataDog/dd-trace-java#8798) -
[@&#8203;mcculls](https://github.com/mcculls))

</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.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- 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: 9207366cdb6a1bd098082305d354a0a3c4622d7a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
inst: java Core Java language instrumentation type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants