Skip to content

Split system properties into key-vals in CLIHelper and support template variables in YamlParser #8690

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

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

mtoffl01
Copy link
Contributor

@mtoffl01 mtoffl01 commented Apr 10, 2025

What Does This Do

This PR adds support for matching system property keys in the Stable Configuration selector when those properties include values. For example, key: "-Darg1" will now match a Java process running with the -Darg1=value system property. It also introduces support for template variables in the Stable Configuration file schema, allowing resolution of process argument values and environment variable values. See reference.

Detailed Changes

CLIHelper:

  • Updated to parse JVM system property arguments (-Dkey=value) by splitting them into key-value pairs based on the = character.
  • The internal data structure was changed from a List to a Map to support key-value lookups.

YamlParser:

  • Added support for template variable resolution using the following syntax: {{process_arguments['-<process_argument_key>']}} or {{environment_variables['<env_var_key>']}}

Notes & Limitations:
Parsing of non-system property JVM arguments into key-value pairs is out of scope for this PR. These arguments will be stored as-is with an empty string as their value. I made the decision to support only System Property values to avoid introducing unnecessary complexity.

As a result:

  • To match non-system-property JVM arguments in the selector, the full argument string must be used as the selector key.
  • JVM arguments without a value will still match correctly—no value needs to be specified.
  • Only system properties (-Dkey=value) are supported in the template variable logic.

Motivation

To support Stable Configuration, users should be able to target services based on a System Property, regardless of its value. E.g, -Darg1 should match processes running with -Darg1=abcd.

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@pr-commenter
Copy link

pr-commenter bot commented Apr 10, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mtoff/scfg_fix
git_commit_date 1744893822 1744919665
git_commit_sha e8762d2 9caeb5d
release_version 1.49.0-SNAPSHOT~e8762d2392 1.49.0-SNAPSHOT~9caeb5daf3
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1744923087 1744923087
ci_job_id 902419797 902419797
ci_pipeline_id 62572462 62572462
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-smzjfe--project-304-concurrent-0-rk08aihk 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-smzjfe--project-304-concurrent-0-rk08aihk 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 0 performance improvements and 0 performance regressions! Performance is the same for 59 metrics, 12 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.066 s) : 0, 1065741
Total [baseline] (8.726 s) : 0, 8726237
Agent [candidate] (1.061 s) : 0, 1060590
Total [candidate] (8.685 s) : 0, 8685292
section iast
Agent [baseline] (1.185 s) : 0, 1185139
Total [baseline] (9.277 s) : 0, 9276730
Agent [candidate] (1.185 s) : 0, 1185010
Total [candidate] (9.268 s) : 0, 9268228
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.182 s) : 0, 1182499
Total [baseline] (9.205 s) : 0, 9204665
Agent [candidate] (1.198 s) : 0, 1197835
Total [candidate] (9.311 s) : 0, 9311212
section iast_TELEMETRY_OFF
Agent [baseline] (1.178 s) : 0, 1178245
Total [baseline] (9.307 s) : 0, 9306975
Agent [candidate] (1.189 s) : 0, 1189419
Total [candidate] (9.296 s) : 0, 9295663
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.066 s -
Agent iast 1.185 s 119.398 ms (11.2%)
Agent iast_HARDCODED_SECRET_DISABLED 1.182 s 116.758 ms (11.0%)
Agent iast_TELEMETRY_OFF 1.178 s 112.504 ms (10.6%)
Total tracing 8.726 s -
Total iast 9.277 s 550.493 ms (6.3%)
Total iast_HARDCODED_SECRET_DISABLED 9.205 s 478.428 ms (5.5%)
Total iast_TELEMETRY_OFF 9.307 s 580.738 ms (6.7%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.061 s -
Agent iast 1.185 s 124.419 ms (11.7%)
Agent iast_HARDCODED_SECRET_DISABLED 1.198 s 137.245 ms (12.9%)
Agent iast_TELEMETRY_OFF 1.189 s 128.829 ms (12.1%)
Total tracing 8.685 s -
Total iast 9.268 s 582.935 ms (6.7%)
Total iast_HARDCODED_SECRET_DISABLED 9.311 s 625.92 ms (7.2%)
Total iast_TELEMETRY_OFF 9.296 s 610.37 ms (7.0%)
gantt
    title insecure-bank - break down per module: candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (726.834 ms) : 0, 726834
BytebuddyAgent [candidate] (722.416 ms) : 0, 722416
GlobalTracer [baseline] (240.817 ms) : 0, 240817
GlobalTracer [candidate] (239.207 ms) : 0, 239207
AppSec [baseline] (56.355 ms) : 0, 56355
AppSec [candidate] (56.713 ms) : 0, 56713
Debugger [baseline] (4.432 ms) : 0, 4432
Debugger [candidate] (5.92 ms) : 0, 5920
Remote Config [baseline] (3.705 ms) : 0, 3705
Remote Config [candidate] (730.02 µs) : 0, 730
Telemetry [baseline] (10.081 ms) : 0, 10081
Telemetry [candidate] (12.152 ms) : 0, 12152
section iast
BytebuddyAgent [baseline] (839.401 ms) : 0, 839401
BytebuddyAgent [candidate] (839.718 ms) : 0, 839718
GlobalTracer [baseline] (230.063 ms) : 0, 230063
GlobalTracer [candidate] (229.892 ms) : 0, 229892
IAST [baseline] (24.425 ms) : 0, 24425
IAST [candidate] (23.654 ms) : 0, 23654
AppSec [baseline] (54.193 ms) : 0, 54193
AppSec [candidate] (54.919 ms) : 0, 54919
Debugger [baseline] (4.275 ms) : 0, 4275
Debugger [candidate] (4.177 ms) : 0, 4177
Remote Config [baseline] (618.828 µs) : 0, 619
Remote Config [candidate] (596.772 µs) : 0, 597
Telemetry [baseline] (8.754 ms) : 0, 8754
Telemetry [candidate] (8.563 ms) : 0, 8563
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (837.741 ms) : 0, 837741
BytebuddyAgent [candidate] (849.206 ms) : 0, 849206
GlobalTracer [baseline] (229.041 ms) : 0, 229041
GlobalTracer [candidate] (231.669 ms) : 0, 231669
IAST [baseline] (25.28 ms) : 0, 25280
IAST [candidate] (23.955 ms) : 0, 23955
AppSec [baseline] (53.425 ms) : 0, 53425
AppSec [candidate] (55.779 ms) : 0, 55779
Debugger [baseline] (4.188 ms) : 0, 4188
Debugger [candidate] (4.265 ms) : 0, 4265
Remote Config [baseline] (623.828 µs) : 0, 624
Remote Config [candidate] (624.779 µs) : 0, 625
Telemetry [baseline] (8.711 ms) : 0, 8711
Telemetry [candidate] (8.774 ms) : 0, 8774
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (834.509 ms) : 0, 834509
BytebuddyAgent [candidate] (842.647 ms) : 0, 842647
GlobalTracer [baseline] (228.809 ms) : 0, 228809
GlobalTracer [candidate] (231.025 ms) : 0, 231025
IAST [baseline] (22.407 ms) : 0, 22407
IAST [candidate] (23.369 ms) : 0, 23369
AppSec [baseline] (55.76 ms) : 0, 55760
AppSec [candidate] (55.356 ms) : 0, 55356
Debugger [baseline] (4.128 ms) : 0, 4128
Debugger [candidate] (4.195 ms) : 0, 4195
Remote Config [baseline] (618.284 µs) : 0, 618
Remote Config [candidate] (634.141 µs) : 0, 634
Telemetry [baseline] (8.718 ms) : 0, 8718
Telemetry [candidate] (8.69 ms) : 0, 8690
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.067 s) : 0, 1067123
Total [baseline] (10.458 s) : 0, 10458004
Agent [candidate] (1.06 s) : 0, 1059655
Total [candidate] (10.505 s) : 0, 10504778
section appsec
Agent [baseline] (1.197 s) : 0, 1197360
Total [baseline] (10.788 s) : 0, 10787984
Agent [candidate] (1.196 s) : 0, 1195998
Total [candidate] (10.785 s) : 0, 10784768
section iast
Agent [baseline] (1.188 s) : 0, 1188163
Total [baseline] (11.057 s) : 0, 11057314
Agent [candidate] (1.19 s) : 0, 1190120
Total [candidate] (11.035 s) : 0, 11034531
section profiling
Agent [baseline] (1.292 s) : 0, 1292171
Total [baseline] (10.912 s) : 0, 10911622
Agent [candidate] (1.298 s) : 0, 1297633
Total [candidate] (10.96 s) : 0, 10959909
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.067 s -
Agent appsec 1.197 s 130.237 ms (12.2%)
Agent iast 1.188 s 121.04 ms (11.3%)
Agent profiling 1.292 s 225.048 ms (21.1%)
Total tracing 10.458 s -
Total appsec 10.788 s 329.98 ms (3.2%)
Total iast 11.057 s 599.31 ms (5.7%)
Total profiling 10.912 s 453.618 ms (4.3%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent appsec 1.196 s 136.343 ms (12.9%)
Agent iast 1.19 s 130.466 ms (12.3%)
Agent profiling 1.298 s 237.979 ms (22.5%)
Total tracing 10.505 s -
Total appsec 10.785 s 279.99 ms (2.7%)
Total iast 11.035 s 529.753 ms (5.0%)
Total profiling 10.96 s 455.131 ms (4.3%)
gantt
    title petclinic - break down per module: candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (726.041 ms) : 0, 726041
BytebuddyAgent [candidate] (721.166 ms) : 0, 721166
GlobalTracer [baseline] (241.063 ms) : 0, 241063
GlobalTracer [candidate] (239.936 ms) : 0, 239936
AppSec [baseline] (55.136 ms) : 0, 55136
AppSec [candidate] (55.128 ms) : 0, 55128
Debugger [baseline] (4.393 ms) : 0, 4393
Debugger [candidate] (4.394 ms) : 0, 4394
Remote Config [baseline] (702.832 µs) : 0, 703
Remote Config [candidate] (689.004 µs) : 0, 689
Telemetry [baseline] (16.207 ms) : 0, 16207
Telemetry [candidate] (14.94 ms) : 0, 14940
section appsec
BytebuddyAgent [baseline] (737.905 ms) : 0, 737905
BytebuddyAgent [candidate] (737.804 ms) : 0, 737804
GlobalTracer [baseline] (236.24 ms) : 0, 236240
GlobalTracer [candidate] (235.435 ms) : 0, 235435
AppSec [baseline] (175.848 ms) : 0, 175848
AppSec [candidate] (175.486 ms) : 0, 175486
Debugger [baseline] (4.219 ms) : 0, 4219
Debugger [candidate] (4.193 ms) : 0, 4193
Remote Config [baseline] (635.196 µs) : 0, 635
Remote Config [candidate] (636.872 µs) : 0, 637
Telemetry [baseline] (8.165 ms) : 0, 8165
Telemetry [candidate] (8.159 ms) : 0, 8159
IAST [baseline] (21.949 ms) : 0, 21949
IAST [candidate] (21.754 ms) : 0, 21754
section iast
BytebuddyAgent [baseline] (840.519 ms) : 0, 840519
BytebuddyAgent [candidate] (844.197 ms) : 0, 844197
GlobalTracer [baseline] (231.122 ms) : 0, 231122
GlobalTracer [candidate] (230.106 ms) : 0, 230106
AppSec [baseline] (54.768 ms) : 0, 54768
AppSec [candidate] (55.111 ms) : 0, 55111
Debugger [baseline] (4.296 ms) : 0, 4296
Debugger [candidate] (4.189 ms) : 0, 4189
Remote Config [baseline] (610.284 µs) : 0, 610
Remote Config [candidate] (610.387 µs) : 0, 610
Telemetry [baseline] (8.834 ms) : 0, 8834
Telemetry [candidate] (8.694 ms) : 0, 8694
IAST [baseline] (24.615 ms) : 0, 24615
IAST [candidate] (23.694 ms) : 0, 23694
section profiling
ProfilingAgent [baseline] (101.101 ms) : 0, 101101
ProfilingAgent [candidate] (102.701 ms) : 0, 102701
BytebuddyAgent [baseline] (712.192 ms) : 0, 712192
BytebuddyAgent [candidate] (714.736 ms) : 0, 714736
GlobalTracer [baseline] (360.491 ms) : 0, 360491
GlobalTracer [candidate] (362.684 ms) : 0, 362684
AppSec [baseline] (54.125 ms) : 0, 54125
AppSec [candidate] (53.156 ms) : 0, 53156
Debugger [baseline] (4.373 ms) : 0, 4373
Debugger [candidate] (4.401 ms) : 0, 4401
Remote Config [baseline] (661.278 µs) : 0, 661
Remote Config [candidate] (649.192 µs) : 0, 649
Telemetry [baseline] (8.929 ms) : 0, 8929
Telemetry [candidate] (8.996 ms) : 0, 8996
Profiling [baseline] (101.126 ms) : 0, 101126
Profiling [candidate] (102.727 ms) : 0, 102727
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2025-04-17T20:20:43 2025-04-17T20:28:29
git_branch master mtoff/scfg_fix
git_commit_date 1744893822 1744919665
git_commit_sha e8762d2 9caeb5d
release_version 1.49.0-SNAPSHOT~e8762d2392 1.49.0-SNAPSHOT~9caeb5daf3
start_time 2025-04-17T20:20:28 2025-04-17T20:28:15
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1744922106 1744922106
ci_job_id 902419798 902419798
ci_pipeline_id 62572462 62572462
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-trnns-dz-project-304-concurrent-0-h6xn3n68 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-trnns-dz-project-304-concurrent-0-h6xn3n68 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 13 metrics, 17 unstable metrics.

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392
    dateFormat X
    axisFormat %s
section baseline
no_agent (387.369 µs) : 368, 407
.   : milestone, 387,
iast (519.132 µs) : 497, 541
.   : milestone, 519,
iast_FULL (734.377 µs) : 712, 757
.   : milestone, 734,
iast_GLOBAL (563.137 µs) : 541, 585
.   : milestone, 563,
iast_HARDCODED_SECRET_DISABLED (516.51 µs) : 495, 538
.   : milestone, 517,
iast_INACTIVE (466.64 µs) : 445, 488
.   : milestone, 467,
iast_TELEMETRY_OFF (505.444 µs) : 484, 527
.   : milestone, 505,
tracing (463.341 µs) : 442, 485
.   : milestone, 463,
section candidate
no_agent (381.534 µs) : 361, 402
.   : milestone, 382,
iast (509.111 µs) : 487, 531
.   : milestone, 509,
iast_FULL (729.112 µs) : 707, 751
.   : milestone, 729,
iast_GLOBAL (553.819 µs) : 532, 576
.   : milestone, 554,
iast_HARDCODED_SECRET_DISABLED (511.484 µs) : 490, 533
.   : milestone, 511,
iast_INACTIVE (471.586 µs) : 450, 494
.   : milestone, 472,
iast_TELEMETRY_OFF (501.866 µs) : 480, 524
.   : milestone, 502,
tracing (462.709 µs) : 442, 483
.   : milestone, 463,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 387.369 µs [367.573 µs, 407.165 µs] -
iast 519.132 µs [496.821 µs, 541.443 µs] 131.763 µs (34.0%)
iast_FULL 734.377 µs [712.064 µs, 756.689 µs] 347.008 µs (89.6%)
iast_GLOBAL 563.137 µs [541.026 µs, 585.249 µs] 175.768 µs (45.4%)
iast_HARDCODED_SECRET_DISABLED 516.51 µs [494.755 µs, 538.265 µs] 129.141 µs (33.3%)
iast_INACTIVE 466.64 µs [445.057 µs, 488.224 µs] 79.271 µs (20.5%)
iast_TELEMETRY_OFF 505.444 µs [483.653 µs, 527.235 µs] 118.075 µs (30.5%)
tracing 463.341 µs [441.841 µs, 484.841 µs] 75.972 µs (19.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 381.534 µs [361.263 µs, 401.805 µs] -
iast 509.111 µs [487.467 µs, 530.756 µs] 127.578 µs (33.4%)
iast_FULL 729.112 µs [707.108 µs, 751.115 µs] 347.578 µs (91.1%)
iast_GLOBAL 553.819 µs [532.115 µs, 575.522 µs] 172.285 µs (45.2%)
iast_HARDCODED_SECRET_DISABLED 511.484 µs [489.76 µs, 533.208 µs] 129.95 µs (34.1%)
iast_INACTIVE 471.586 µs [449.614 µs, 493.557 µs] 90.052 µs (23.6%)
iast_TELEMETRY_OFF 501.866 µs [480.07 µs, 523.662 µs] 120.332 µs (31.5%)
tracing 462.709 µs [442.105 µs, 483.313 µs] 81.175 µs (21.3%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.356 ms) : 1337, 1375
.   : milestone, 1356,
appsec (1.768 ms) : 1744, 1792
.   : milestone, 1768,
appsec_no_iast (1.732 ms) : 1709, 1756
.   : milestone, 1732,
code_origins (1.695 ms) : 1669, 1721
.   : milestone, 1695,
iast (1.515 ms) : 1491, 1540
.   : milestone, 1515,
profiling (1.525 ms) : 1502, 1548
.   : milestone, 1525,
tracing (1.508 ms) : 1483, 1534
.   : milestone, 1508,
section candidate
no_agent (1.371 ms) : 1351, 1390
.   : milestone, 1371,
appsec (1.736 ms) : 1712, 1760
.   : milestone, 1736,
appsec_no_iast (1.736 ms) : 1712, 1760
.   : milestone, 1736,
code_origins (1.696 ms) : 1668, 1723
.   : milestone, 1696,
iast (1.511 ms) : 1487, 1536
.   : milestone, 1511,
profiling (1.489 ms) : 1465, 1513
.   : milestone, 1489,
tracing (1.497 ms) : 1472, 1522
.   : milestone, 1497,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.356 ms [1.337 ms, 1.375 ms] -
appsec 1.768 ms [1.744 ms, 1.792 ms] 412.299 µs (30.4%)
appsec_no_iast 1.732 ms [1.709 ms, 1.756 ms] 376.598 µs (27.8%)
code_origins 1.695 ms [1.669 ms, 1.721 ms] 339.051 µs (25.0%)
iast 1.515 ms [1.491 ms, 1.54 ms] 159.514 µs (11.8%)
profiling 1.525 ms [1.502 ms, 1.548 ms] 169.216 µs (12.5%)
tracing 1.508 ms [1.483 ms, 1.534 ms] 152.681 µs (11.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.371 ms [1.351 ms, 1.39 ms] -
appsec 1.736 ms [1.712 ms, 1.76 ms] 365.126 µs (26.6%)
appsec_no_iast 1.736 ms [1.712 ms, 1.76 ms] 365.137 µs (26.6%)
code_origins 1.696 ms [1.668 ms, 1.723 ms] 324.951 µs (23.7%)
iast 1.511 ms [1.487 ms, 1.536 ms] 140.63 µs (10.3%)
profiling 1.489 ms [1.465 ms, 1.513 ms] 118.48 µs (8.6%)
tracing 1.497 ms [1.472 ms, 1.522 ms] 126.177 µs (9.2%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mtoff/scfg_fix
git_commit_date 1744893822 1744919665
git_commit_sha e8762d2 9caeb5d
release_version 1.49.0-SNAPSHOT~e8762d2392 1.49.0-SNAPSHOT~9caeb5daf3
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1744922573 1744922573
ci_job_id 902419799 902419799
ci_pipeline_id 62572462 62572462
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-hx2u5ryy-project-304-concurrent-0-hnpv77j0 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-hx2u5ryy-project-304-concurrent-0-hnpv77j0 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 tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.473 ms) : 1461, 1484
.   : milestone, 1473,
appsec (2.344 ms) : 2301, 2388
.   : milestone, 2344,
iast (2.126 ms) : 2069, 2182
.   : milestone, 2126,
iast_GLOBAL (2.176 ms) : 2120, 2232
.   : milestone, 2176,
profiling (1.988 ms) : 1944, 2032
.   : milestone, 1988,
tracing (1.961 ms) : 1918, 2003
.   : milestone, 1961,
section candidate
no_agent (1.474 ms) : 1462, 1485
.   : milestone, 1474,
appsec (2.345 ms) : 2301, 2388
.   : milestone, 2345,
iast (2.137 ms) : 2081, 2193
.   : milestone, 2137,
iast_GLOBAL (2.169 ms) : 2113, 2225
.   : milestone, 2169,
profiling (1.983 ms) : 1939, 2027
.   : milestone, 1983,
tracing (1.961 ms) : 1919, 2003
.   : milestone, 1961,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.484 ms] -
appsec 2.344 ms [2.301 ms, 2.388 ms] 871.486 µs (59.2%)
iast 2.126 ms [2.069 ms, 2.182 ms] 652.792 µs (44.3%)
iast_GLOBAL 2.176 ms [2.12 ms, 2.232 ms] 703.132 µs (47.7%)
profiling 1.988 ms [1.944 ms, 2.032 ms] 515.249 µs (35.0%)
tracing 1.961 ms [1.918 ms, 2.003 ms] 487.649 µs (33.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.474 ms [1.462 ms, 1.485 ms] -
appsec 2.345 ms [2.301 ms, 2.388 ms] 870.768 µs (59.1%)
iast 2.137 ms [2.081 ms, 2.193 ms] 662.913 µs (45.0%)
iast_GLOBAL 2.169 ms [2.113 ms, 2.225 ms] 695.4 µs (47.2%)
profiling 1.983 ms [1.939 ms, 2.027 ms] 509.308 µs (34.6%)
tracing 1.961 ms [1.919 ms, 2.003 ms] 487.295 µs (33.1%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.49.0-SNAPSHOT~9caeb5daf3, baseline=1.49.0-SNAPSHOT~e8762d2392
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.294 s) : 15294000, 15294000
.   : milestone, 15294000,
appsec (15.087 s) : 15087000, 15087000
.   : milestone, 15087000,
iast (18.271 s) : 18271000, 18271000
.   : milestone, 18271000,
iast_GLOBAL (18.019 s) : 18019000, 18019000
.   : milestone, 18019000,
profiling (14.855 s) : 14855000, 14855000
.   : milestone, 14855000,
tracing (15.065 s) : 15065000, 15065000
.   : milestone, 15065000,
section candidate
no_agent (15.594 s) : 15594000, 15594000
.   : milestone, 15594000,
appsec (15.114 s) : 15114000, 15114000
.   : milestone, 15114000,
iast (18.573 s) : 18573000, 18573000
.   : milestone, 18573000,
iast_GLOBAL (18.072 s) : 18072000, 18072000
.   : milestone, 18072000,
profiling (15.147 s) : 15147000, 15147000
.   : milestone, 15147000,
tracing (15.31 s) : 15310000, 15310000
.   : milestone, 15310000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.294 s [15.294 s, 15.294 s] -
appsec 15.087 s [15.087 s, 15.087 s] -207.0 ms (-1.4%)
iast 18.271 s [18.271 s, 18.271 s] 2.977 s (19.5%)
iast_GLOBAL 18.019 s [18.019 s, 18.019 s] 2.725 s (17.8%)
profiling 14.855 s [14.855 s, 14.855 s] -439.0 ms (-2.9%)
tracing 15.065 s [15.065 s, 15.065 s] -229.0 ms (-1.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.594 s [15.594 s, 15.594 s] -
appsec 15.114 s [15.114 s, 15.114 s] -480.0 ms (-3.1%)
iast 18.573 s [18.573 s, 18.573 s] 2.979 s (19.1%)
iast_GLOBAL 18.072 s [18.072 s, 18.072 s] 2.478 s (15.9%)
profiling 15.147 s [15.147 s, 15.147 s] -447.0 ms (-2.9%)
tracing 15.31 s [15.31 s, 15.31 s] -284.0 ms (-1.8%)

@mtoffl01 mtoffl01 changed the title [WIP] Parse system properties into key-vals in CLIHelper Apr 10, 2025
@mtoffl01 mtoffl01 changed the title Parse system properties into key-vals in CLIHelper Split system properties into key-vals in CLIHelper Apr 10, 2025
@mtoffl01 mtoffl01 changed the title Split system properties into key-vals in CLIHelper Split system properties into key-vals in CLIHelper and support template variables in YamlParser Apr 16, 2025
Comment on lines +389 to +390
// TODO: Modify CLIHelper to parse key-vals on JAVA_AGENT_ARGUMENT arguments, so we don't
// have to do the parsing here.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nothing is stopping me from making this change in CLIHelper.parseVmArgs now; the only reason I did not go ahead and do it is to avoid introducing unnecessary complexity / expanding the changes in this PR outside of its intended scope.


import datadog.trace.test.util.DDSpecification

class YamlParserTest extends DDSpecification{
Copy link
Contributor Author

Choose a reason for hiding this comment

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

These tests are in progress. I want to use helper methods from another test class, but blocked on how best to do this: [slack link]

I wrote helper functions inside a test class on the internal-api path that I'd like to use in other test classes, at other paths. These methods are already used in another test file at the same path (example), but now I'd like to use those same helper functions inside the components path.
Where is the best place to store these helper functions? Is there some kind of global test-util directory for cases like this? Or, would I maybe put them on the DDSpecification class?

@mtoffl01 mtoffl01 marked this pull request as ready for review April 17, 2025 20:47
@mtoffl01 mtoffl01 requested a review from a team as a code owner April 17, 2025 20:47
@mtoffl01 mtoffl01 requested a review from smola April 17, 2025 20:47
Copy link
Contributor

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

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

If you need help, please check our contributing guidelines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant