Skip to content

Conversation

@MattAlp
Copy link

@MattAlp MattAlp commented Mar 28, 2025

What Does This Do

This PR begins the process of deprecating the use of jps via a subprocess, accomplished by exposing the jvmstat code used by jps under the hood using module patching (for JDKs 9+).

Motivation

Customer machines often come without tools like jps available, causing cleanup related-tasks to fail.

Additional Notes

Contributor Checklist

Jira ticket: PROF-11290

@MattAlp MattAlp added type: enhancement Enhancements and improvements comp: core Tracer core comp: profiling Profiling labels Mar 28, 2025
@MattAlp MattAlp requested a review from jbachorik March 28, 2025 18:01
@pr-commenter
Copy link

pr-commenter bot commented Mar 28, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mattalp/patch-jvmstat-access
git_commit_date 1744233055 1744229671
git_commit_sha 33fc3c9 2ead3b7
release_version 1.49.0-SNAPSHOT~33fc3c9a9b 1.49.0-SNAPSHOT~2ead3b7ab6
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1744280446 1744280446
ci_job_id 890373151 890373151
ci_pipeline_id 61654253 61654253
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-lh2rzwsp-project-304-concurrent-4-hlvpp1gj 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-lh2rzwsp-project-304-concurrent-4-hlvpp1gj 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None
variant iast iast

Summary

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

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:petclinic:iast:Debugger worse
[+92.557µs; +295.976µs] or [+2.248%; +7.190%]
4.311ms 4.117ms
scenario:startup:petclinic:iast:Remote Config worse
[+27.490µs; +65.553µs] or [+4.705%; +11.219%]
630.822µs 584.301µs
scenario:startup:petclinic:profiling:Debugger worse
[+108.525µs; +276.861µs] or [+2.557%; +6.522%]
4.437ms 4.245ms
scenario:startup:petclinic:profiling:Remote Config better
[-72.064µs; -20.143µs] or [-10.271%; -2.871%]
655.533µs 701.637µs
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.056 s) : 0, 1056248
Total [baseline] (10.478 s) : 0, 10477964
Agent [candidate] (1.064 s) : 0, 1064174
Total [candidate] (10.469 s) : 0, 10468572
section appsec
Agent [baseline] (1.197 s) : 0, 1197008
Total [baseline] (10.763 s) : 0, 10763371
Agent [candidate] (1.199 s) : 0, 1198704
Total [candidate] (10.778 s) : 0, 10778121
section iast
Agent [baseline] (1.185 s) : 0, 1184876
Total [baseline] (11.014 s) : 0, 11013844
Agent [candidate] (1.198 s) : 0, 1197502
Total [candidate] (11.052 s) : 0, 11051798
section profiling
Agent [baseline] (1.285 s) : 0, 1284926
Total [baseline] (10.873 s) : 0, 10873479
Agent [candidate] (1.294 s) : 0, 1293877
Total [candidate] (10.979 s) : 0, 10979489
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent appsec 1.197 s 140.76 ms (13.3%)
Agent iast 1.185 s 128.628 ms (12.2%)
Agent profiling 1.285 s 228.678 ms (21.7%)
Total tracing 10.478 s -
Total appsec 10.763 s 285.406 ms (2.7%)
Total iast 11.014 s 535.879 ms (5.1%)
Total profiling 10.873 s 395.515 ms (3.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.064 s -
Agent appsec 1.199 s 134.529 ms (12.6%)
Agent iast 1.198 s 133.328 ms (12.5%)
Agent profiling 1.294 s 229.702 ms (21.6%)
Total tracing 10.469 s -
Total appsec 10.778 s 309.549 ms (3.0%)
Total iast 11.052 s 583.226 ms (5.6%)
Total profiling 10.979 s 510.917 ms (4.9%)
gantt
    title petclinic - break down per module: candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (722.303 ms) : 0, 722303
BytebuddyAgent [candidate] (725.904 ms) : 0, 725904
GlobalTracer [baseline] (239.651 ms) : 0, 239651
GlobalTracer [candidate] (240.482 ms) : 0, 240482
AppSec [baseline] (54.245 ms) : 0, 54245
AppSec [candidate] (54.812 ms) : 0, 54812
Debugger [baseline] (4.396 ms) : 0, 4396
Debugger [candidate] (4.408 ms) : 0, 4408
Remote Config [baseline] (707.936 µs) : 0, 708
Remote Config [candidate] (699.575 µs) : 0, 700
Telemetry [baseline] (14.084 ms) : 0, 14084
Telemetry [candidate] (14.353 ms) : 0, 14353
section appsec
BytebuddyAgent [baseline] (740.908 ms) : 0, 740908
BytebuddyAgent [candidate] (740.124 ms) : 0, 740124
GlobalTracer [baseline] (235.809 ms) : 0, 235809
GlobalTracer [candidate] (236.32 ms) : 0, 236320
AppSec [baseline] (175.636 ms) : 0, 175636
AppSec [candidate] (174.869 ms) : 0, 174869
Debugger [baseline] (4.272 ms) : 0, 4272
Debugger [candidate] (4.206 ms) : 0, 4206
Remote Config [baseline] (648.324 µs) : 0, 648
Remote Config [candidate] (632.748 µs) : 0, 633
Telemetry [baseline] (8.232 ms) : 0, 8232
Telemetry [candidate] (8.163 ms) : 0, 8163
IAST [baseline] (21.268 ms) : 0, 21268
IAST [candidate] (21.975 ms) : 0, 21975
section iast
BytebuddyAgent [baseline] (841.421 ms) : 0, 841421
BytebuddyAgent [candidate] (848.188 ms) : 0, 848188
GlobalTracer [baseline] (229.983 ms) : 0, 229983
GlobalTracer [candidate] (232.105 ms) : 0, 232105
AppSec [baseline] (55.696 ms) : 0, 55696
AppSec [candidate] (56.397 ms) : 0, 56397
Debugger [baseline] (4.117 ms) : 0, 4117
Debugger [candidate] (4.311 ms) : 0, 4311
Remote Config [baseline] (584.301 µs) : 0, 584
Remote Config [candidate] (630.822 µs) : 0, 631
Telemetry [baseline] (8.673 ms) : 0, 8673
Telemetry [candidate] (8.873 ms) : 0, 8873
IAST [baseline] (23.638 ms) : 0, 23638
IAST [candidate] (23.462 ms) : 0, 23462
section profiling
ProfilingAgent [baseline] (101.771 ms) : 0, 101771
ProfilingAgent [candidate] (102.751 ms) : 0, 102751
BytebuddyAgent [baseline] (710.226 ms) : 0, 710226
BytebuddyAgent [candidate] (711.63 ms) : 0, 711630
GlobalTracer [baseline] (357.31 ms) : 0, 357310
GlobalTracer [candidate] (361.176 ms) : 0, 361176
AppSec [baseline] (53.954 ms) : 0, 53954
AppSec [candidate] (54.116 ms) : 0, 54116
Debugger [baseline] (4.245 ms) : 0, 4245
Debugger [candidate] (4.437 ms) : 0, 4437
Remote Config [baseline] (701.637 µs) : 0, 702
Remote Config [candidate] (655.533 µs) : 0, 656
Telemetry [baseline] (8.834 ms) : 0, 8834
Telemetry [candidate] (9.078 ms) : 0, 9078
Profiling [baseline] (101.798 ms) : 0, 101798
Profiling [candidate] (102.776 ms) : 0, 102776
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1056763
Total [baseline] (8.685 s) : 0, 8685121
Agent [candidate] (1.055 s) : 0, 1055208
Total [candidate] (8.684 s) : 0, 8684108
section iast
Agent [baseline] (1.182 s) : 0, 1181796
Total [baseline] (9.204 s) : 0, 9203985
Agent [candidate] (1.181 s) : 0, 1181035
Total [candidate] (9.242 s) : 0, 9242071
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.183 s) : 0, 1183380
Total [baseline] (9.241 s) : 0, 9240999
Agent [candidate] (1.191 s) : 0, 1191154
Total [candidate] (9.215 s) : 0, 9214843
section iast_TELEMETRY_OFF
Agent [baseline] (1.181 s) : 0, 1180755
Total [baseline] (9.266 s) : 0, 9265936
Agent [candidate] (1.178 s) : 0, 1178261
Total [candidate] (9.282 s) : 0, 9282399
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent iast 1.182 s 125.033 ms (11.8%)
Agent iast_HARDCODED_SECRET_DISABLED 1.183 s 126.617 ms (12.0%)
Agent iast_TELEMETRY_OFF 1.181 s 123.992 ms (11.7%)
Total tracing 8.685 s -
Total iast 9.204 s 518.864 ms (6.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.241 s 555.878 ms (6.4%)
Total iast_TELEMETRY_OFF 9.266 s 580.815 ms (6.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.055 s -
Agent iast 1.181 s 125.827 ms (11.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.191 s 135.946 ms (12.9%)
Agent iast_TELEMETRY_OFF 1.178 s 123.053 ms (11.7%)
Total tracing 8.684 s -
Total iast 9.242 s 557.963 ms (6.4%)
Total iast_HARDCODED_SECRET_DISABLED 9.215 s 530.735 ms (6.1%)
Total iast_TELEMETRY_OFF 9.282 s 598.291 ms (6.9%)
gantt
    title insecure-bank - break down per module: candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (723.024 ms) : 0, 723024
BytebuddyAgent [candidate] (720.294 ms) : 0, 720294
GlobalTracer [baseline] (239.899 ms) : 0, 239899
GlobalTracer [candidate] (238.755 ms) : 0, 238755
AppSec [baseline] (55.18 ms) : 0, 55180
AppSec [candidate] (56.44 ms) : 0, 56440
Debugger [baseline] (4.373 ms) : 0, 4373
Debugger [candidate] (4.317 ms) : 0, 4317
Remote Config [baseline] (693.163 µs) : 0, 693
Remote Config [candidate] (1.368 ms) : 0, 1368
Telemetry [baseline] (12.73 ms) : 0, 12730
Telemetry [candidate] (10.641 ms) : 0, 10641
section iast
BytebuddyAgent [baseline] (839.89 ms) : 0, 839890
BytebuddyAgent [candidate] (837.03 ms) : 0, 837030
GlobalTracer [baseline] (229.568 ms) : 0, 229568
GlobalTracer [candidate] (228.642 ms) : 0, 228642
AppSec [baseline] (54.977 ms) : 0, 54977
AppSec [candidate] (52.672 ms) : 0, 52672
Debugger [baseline] (4.086 ms) : 0, 4086
Debugger [candidate] (4.186 ms) : 0, 4186
Remote Config [baseline] (606.495 µs) : 0, 606
Remote Config [candidate] (598.113 µs) : 0, 598
Telemetry [baseline] (8.625 ms) : 0, 8625
Telemetry [candidate] (8.578 ms) : 0, 8578
IAST [baseline] (23.333 ms) : 0, 23333
IAST [candidate] (26.103 ms) : 0, 26103
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (840.672 ms) : 0, 840672
BytebuddyAgent [candidate] (844.36 ms) : 0, 844360
GlobalTracer [baseline] (229.552 ms) : 0, 229552
GlobalTracer [candidate] (230.067 ms) : 0, 230067
AppSec [baseline] (56.165 ms) : 0, 56165
AppSec [candidate] (56.423 ms) : 0, 56423
Debugger [baseline] (4.131 ms) : 0, 4131
Debugger [candidate] (4.267 ms) : 0, 4267
Remote Config [baseline] (597.821 µs) : 0, 598
Remote Config [candidate] (622.633 µs) : 0, 623
Telemetry [baseline] (8.785 ms) : 0, 8785
Telemetry [candidate] (8.767 ms) : 0, 8767
IAST [baseline] (22.745 ms) : 0, 22745
IAST [candidate] (23.154 ms) : 0, 23154
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (839.151 ms) : 0, 839151
BytebuddyAgent [candidate] (834.44 ms) : 0, 834440
GlobalTracer [baseline] (229.411 ms) : 0, 229411
GlobalTracer [candidate] (228.898 ms) : 0, 228898
AppSec [baseline] (56.059 ms) : 0, 56059
AppSec [candidate] (55.786 ms) : 0, 55786
Debugger [baseline] (4.06 ms) : 0, 4060
Debugger [candidate] (4.1 ms) : 0, 4100
Remote Config [baseline] (595.627 µs) : 0, 596
Remote Config [candidate] (615.04 µs) : 0, 615
Telemetry [baseline] (8.522 ms) : 0, 8522
Telemetry [candidate] (8.534 ms) : 0, 8534
IAST [baseline] (22.196 ms) : 0, 22196
IAST [candidate] (22.597 ms) : 0, 22597
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-04-10T09:51:01 2025-04-10T09:58:47
git_branch master mattalp/patch-jvmstat-access
git_commit_date 1744233055 1744229671
git_commit_sha 33fc3c9 2ead3b7
release_version 1.49.0-SNAPSHOT~33fc3c9a9b 1.49.0-SNAPSHOT~2ead3b7ab6
start_time 2025-04-10T09:50:47 2025-04-10T09:58:32
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1744279526 1744279526
ci_job_id 890373143 890373143
ci_pipeline_id 61654253 61654253
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-kc2xlj6b-project-304-concurrent-2-vijbxzm1 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-kc2xlj6b-project-304-concurrent-2-vijbxzm1 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
variant iast iast

Summary

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

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b
    dateFormat X
    axisFormat %s
section baseline
no_agent (378.949 µs) : 359, 399
.   : milestone, 379,
iast (517.241 µs) : 495, 539
.   : milestone, 517,
iast_FULL (736.14 µs) : 714, 758
.   : milestone, 736,
iast_GLOBAL (569.369 µs) : 546, 593
.   : milestone, 569,
iast_HARDCODED_SECRET_DISABLED (510.093 µs) : 488, 532
.   : milestone, 510,
iast_INACTIVE (464.699 µs) : 443, 486
.   : milestone, 465,
iast_TELEMETRY_OFF (503.811 µs) : 482, 526
.   : milestone, 504,
tracing (459.775 µs) : 439, 481
.   : milestone, 460,
section candidate
no_agent (387.175 µs) : 366, 408
.   : milestone, 387,
iast (514.308 µs) : 493, 536
.   : milestone, 514,
iast_FULL (734.765 µs) : 713, 757
.   : milestone, 735,
iast_GLOBAL (560.626 µs) : 538, 583
.   : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (516.887 µs) : 495, 539
.   : milestone, 517,
iast_INACTIVE (464.725 µs) : 443, 486
.   : milestone, 465,
iast_TELEMETRY_OFF (507.137 µs) : 484, 530
.   : milestone, 507,
tracing (459.166 µs) : 438, 480
.   : milestone, 459,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 378.949 µs [358.796 µs, 399.103 µs] -
iast 517.241 µs [495.452 µs, 539.03 µs] 138.292 µs (36.5%)
iast_FULL 736.14 µs [714.182 µs, 758.099 µs] 357.191 µs (94.3%)
iast_GLOBAL 569.369 µs [545.959 µs, 592.778 µs] 190.419 µs (50.2%)
iast_HARDCODED_SECRET_DISABLED 510.093 µs [488.498 µs, 531.688 µs] 131.144 µs (34.6%)
iast_INACTIVE 464.699 µs [443.456 µs, 485.942 µs] 85.75 µs (22.6%)
iast_TELEMETRY_OFF 503.811 µs [481.971 µs, 525.652 µs] 124.862 µs (32.9%)
tracing 459.775 µs [438.949 µs, 480.602 µs] 80.826 µs (21.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 387.175 µs [366.354 µs, 407.997 µs] -
iast 514.308 µs [492.572 µs, 536.044 µs] 127.133 µs (32.8%)
iast_FULL 734.765 µs [712.625 µs, 756.905 µs] 347.59 µs (89.8%)
iast_GLOBAL 560.626 µs [538.39 µs, 582.863 µs] 173.451 µs (44.8%)
iast_HARDCODED_SECRET_DISABLED 516.887 µs [495.213 µs, 538.56 µs] 129.712 µs (33.5%)
iast_INACTIVE 464.725 µs [443.483 µs, 485.967 µs] 77.549 µs (20.0%)
iast_TELEMETRY_OFF 507.137 µs [484.443 µs, 529.83 µs] 119.961 µs (31.0%)
tracing 459.166 µs [438.112 µs, 480.219 µs] 71.99 µs (18.6%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.352 ms) : 1333, 1371
.   : milestone, 1352,
appsec (1.735 ms) : 1711, 1759
.   : milestone, 1735,
appsec_no_iast (1.752 ms) : 1728, 1776
.   : milestone, 1752,
code_origins (1.686 ms) : 1659, 1714
.   : milestone, 1686,
iast (1.506 ms) : 1481, 1531
.   : milestone, 1506,
profiling (1.554 ms) : 1529, 1579
.   : milestone, 1554,
tracing (1.503 ms) : 1478, 1528
.   : milestone, 1503,
section candidate
no_agent (1.346 ms) : 1327, 1365
.   : milestone, 1346,
appsec (1.745 ms) : 1721, 1769
.   : milestone, 1745,
appsec_no_iast (1.719 ms) : 1695, 1742
.   : milestone, 1719,
code_origins (1.694 ms) : 1666, 1722
.   : milestone, 1694,
iast (1.522 ms) : 1499, 1546
.   : milestone, 1522,
profiling (1.522 ms) : 1498, 1546
.   : milestone, 1522,
tracing (1.502 ms) : 1477, 1527
.   : milestone, 1502,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.352 ms [1.333 ms, 1.371 ms] -
appsec 1.735 ms [1.711 ms, 1.759 ms] 383.483 µs (28.4%)
appsec_no_iast 1.752 ms [1.728 ms, 1.776 ms] 400.099 µs (29.6%)
code_origins 1.686 ms [1.659 ms, 1.714 ms] 334.631 µs (24.8%)
iast 1.506 ms [1.481 ms, 1.531 ms] 153.941 µs (11.4%)
profiling 1.554 ms [1.529 ms, 1.579 ms] 202.245 µs (15.0%)
tracing 1.503 ms [1.478 ms, 1.528 ms] 151.25 µs (11.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.346 ms [1.327 ms, 1.365 ms] -
appsec 1.745 ms [1.721 ms, 1.769 ms] 398.684 µs (29.6%)
appsec_no_iast 1.719 ms [1.695 ms, 1.742 ms] 372.824 µs (27.7%)
code_origins 1.694 ms [1.666 ms, 1.722 ms] 348.129 µs (25.9%)
iast 1.522 ms [1.499 ms, 1.546 ms] 176.173 µs (13.1%)
profiling 1.522 ms [1.498 ms, 1.546 ms] 175.616 µs (13.0%)
tracing 1.502 ms [1.477 ms, 1.527 ms] 155.799 µs (11.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mattalp/patch-jvmstat-access
git_commit_date 1744233055 1744229671
git_commit_sha 33fc3c9 2ead3b7
release_version 1.49.0-SNAPSHOT~33fc3c9a9b 1.49.0-SNAPSHOT~2ead3b7ab6
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1744280027 1744280027
ci_job_id 890371832 890371832
ci_pipeline_id 61654253 61654253
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-lh2rzwsp-project-304-concurrent-3-bzl6d291 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-lh2rzwsp-project-304-concurrent-3-bzl6d291 6.8.0-1024-aws #26~22.04.1-Ubuntu SMP Wed Feb 19 06:54:57 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 biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.931 s) : 14931000, 14931000
.   : milestone, 14931000,
appsec (14.846 s) : 14846000, 14846000
.   : milestone, 14846000,
iast (18.815 s) : 18815000, 18815000
.   : milestone, 18815000,
iast_GLOBAL (18.219 s) : 18219000, 18219000
.   : milestone, 18219000,
profiling (15.058 s) : 15058000, 15058000
.   : milestone, 15058000,
tracing (15.141 s) : 15141000, 15141000
.   : milestone, 15141000,
section candidate
no_agent (15.53 s) : 15530000, 15530000
.   : milestone, 15530000,
appsec (14.724 s) : 14724000, 14724000
.   : milestone, 14724000,
iast (19.208 s) : 19208000, 19208000
.   : milestone, 19208000,
iast_GLOBAL (17.85 s) : 17850000, 17850000
.   : milestone, 17850000,
profiling (15.064 s) : 15064000, 15064000
.   : milestone, 15064000,
tracing (15.055 s) : 15055000, 15055000
.   : milestone, 15055000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.931 s [14.931 s, 14.931 s] -
appsec 14.846 s [14.846 s, 14.846 s] -85.0 ms (-0.6%)
iast 18.815 s [18.815 s, 18.815 s] 3.884 s (26.0%)
iast_GLOBAL 18.219 s [18.219 s, 18.219 s] 3.288 s (22.0%)
profiling 15.058 s [15.058 s, 15.058 s] 127.0 ms (0.9%)
tracing 15.141 s [15.141 s, 15.141 s] 210.0 ms (1.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.53 s [15.53 s, 15.53 s] -
appsec 14.724 s [14.724 s, 14.724 s] -806.0 ms (-5.2%)
iast 19.208 s [19.208 s, 19.208 s] 3.678 s (23.7%)
iast_GLOBAL 17.85 s [17.85 s, 17.85 s] 2.32 s (14.9%)
profiling 15.064 s [15.064 s, 15.064 s] -466.0 ms (-3.0%)
tracing 15.055 s [15.055 s, 15.055 s] -475.0 ms (-3.1%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.49.0-SNAPSHOT~2ead3b7ab6, baseline=1.49.0-SNAPSHOT~33fc3c9a9b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.475 ms) : 1464, 1487
.   : milestone, 1475,
appsec (2.376 ms) : 2329, 2422
.   : milestone, 2376,
iast (2.159 ms) : 2100, 2218
.   : milestone, 2159,
iast_GLOBAL (2.203 ms) : 2144, 2262
.   : milestone, 2203,
profiling (2.036 ms) : 1988, 2084
.   : milestone, 2036,
tracing (1.986 ms) : 1941, 2031
.   : milestone, 1986,
section candidate
no_agent (1.478 ms) : 1467, 1490
.   : milestone, 1478,
appsec (2.388 ms) : 2341, 2435
.   : milestone, 2388,
iast (2.165 ms) : 2107, 2224
.   : milestone, 2165,
iast_GLOBAL (2.214 ms) : 2155, 2273
.   : milestone, 2214,
profiling (2.042 ms) : 1993, 2090
.   : milestone, 2042,
tracing (1.993 ms) : 1947, 2039
.   : milestone, 1993,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.464 ms, 1.487 ms] -
appsec 2.376 ms [2.329 ms, 2.422 ms] 900.402 µs (61.0%)
iast 2.159 ms [2.1 ms, 2.218 ms] 683.566 µs (46.3%)
iast_GLOBAL 2.203 ms [2.144 ms, 2.262 ms] 727.657 µs (49.3%)
profiling 2.036 ms [1.988 ms, 2.084 ms] 560.394 µs (38.0%)
tracing 1.986 ms [1.941 ms, 2.031 ms] 510.518 µs (34.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.467 ms, 1.49 ms] -
appsec 2.388 ms [2.341 ms, 2.435 ms] 909.555 µs (61.5%)
iast 2.165 ms [2.107 ms, 2.224 ms] 686.893 µs (46.5%)
iast_GLOBAL 2.214 ms [2.155 ms, 2.273 ms] 735.634 µs (49.8%)
profiling 2.042 ms [1.993 ms, 2.09 ms] 563.163 µs (38.1%)
tracing 1.993 ms [1.947 ms, 2.039 ms] 514.628 µs (34.8%)

@MattAlp MattAlp requested a review from mcculls April 7, 2025 17:11
Copy link
Contributor

@jbachorik jbachorik left a comment

Choose a reason for hiding this comment

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

Looks fine.
I assume the diff will be cleaned up before the merge with the unnecessary changes gone.

@MattAlp MattAlp force-pushed the mattalp/patch-jvmstat-access branch from ae3450f to bfe5a1f Compare April 8, 2025 17:35
@MattAlp MattAlp requested a review from dougqh April 8, 2025 17:40
@MattAlp MattAlp marked this pull request as ready for review April 8, 2025 18:20
@MattAlp MattAlp requested review from a team as code owners April 8, 2025 18:20
@jbachorik jbachorik requested a review from Copilot April 9, 2025 11:12
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot reviewed 5 out of 7 changed files in this pull request and generated no comments.

Files not reviewed (2)
  • internal-api/build.gradle: Language not supported
  • internal-api/internal-api-9/build.gradle: Language not supported
Comments suppressed due to low confidence (1)

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/Agent.java:431

  • The reflection call for 'patchModuleAccess' is missing the required parameter type. Replace getMethod("patchModuleAccess") with getMethod("patchModuleAccess", Instrumentation.class) and invoke it with the 'inst' argument accordingly.
Class.forName("datadog.trace.util.JPMSJPSAccess").getMethod("patchModuleAccess")

@MattAlp MattAlp force-pushed the mattalp/patch-jvmstat-access branch from cc9487a to 41a63af Compare April 9, 2025 16:15
@MattAlp MattAlp force-pushed the mattalp/patch-jvmstat-access branch from 41a63af to 62e3ee8 Compare April 9, 2025 17:11
@MattAlp MattAlp merged commit fe81e49 into master Apr 10, 2025
252 checks passed
@MattAlp MattAlp deleted the mattalp/patch-jvmstat-access branch April 10, 2025 12:36
@github-actions github-actions bot added this to the 1.49.0 milestone Apr 10, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request May 7, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
|
[com.google.cloud:google-cloud-logging](https://github.com/googleapis/java-logging)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`3.22.2` -> `3.22.3` |
|
[com.google.cloud:google-cloud-datastore](https://github.com/googleapis/java-datastore)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.28.0` -> `2.28.1` |
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.48.2` -> `1.49.0` |
| [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
|
[software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava)
| dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |
| [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) |
dependencies | misk/gradle/libs.versions.toml | gradle | patch |
`2.31.36` -> `2.31.37` |

---

### Release Notes

<details>
<summary>googleapis/java-logging
(com.google.cloud:google-cloud-logging)</summary>

###
[`v3.22.3`](https://github.com/googleapis/java-logging/blob/HEAD/CHANGELOG.md#3223-2025-05-06)

##### Bug Fixes

- **deps:** Update the Java code generator (gapic-generator-java) to
2.56.3
([844f4fa](googleapis/java-logging@844f4fa))

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.46.3
([#&#8203;1801](googleapis/java-logging#1801))
([d7aa7bc](googleapis/java-logging@d7aa7bc))
- Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0
([#&#8203;1803](googleapis/java-logging#1803))
([5967ffe](googleapis/java-logging@5967ffe))
- Update googleapis/sdk-platform-java action to v2.57.0
([#&#8203;1804](googleapis/java-logging#1804))
([e9a27ec](googleapis/java-logging@e9a27ec))

</details>

<details>
<summary>googleapis/java-datastore
(com.google.cloud:google-cloud-datastore)</summary>

###
[`v2.28.1`](https://github.com/googleapis/java-datastore/blob/HEAD/CHANGELOG.md#2281-2025-05-06)

##### Dependencies

- Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0
([#&#8203;1841](googleapis/java-datastore#1841))
([ac393e6](googleapis/java-datastore@ac393e6))
- Update googleapis/sdk-platform-java action to v2.57.0
([#&#8203;1842](googleapis/java-datastore#1842))
([0745906](googleapis/java-datastore@0745906))

</details>

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

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

### Components

#### Configuration at Runtime

- ✨ Add process tags as list to remote config payload
([#&#8203;8705](DataDog/dd-trace-java#8705) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Continuous Integration Visibility

- 🐛 Add span propagation for Pekko scheduled tasks
([#&#8203;8765](DataDog/dd-trace-java#8765) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- ✨ Update test.retry_reason to use full name of the feature
([#&#8203;8689](DataDog/dd-trace-java#8689) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🧹 Remove unused TestEventsHandler methods
([#&#8203;8674](DataDog/dd-trace-java#8674) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))

#### Dynamic Instrumentation

- 🐛 Fix exclude identifiers normalization
([#&#8203;8742](DataDog/dd-trace-java#8742) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Make source file tracking asynchronous
([#&#8203;8684](DataDog/dd-trace-java#8684) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add scope filtering for symbol extraction
([#&#8203;8676](DataDog/dd-trace-java#8676) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- ✨ Add support for [@&#8203;key](https://github.com/key) and
[@&#8203;value](https://github.com/value) for Map filtering
([#&#8203;8669](DataDog/dd-trace-java#8669) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### Library Injection

- ✨ Add system property to force injection of the tracing
library even though multiple javaagents have been detected
([#&#8203;8697](DataDog/dd-trace-java#8697) -
[@&#8203;cecile75](https://github.com/cecile75))

#### Metrics

- ✨ Allow dogstatsd port to be configurable with
DD_DOGSTATSD_PORT
([#&#8203;8693](DataDog/dd-trace-java#8693) -
[@&#8203;randomanderson](https://github.com/randomanderson))

#### Profiling

- ✨ Bump ddprof-java to 1.25.1
([#&#8203;8750](DataDog/dd-trace-java#8750) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- 🐛 Remove cleanup-on-shutdown for temporary files
([#&#8203;8746](DataDog/dd-trace-java#8746) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨⚡ Replace a regex-based SMAP parser with a hand-crafted
one
([#&#8203;8730](DataDog/dd-trace-java#8730) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Improve error reporting on profiler startup
([#&#8203;8714](DataDog/dd-trace-java#8714) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Exclude ProxyLeakTask exception from exception profiling
([#&#8203;8666](DataDog/dd-trace-java#8666) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- ✨ Use jvmstat for JDKs 9+ programmatically
([#&#8203;8641](DataDog/dd-trace-java#8641) -
[@&#8203;MattAlp](https://github.com/MattAlp))

#### Telemetry

- ✨ Allow dogstatsd port to be configurable with
DD_DOGSTATSD_PORT
([#&#8203;8693](DataDog/dd-trace-java#8693) -
[@&#8203;randomanderson](https://github.com/randomanderson))
- 🐛 Fix appsec.waf.requests telemetry metric
([#&#8203;8644](DataDog/dd-trace-java#8644) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Tracer core

- ✨ Exclude jackson afterburner dynamic classes from
instrumentation
([#&#8203;8747](DataDog/dd-trace-java#8747) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Introduce Java 8 bytecode bridge for instrumentation API
([#&#8203;8736](DataDog/dd-trace-java#8736) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ⚡🧹 Use byte-buddy classes optimized for Java8+
([#&#8203;8735](DataDog/dd-trace-java#8735) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Do not set the hibernate or datanucleus span service name when
disabled
([#&#8203;8727](DataDog/dd-trace-java#8727) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Update bytebuddy and ASM to support JDK 24
([#&#8203;8720](DataDog/dd-trace-java#8720) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- 🐛 Turn off JDK socket support by default
([#&#8203;8715](DataDog/dd-trace-java#8715) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🐛 Log warning when trace buffer overflow occurs
([#&#8203;8712](DataDog/dd-trace-java#8712) -
[@&#8203;ygree](https://github.com/ygree))
- ✨🧪 Introducing an internal integration name
([#&#8203;8708](DataDog/dd-trace-java#8708) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add process tags to client stats payload
([#&#8203;8704](DataDog/dd-trace-java#8704) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Collect process tags for tracing
([#&#8203;8698](DataDog/dd-trace-java#8698) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Stable Config file: target system properties in
process_arguments and support template variables in YamlParser
([#&#8203;8690](DataDog/dd-trace-java#8690) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨⚡ Use prefix trie for proxy ignores
([#&#8203;8678](DataDog/dd-trace-java#8678) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Allow agent to be automatically injected when running aside
Log4J patch agent
([#&#8203;8648](DataDog/dd-trace-java#8648) -
[@&#8203;paullegranddc](https://github.com/paullegranddc))
- ✨ Use jvmstat for JDKs 9+ programmatically
([#&#8203;8641](DataDog/dd-trace-java#8641) -
[@&#8203;MattAlp](https://github.com/MattAlp))

#### Tracer internal logging

- 🐛 Delete print line
([#&#8203;8686](DataDog/dd-trace-java#8686) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))

### Instrumentations

#### Akka instrumentation

- 🐛 Handle reentrant scope cleanup in Akka/Pekko actor
instrumentations
([#&#8203;8722](DataDog/dd-trace-java#8722) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Apache Spark instrumentation

- ✨ Use OpenLineage root parent information to generate trace
id ([#&#8203;8726](DataDog/dd-trace-java#8726)
- [@&#8203;mobuchowski](https://github.com/mobuchowski))
- ✨ Spark job cancellation no longer marks application as
failed
([#&#8203;8701](DataDog/dd-trace-java#8701) -
[@&#8203;paul-laffon-dd](https://github.com/paul-laffon-dd))

#### JDBC instrumentation

- 💡 Add support for sybase tds jdbc driver
([#&#8203;8764](DataDog/dd-trace-java#8764) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Kotlin instrumentation

- 🐛 Take defensive copy of parent scope stack when closing nested
coroutines
([#&#8203;8749](DataDog/dd-trace-java#8749) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Reactor instrumentation

- ✨⚡ Do not inspect reactor context when not needed
([#&#8203;8745](DataDog/dd-trace-java#8745) -
[@&#8203;amarziali](https://github.com/amarziali))

</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: 795f347ae34d056efc1194c2f606cee7bca1beea
ValentinZakharov added a commit that referenced this pull request May 13, 2025
* Implemented WebSocket support for Netty 4.1

* Let propagate unhandled events and fix tests

* Refactoring

* Refactor netty test and fix instrumentation

* Improved pipeline processing - now you can insert handler in any place

* Fixed helper

* Refactoring

* WebSocket Server support for netty-4.0

* Missing handlers use cases for netty-4.1

* Fixed handlers for netty-4.0

* Tests for netty-4.0

* Refactoring

* WebSocket Server support for netty-3.8

* Tests for netty-3.8

* Spotless

* Fixed tests

* Add profiler env check command to AgentCLI (#8671)

* Remove dependency on bash from crash/oome uploder scripts (#8652)

* Do not apply JUnit 4 instrumentation to MUnit runners (#8675)

* Shutdown CI Visibility test event handlers before tracer (#8677)

* Prevent double reporting of Scalatest events when using SBT with test forking (#8682)

* Fix In-Product when config is empty (#8679)

should not stop the product with empty config

* Expand MUnit runners filter to catch munit.MUnitRunner in JUnit 4 instrumentation (#8683)

* Remove unused TestEventsHandler methods (#8674)

* Delete print line (#8686)

* Exclude ProxyLeakTask exception from exception profiling (#8666)

* Use jvmstat for JDKs 9+ programmatically (#8641)

* Update test.retry_reason to use full name of the feature (#8689)

* Allow dogstatsd port to be configurable with DD_DOGSTATSD_PORT (#8693)

* configurable dogstatsd port

* wait the client handshake

* move netty ws client to interested modules

* Added WebSocket tracing check

---------

Co-authored-by: Andrea Marziali <andrea.marziali@datadoghq.com>
Co-authored-by: Jaroslav Bachorik <jaroslav.bachorik@datadoghq.com>
Co-authored-by: Nikita Tkachenko <121111529+nikita-tkachenko-datadog@users.noreply.github.com>
Co-authored-by: Jean-Philippe Bempel <jean-philippe.bempel@datadoghq.com>
Co-authored-by: Daniel Mohedano <daniel.mohedano@datadoghq.com>
Co-authored-by: Sarah Chen <sarah.chen@datadoghq.com>
Co-authored-by: Matt <matthew.alp@datadoghq.com>
Co-authored-by: Laplie Anderson <randomanderson@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: core Tracer core comp: profiling Profiling type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants