Skip to content

Conversation

@jpbempel
Copy link
Member

@jpbempel jpbempel commented Oct 10, 2025

What Does This Do

Introducing ProbeMetadata class to help get probe from instrumented
code. Instead of getting the probe instance from a map based on
probeId we are directly getting it from an array that is filled at instrumentation time. This way it's cheaper and abstracted the way to get probe definition to evaluate conditions for example. In instrumented code, instead of referring the probe by the probeId hard-coded we are using index in probe metadata array. ProbeMetadata class encapsulate an AtomicReferenceArray to make sure every cell as a volatile-style access and provide linear way to remove or add into this array.
For now linear scanning is fine as we don't expect a lot of probes in a same location. Could improve on that using bitmaps later if require. Instrumentation is changed to push int arrays instead of String arrays and can be optimize later to accept static arguments instead of varargs/array instead.

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@jpbempel jpbempel requested a review from a team as a code owner October 10, 2025 12:02
@jpbempel jpbempel added the tag: no release notes Changes to exclude from release notes label Oct 10, 2025
@jpbempel jpbempel removed the request for review from a team October 10, 2025 12:02
@jpbempel jpbempel requested a review from shatzi October 10, 2025 12:02
@jpbempel jpbempel added the comp: debugger Dynamic Instrumentation label Oct 10, 2025
@jpbempel jpbempel force-pushed the jpbempel/probe-metadata branch from 4886151 to f476c6f Compare October 10, 2025 12:02
@pr-commenter
Copy link

pr-commenter bot commented Oct 10, 2025

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1760368553 1760368898
end_time 2025-10-13T15:17:13 2025-10-13T15:22:57
git_branch master jpbempel/probe-metadata
git_commit_sha 6dc3f85 2a4f5d6
start_time 2025-10-13T15:15:54 2025-10-13T15:21:39
See matching parameters
Baseline Candidate
ci_job_id 1176748581 1176748581
ci_pipeline_id 79158384 79158384
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1760367922 1760367922

Summary

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

scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:basic unsure
[-11.399µs; -0.017µs] or [-4.523%; -0.007%]
better
[-20.789µs; -4.480µs] or [-7.369%; -1.588%]
better
[-21.396µs; -3.410µs] or [-7.334%; -1.169%]
unstable
[-2.457µs; +304.767µs] or [-0.329%; +40.866%]
unstable
[-119.887op/s; +262.134op/s] or [-4.556%; +9.961%]
See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-21.365µs; +9.061µs] or [-7.794%; +3.305%]
unstable
[-29.087µs; +17.255µs] or [-9.326%; +5.532%]
unstable
[-41.517µs; +26.002µs] or [-12.692%; +7.949%]
unstable
[-122.348µs; +104.425µs] or [-12.807%; +10.931%]
same
scenario:loop same same same same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (311.893 µs) : 290, 334
.   : milestone, 312,
basic (282.121 µs) : 273, 292
.   : milestone, 282,
loop (8.967 ms) : 8935, 8999
.   : milestone, 8967,
section candidate
noprobe (305.977 µs) : 284, 328
.   : milestone, 306,
basic (269.487 µs) : 264, 275
.   : milestone, 269,
loop (8.98 ms) : 8952, 9008
.   : milestone, 8980,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 311.893 µs [289.938 µs, 333.848 µs]
basic 282.121 µs [272.505 µs, 291.736 µs]
loop 8.967 ms [8.935 ms, 8.999 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 305.977 µs [283.796 µs, 328.159 µs]
basic 269.487 µs [263.547 µs, 275.427 µs]
loop 8.98 ms [8.952 ms, 9.008 ms]

@datadog-official
Copy link

datadog-official bot commented Oct 10, 2025

🎯 Code Coverage
Patch Coverage: 75.21%
Total Coverage: 59.92% (+0.02%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 2a4f5d6 | Docs | Was this helpful? Give us feedback!

@pr-commenter
Copy link

pr-commenter bot commented Oct 10, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/probe-metadata
git_commit_date 1760368047 1760367922
git_commit_sha 6dc3f85 2a4f5d6
release_version 1.55.0-SNAPSHOT~6dc3f85c93 1.55.0-SNAPSHOT~2a4f5d653d
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1760370002 1760370002
ci_job_id 1176748574 1176748574
ci_pipeline_id 79158384 79158384
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-6tbvqasy 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-6tbvqasy 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

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

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:petclinic:iast:Remote Config worse
[+13.714µs; +47.869µs] or [+2.301%; +8.031%]
626.831µs 596.039µs
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.016 s) : 0, 1016482
Total [baseline] (10.669 s) : 0, 10669442
Agent [candidate] (1.015 s) : 0, 1015143
Total [candidate] (10.595 s) : 0, 10594571
section appsec
Agent [baseline] (1.203 s) : 0, 1202785
Total [baseline] (11.072 s) : 0, 11071568
Agent [candidate] (1.194 s) : 0, 1194107
Total [candidate] (11.059 s) : 0, 11059312
section iast
Agent [baseline] (1.151 s) : 0, 1151483
Total [baseline] (11.064 s) : 0, 11064133
Agent [candidate] (1.151 s) : 0, 1150505
Total [candidate] (11.04 s) : 0, 11040249
section profiling
Agent [baseline] (1.167 s) : 0, 1166726
Total [baseline] (10.988 s) : 0, 10987550
Agent [candidate] (1.162 s) : 0, 1161740
Total [candidate] (11.039 s) : 0, 11039246
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.016 s -
Agent appsec 1.203 s 186.303 ms (18.3%)
Agent iast 1.151 s 135.001 ms (13.3%)
Agent profiling 1.167 s 150.245 ms (14.8%)
Total tracing 10.669 s -
Total appsec 11.072 s 402.126 ms (3.8%)
Total iast 11.064 s 394.691 ms (3.7%)
Total profiling 10.988 s 318.109 ms (3.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.015 s -
Agent appsec 1.194 s 178.964 ms (17.6%)
Agent iast 1.151 s 135.362 ms (13.3%)
Agent profiling 1.162 s 146.597 ms (14.4%)
Total tracing 10.595 s -
Total appsec 11.059 s 464.741 ms (4.4%)
Total iast 11.04 s 445.678 ms (4.2%)
Total profiling 11.039 s 444.676 ms (4.2%)
gantt
    title petclinic - break down per module: candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.453 ms) : 0, 1453
crashtracking [candidate] (1.457 ms) : 0, 1457
BytebuddyAgent [baseline] (692.088 ms) : 0, 692088
BytebuddyAgent [candidate] (691.695 ms) : 0, 691695
GlobalTracer [baseline] (241.751 ms) : 0, 241751
GlobalTracer [candidate] (241.56 ms) : 0, 241560
AppSec [baseline] (32.23 ms) : 0, 32230
AppSec [candidate] (32.184 ms) : 0, 32184
Debugger [baseline] (6.413 ms) : 0, 6413
Debugger [candidate] (6.398 ms) : 0, 6398
Remote Config [baseline] (721.183 µs) : 0, 721
Remote Config [candidate] (703.69 µs) : 0, 704
Telemetry [baseline] (9.373 ms) : 0, 9373
Telemetry [candidate] (9.255 ms) : 0, 9255
Flare Poller [baseline] (11.121 ms) : 0, 11121
Flare Poller [candidate] (10.72 ms) : 0, 10720
section appsec
crashtracking [baseline] (1.48 ms) : 0, 1480
crashtracking [candidate] (1.447 ms) : 0, 1447
BytebuddyAgent [baseline] (723.464 ms) : 0, 723464
BytebuddyAgent [candidate] (717.699 ms) : 0, 717699
GlobalTracer [baseline] (236.104 ms) : 0, 236104
GlobalTracer [candidate] (234.459 ms) : 0, 234459
AppSec [baseline] (176.027 ms) : 0, 176027
AppSec [candidate] (175.407 ms) : 0, 175407
Debugger [baseline] (6.225 ms) : 0, 6225
Debugger [candidate] (6.153 ms) : 0, 6153
Remote Config [baseline] (657.129 µs) : 0, 657
Remote Config [candidate] (658.679 µs) : 0, 659
Telemetry [baseline] (8.587 ms) : 0, 8587
Telemetry [candidate] (8.541 ms) : 0, 8541
Flare Poller [baseline] (3.919 ms) : 0, 3919
Flare Poller [candidate] (3.922 ms) : 0, 3922
IAST [baseline] (25.033 ms) : 0, 25033
IAST [candidate] (24.674 ms) : 0, 24674
section iast
crashtracking [baseline] (1.456 ms) : 0, 1456
crashtracking [candidate] (1.451 ms) : 0, 1451
BytebuddyAgent [baseline] (815.7 ms) : 0, 815700
BytebuddyAgent [candidate] (815.297 ms) : 0, 815297
GlobalTracer [baseline] (231.357 ms) : 0, 231357
GlobalTracer [candidate] (231.179 ms) : 0, 231179
AppSec [baseline] (35.469 ms) : 0, 35469
AppSec [candidate] (35.138 ms) : 0, 35138
Debugger [baseline] (6.12 ms) : 0, 6120
Debugger [candidate] (6.15 ms) : 0, 6150
Remote Config [baseline] (596.039 µs) : 0, 596
Remote Config [candidate] (626.831 µs) : 0, 627
Telemetry [baseline] (8.659 ms) : 0, 8659
Telemetry [candidate] (8.683 ms) : 0, 8683
Flare Poller [baseline] (4.227 ms) : 0, 4227
Flare Poller [candidate] (4.153 ms) : 0, 4153
IAST [baseline] (26.305 ms) : 0, 26305
IAST [candidate] (26.275 ms) : 0, 26275
section profiling
ProfilingAgent [baseline] (106.474 ms) : 0, 106474
ProfilingAgent [candidate] (107.992 ms) : 0, 107992
crashtracking [baseline] (1.441 ms) : 0, 1441
crashtracking [candidate] (1.448 ms) : 0, 1448
BytebuddyAgent [baseline] (724.645 ms) : 0, 724645
BytebuddyAgent [candidate] (721.133 ms) : 0, 721133
GlobalTracer [baseline] (218.803 ms) : 0, 218803
GlobalTracer [candidate] (217.918 ms) : 0, 217918
AppSec [baseline] (32.588 ms) : 0, 32588
AppSec [candidate] (32.274 ms) : 0, 32274
Debugger [baseline] (6.555 ms) : 0, 6555
Debugger [candidate] (6.565 ms) : 0, 6565
Remote Config [baseline] (1.547 ms) : 0, 1547
Remote Config [candidate] (1.618 ms) : 0, 1618
Telemetry [baseline] (15.537 ms) : 0, 15537
Telemetry [candidate] (14.457 ms) : 0, 14457
Flare Poller [baseline] (4.09 ms) : 0, 4090
Flare Poller [candidate] (4.956 ms) : 0, 4956
Profiling [baseline] (109.188 ms) : 0, 109188
Profiling [candidate] (109.322 ms) : 0, 109322
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.013 s) : 0, 1013239
Total [baseline] (8.662 s) : 0, 8662451
Agent [candidate] (1.015 s) : 0, 1014701
Total [candidate] (8.659 s) : 0, 8659496
section iast
Agent [baseline] (1.158 s) : 0, 1158295
Total [baseline] (9.344 s) : 0, 9343692
Agent [candidate] (1.15 s) : 0, 1149641
Total [candidate] (9.3 s) : 0, 9299914
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.013 s -
Agent iast 1.158 s 145.056 ms (14.3%)
Total tracing 8.662 s -
Total iast 9.344 s 681.241 ms (7.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.015 s -
Agent iast 1.15 s 134.94 ms (13.3%)
Total tracing 8.659 s -
Total iast 9.3 s 640.418 ms (7.4%)
gantt
    title insecure-bank - break down per module: candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.465 ms) : 0, 1465
crashtracking [candidate] (1.478 ms) : 0, 1478
BytebuddyAgent [baseline] (692.086 ms) : 0, 692086
BytebuddyAgent [candidate] (692.633 ms) : 0, 692633
GlobalTracer [baseline] (241.16 ms) : 0, 241160
GlobalTracer [candidate] (241.759 ms) : 0, 241759
AppSec [baseline] (32.342 ms) : 0, 32342
AppSec [candidate] (32.376 ms) : 0, 32376
Debugger [baseline] (6.412 ms) : 0, 6412
Debugger [candidate] (6.448 ms) : 0, 6448
Remote Config [baseline] (700.8 µs) : 0, 701
Remote Config [candidate] (714.479 µs) : 0, 714
Telemetry [baseline] (9.262 ms) : 0, 9262
Telemetry [candidate] (9.4 ms) : 0, 9400
Flare Poller [baseline] (8.753 ms) : 0, 8753
Flare Poller [candidate] (8.712 ms) : 0, 8712
section iast
crashtracking [baseline] (1.502 ms) : 0, 1502
crashtracking [candidate] (1.482 ms) : 0, 1482
BytebuddyAgent [baseline] (820.389 ms) : 0, 820389
BytebuddyAgent [candidate] (814.544 ms) : 0, 814544
GlobalTracer [baseline] (232.782 ms) : 0, 232782
GlobalTracer [candidate] (230.947 ms) : 0, 230947
IAST [baseline] (26.779 ms) : 0, 26779
IAST [candidate] (26.384 ms) : 0, 26384
AppSec [baseline] (35.233 ms) : 0, 35233
AppSec [candidate] (35.28 ms) : 0, 35280
Debugger [baseline] (6.204 ms) : 0, 6204
Debugger [candidate] (6.074 ms) : 0, 6074
Remote Config [baseline] (629.155 µs) : 0, 629
Remote Config [candidate] (615.979 µs) : 0, 616
Telemetry [baseline] (8.815 ms) : 0, 8815
Telemetry [candidate] (8.502 ms) : 0, 8502
Flare Poller [baseline] (4.217 ms) : 0, 4217
Flare Poller [candidate] (4.313 ms) : 0, 4313
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/probe-metadata
git_commit_date 1760368047 1760367922
git_commit_sha 6dc3f85 2a4f5d6
release_version 1.55.0-SNAPSHOT~6dc3f85c93 1.55.0-SNAPSHOT~2a4f5d653d
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1760369460 1760369460
ci_job_id 1176748575 1176748575
ci_pipeline_id 79158384 79158384
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-wfxx65lg 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-wfxx65lg 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:iast_GLOBAL:high_load worse
[+384.764µs; +794.978µs] or [+3.734%; +7.714%]
unstable
[-73.910op/s; +25.535op/s] or [-16.390%; +5.663%]
10.895ms 426.750op/s 10.305ms 450.938op/s
scenario:load:petclinic:iast:high_load worse
[+2.410ms; +3.265ms] or [+5.436%; +7.365%]
unstable
[-14.952op/s; -0.370op/s] or [-13.989%; -0.346%]
47.168ms 99.225op/s 44.331ms 106.886op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93
    dateFormat X
    axisFormat %s
section baseline
no_agent (37.265 ms) : 36966, 37564
.   : milestone, 37265,
appsec (48.401 ms) : 47966, 48836
.   : milestone, 48401,
code_origins (45.089 ms) : 44715, 45464
.   : milestone, 45089,
iast (44.331 ms) : 43956, 44705
.   : milestone, 44331,
profiling (49.113 ms) : 48655, 49570
.   : milestone, 49113,
tracing (45.041 ms) : 44653, 45429
.   : milestone, 45041,
section candidate
no_agent (37.203 ms) : 36907, 37499
.   : milestone, 37203,
appsec (48.957 ms) : 48514, 49400
.   : milestone, 48957,
code_origins (44.471 ms) : 44089, 44854
.   : milestone, 44471,
iast (47.168 ms) : 46749, 47586
.   : milestone, 47168,
profiling (48.525 ms) : 48112, 48937
.   : milestone, 48525,
tracing (45.543 ms) : 45140, 45946
.   : milestone, 45543,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.265 ms [36.966 ms, 37.564 ms] -
appsec 48.401 ms [47.966 ms, 48.836 ms] 11.137 ms (29.9%)
code_origins 45.089 ms [44.715 ms, 45.464 ms] 7.825 ms (21.0%)
iast 44.331 ms [43.956 ms, 44.705 ms] 7.066 ms (19.0%)
profiling 49.113 ms [48.655 ms, 49.57 ms] 11.848 ms (31.8%)
tracing 45.041 ms [44.653 ms, 45.429 ms] 7.777 ms (20.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.203 ms [36.907 ms, 37.499 ms] -
appsec 48.957 ms [48.514 ms, 49.4 ms] 11.754 ms (31.6%)
code_origins 44.471 ms [44.089 ms, 44.854 ms] 7.269 ms (19.5%)
iast 47.168 ms [46.749 ms, 47.586 ms] 9.965 ms (26.8%)
profiling 48.525 ms [48.112 ms, 48.937 ms] 11.322 ms (30.4%)
tracing 45.543 ms [45.14 ms, 45.946 ms] 8.34 ms (22.4%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.391 ms) : 4341, 4441
.   : milestone, 4391,
iast (9.739 ms) : 9579, 9899
.   : milestone, 9739,
iast_FULL (15.015 ms) : 14715, 15316
.   : milestone, 15015,
iast_GLOBAL (10.305 ms) : 10126, 10485
.   : milestone, 10305,
profiling (8.997 ms) : 8846, 9148
.   : milestone, 8997,
tracing (7.921 ms) : 7807, 8034
.   : milestone, 7921,
section candidate
no_agent (4.376 ms) : 4323, 4428
.   : milestone, 4376,
iast (9.846 ms) : 9681, 10011
.   : milestone, 9846,
iast_FULL (14.806 ms) : 14513, 15100
.   : milestone, 14806,
iast_GLOBAL (10.895 ms) : 10694, 11096
.   : milestone, 10895,
profiling (8.766 ms) : 8625, 8907
.   : milestone, 8766,
tracing (7.834 ms) : 7718, 7950
.   : milestone, 7834,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.391 ms [4.341 ms, 4.441 ms] -
iast 9.739 ms [9.579 ms, 9.899 ms] 5.348 ms (121.8%)
iast_FULL 15.015 ms [14.715 ms, 15.316 ms] 10.624 ms (242.0%)
iast_GLOBAL 10.305 ms [10.126 ms, 10.485 ms] 5.915 ms (134.7%)
profiling 8.997 ms [8.846 ms, 9.148 ms] 4.606 ms (104.9%)
tracing 7.921 ms [7.807 ms, 8.034 ms] 3.53 ms (80.4%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.376 ms [4.323 ms, 4.428 ms] -
iast 9.846 ms [9.681 ms, 10.011 ms] 5.47 ms (125.0%)
iast_FULL 14.806 ms [14.513 ms, 15.1 ms] 10.43 ms (238.4%)
iast_GLOBAL 10.895 ms [10.694 ms, 11.096 ms] 6.519 ms (149.0%)
profiling 8.766 ms [8.625 ms, 8.907 ms] 4.39 ms (100.3%)
tracing 7.834 ms [7.718 ms, 7.95 ms] 3.458 ms (79.0%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/probe-metadata
git_commit_date 1760368047 1760367922
git_commit_sha 6dc3f85 2a4f5d6
release_version 1.55.0-SNAPSHOT~6dc3f85c93 1.55.0-SNAPSHOT~2a4f5d653d
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1760370165 1760370165
ci_job_id 1176748576 1176748576
ci_pipeline_id 79158384 79158384
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-2-wcrlaijx 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-2-wcrlaijx 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.652 s) : 15652000, 15652000
.   : milestone, 15652000,
appsec (15.184 s) : 15184000, 15184000
.   : milestone, 15184000,
iast (18.415 s) : 18415000, 18415000
.   : milestone, 18415000,
iast_GLOBAL (18.129 s) : 18129000, 18129000
.   : milestone, 18129000,
profiling (15.937 s) : 15937000, 15937000
.   : milestone, 15937000,
tracing (15.323 s) : 15323000, 15323000
.   : milestone, 15323000,
section candidate
no_agent (15.295 s) : 15295000, 15295000
.   : milestone, 15295000,
appsec (15.037 s) : 15037000, 15037000
.   : milestone, 15037000,
iast (18.92 s) : 18920000, 18920000
.   : milestone, 18920000,
iast_GLOBAL (18.049 s) : 18049000, 18049000
.   : milestone, 18049000,
profiling (15.38 s) : 15380000, 15380000
.   : milestone, 15380000,
tracing (15.078 s) : 15078000, 15078000
.   : milestone, 15078000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.652 s [15.652 s, 15.652 s] -
appsec 15.184 s [15.184 s, 15.184 s] -468.0 ms (-3.0%)
iast 18.415 s [18.415 s, 18.415 s] 2.763 s (17.7%)
iast_GLOBAL 18.129 s [18.129 s, 18.129 s] 2.477 s (15.8%)
profiling 15.937 s [15.937 s, 15.937 s] 285.0 ms (1.8%)
tracing 15.323 s [15.323 s, 15.323 s] -329.0 ms (-2.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.295 s [15.295 s, 15.295 s] -
appsec 15.037 s [15.037 s, 15.037 s] -258.0 ms (-1.7%)
iast 18.92 s [18.92 s, 18.92 s] 3.625 s (23.7%)
iast_GLOBAL 18.049 s [18.049 s, 18.049 s] 2.754 s (18.0%)
profiling 15.38 s [15.38 s, 15.38 s] 85.0 ms (0.6%)
tracing 15.078 s [15.078 s, 15.078 s] -217.0 ms (-1.4%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~2a4f5d653d, baseline=1.55.0-SNAPSHOT~6dc3f85c93
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.473 ms) : 1461, 1484
.   : milestone, 1473,
appsec (3.696 ms) : 3478, 3913
.   : milestone, 3696,
iast (2.21 ms) : 2146, 2274
.   : milestone, 2210,
iast_GLOBAL (2.242 ms) : 2178, 2306
.   : milestone, 2242,
profiling (2.037 ms) : 1986, 2088
.   : milestone, 2037,
tracing (2.027 ms) : 1978, 2077
.   : milestone, 2027,
section candidate
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (3.709 ms) : 3492, 3927
.   : milestone, 3709,
iast (2.197 ms) : 2133, 2260
.   : milestone, 2197,
iast_GLOBAL (2.242 ms) : 2177, 2306
.   : milestone, 2242,
profiling (2.073 ms) : 2020, 2127
.   : milestone, 2073,
tracing (2.019 ms) : 1969, 2069
.   : milestone, 2019,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.484 ms] -
appsec 3.696 ms [3.478 ms, 3.913 ms] 2.223 ms (151.0%)
iast 2.21 ms [2.146 ms, 2.274 ms] 737.233 µs (50.1%)
iast_GLOBAL 2.242 ms [2.178 ms, 2.306 ms] 769.528 µs (52.3%)
profiling 2.037 ms [1.986 ms, 2.088 ms] 564.126 µs (38.3%)
tracing 2.027 ms [1.978 ms, 2.077 ms] 554.808 µs (37.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 3.709 ms [3.492 ms, 3.927 ms] 2.238 ms (152.1%)
iast 2.197 ms [2.133 ms, 2.26 ms] 725.209 µs (49.3%)
iast_GLOBAL 2.242 ms [2.177 ms, 2.306 ms] 770.039 µs (52.3%)
profiling 2.073 ms [2.02 ms, 2.127 ms] 601.82 µs (40.9%)
tracing 2.019 ms [1.969 ms, 2.069 ms] 547.314 µs (37.2%)

@jpbempel jpbempel force-pushed the jpbempel/probe-metadata branch from f476c6f to a81b86f Compare October 10, 2025 16:00
Introducing ProbeMetadata class to help get probe from instrumented
 code. Instead of getting the probe instance from a map based on
probeId we are directly getting it from an array that is filled at
instrumentation time. This way it's cheaper and abstracted the way to
get probe definition to evaluate conditions for example.
In instrumented code, instead of referring the probe by the probeId
hard-coded we are using index in probe metadata array.
ProbeMetadata class encapsulate an AtomicReferenceArray to make sure
every cell as a volatile-style access and provide linear way to remove
or add into this array.
For now linear scanning is fine as we don't expect a lot of probes in
a same location. Could improve on that using bitmaps later if require.
Instrumentation is changed to push int arrays instead of String arrays
and can be optimize later to accept static arguments instead of
varargs/array instead.
@jpbempel jpbempel force-pushed the jpbempel/probe-metadata branch from a81b86f to 4452a95 Compare October 13, 2025 14:39
@jpbempel jpbempel requested a review from a team as a code owner October 13, 2025 14:39
@jpbempel jpbempel requested a review from mhlidd October 13, 2025 14:39
@jpbempel jpbempel force-pushed the jpbempel/probe-metadata branch from 4452a95 to 2a4f5d6 Compare October 13, 2025 15:05
@jpbempel jpbempel merged commit 425276d into master Oct 15, 2025
537 checks passed
@jpbempel jpbempel deleted the jpbempel/probe-metadata branch October 15, 2025 16:30
@github-actions github-actions bot added this to the 1.55.0 milestone Oct 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: debugger Dynamic Instrumentation tag: no release notes Changes to exclude from release notes type: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants