Skip to content

Conversation

@amarziali
Copy link
Contributor

@amarziali amarziali commented Jan 19, 2026

What Does This Do

This PR introduces a new @AppliesOn annotation that allows method advices to explicitly override the target system(s) defined at the InstrumenterModule level.

In addition to the annotation itself, this PR refactors how applicability is computed and recorded so that only advices that are known a priori to be applicable are ever loaded or considered, significantly improving startup performance and reducing unnecessary classloading.

This PR also refactor the tomcat server instrumentation in order to separate tracing and pure context extraction concerns. This showcases how to use @AppliesOn

Performance impact

A major benefit of this change is startup-time improvement.

By limiting classloading strictly to modules and advices that are known in advance to be applicable to the enabled target systems,

we:

  • avoid loading large numbers of advice classes that would never be used,
  • reduce work done during agent bootstrap,

This is especially impactful in environments with:

  • limited enabled systems (i.e. only tracing),
  • or short-lived JVMs.

Please note that the startup gain is independent from the application classloading / size / nature and, for a given number of enabled target systems, will give the same startup gain. So that, being the startup time relatively small, the gain will be more appreciable in applications having a lightweight quick startup.

Motivation

Historically, target-system applicability (TargetSystem) has been defined at the InstrumenterModule level and applied uniformly to all advices contributed by the module. This approach has several limitations:

  • Some advices are general-purpose or cross-cutting and should apply independently of the module’s main target system.
  • Applicability decisions were often deferred until runtime, requiring:
    • loading advice classes that would never actually be applied, and
    • using configuration-driven activation logic in places where it does not belong.
  • This resulted in:
    • unnecessary classloading,
    • slower startup,
    • and unclear separation between structural applicability and runtime enablement.

Key changes

1. @AppliesOn annotation for advices

  • A new @AppliesOn(TargetSystem...) annotation can be applied to method advice classes.
  • When present, it overrides the target systems inherited from the enclosing InstrumenterModule.
  • When absent, existing behavior is preserved.
  • This allows fine-grained, declarative control over where an advice is eligible to run, without duplicating modules or adding ad-hoc logic.

2. New target systems: CONTEXT_TRACKING and RASP

This PR introduces two new TargetSystems:

  • CONTEXT_TRACKING: always enabled, it's meant to be used by advices contributing to pure context manipulation to separate them from the pure tracing ones.
  • RASP: a dedicated one to separate from APPSEC/IAST

Additional Notes

The @AppliesOn annotation is today used to override the applicability of an advice. In a larger refactoring effort, we could think annotating all the advices in order to get rid to the more strict hierarchy of InstrumenterModule.(Tracing|Iast|,..) . Only using then interfaces will bring design advantages.

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@pr-commenter
Copy link

pr-commenter bot commented Jan 19, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/advice-index
git_commit_date 1769064633 1769511232
git_commit_sha ea99945 38964db
release_version 1.59.0-SNAPSHOT~ea999452fb 1.59.0-SNAPSHOT~38964dbcc8
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769513058 1769513058
ci_job_id 1379440921 1379440921
ci_pipeline_id 93008625 93008625
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-biq78ndq 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-biq78ndq 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 6 performance improvements and 2 performance regressions! Performance is the same for 49 metrics, 8 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:insecure-bank:tracing:BytebuddyAgent better
[-42.577ms; -19.190ms] or [-6.491%; -2.926%]
625.028ms 655.912ms
scenario:startup:petclinic:appsec:Agent.start better
[-43.078ms; -32.237ms] or [-3.406%; -2.549%]
1.227s 1.265s
scenario:startup:petclinic:appsec:BytebuddyAgent better
[-45.258ms; -38.781ms] or [-6.549%; -5.611%]
649.089ms 691.108ms
scenario:startup:petclinic:appsec:GlobalTracer worse
[+6.340ms; +8.839ms] or [+2.452%; +3.418%]
266.205ms 258.615ms
scenario:startup:petclinic:appsec:IAST worse
[+525.006µs; +1166.255µs] or [+2.146%; +4.768%]
25.305ms 24.459ms
scenario:startup:petclinic:profiling:BytebuddyAgent better
[-35.098ms; -14.711ms] or [-4.993%; -2.093%]
677.997ms 702.902ms
scenario:startup:petclinic:tracing:Agent.start better
[-35.167ms; -28.934ms] or [-3.239%; -2.664%]
1.054s 1.086s
scenario:startup:petclinic:tracing:BytebuddyAgent better
[-34.583ms; -30.895ms] or [-5.304%; -4.739%]
619.210ms 651.949ms
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.09 s) : 0, 1090449
Total [baseline] (8.815 s) : 0, 8814864
Agent [candidate] (1.061 s) : 0, 1061274
Total [candidate] (8.766 s) : 0, 8765680
section iast
Agent [baseline] (1.225 s) : 0, 1225289
Total [baseline] (9.33 s) : 0, 9329511
Agent [candidate] (1.218 s) : 0, 1217874
Total [candidate] (9.343 s) : 0, 9343147
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.09 s -
Agent iast 1.225 s 134.84 ms (12.4%)
Total tracing 8.815 s -
Total iast 9.33 s 514.647 ms (5.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.061 s -
Agent iast 1.218 s 156.599 ms (14.8%)
Total tracing 8.766 s -
Total iast 9.343 s 577.467 ms (6.6%)
gantt
    title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.215 ms) : 0, 1215
BytebuddyAgent [baseline] (655.912 ms) : 0, 655912
BytebuddyAgent [candidate] (625.028 ms) : 0, 625028
GlobalTracer [baseline] (283.671 ms) : 0, 283671
GlobalTracer [candidate] (285.149 ms) : 0, 285149
AppSec [baseline] (32.768 ms) : 0, 32768
AppSec [candidate] (33.214 ms) : 0, 33214
Debugger [baseline] (67.594 ms) : 0, 67594
Debugger [candidate] (64.244 ms) : 0, 64244
Remote Config [baseline] (633.992 µs) : 0, 634
Remote Config [candidate] (612.848 µs) : 0, 613
Telemetry [baseline] (9.016 ms) : 0, 9016
Telemetry [candidate] (9.089 ms) : 0, 9089
Flare Poller [baseline] (3.869 ms) : 0, 3869
Flare Poller [candidate] (6.964 ms) : 0, 6964
section iast
crashtracking [baseline] (1.179 ms) : 0, 1179
crashtracking [candidate] (1.18 ms) : 0, 1180
BytebuddyAgent [baseline] (793.106 ms) : 0, 793106
BytebuddyAgent [candidate] (786.216 ms) : 0, 786216
GlobalTracer [baseline] (256.717 ms) : 0, 256717
GlobalTracer [candidate] (255.397 ms) : 0, 255397
IAST [baseline] (26.934 ms) : 0, 26934
IAST [candidate] (26.929 ms) : 0, 26929
AppSec [baseline] (35.38 ms) : 0, 35380
AppSec [candidate] (34.583 ms) : 0, 34583
Debugger [baseline] (63.954 ms) : 0, 63954
Debugger [candidate] (65.536 ms) : 0, 65536
Remote Config [baseline] (565.811 µs) : 0, 566
Remote Config [candidate] (595.812 µs) : 0, 596
Telemetry [baseline] (8.359 ms) : 0, 8359
Telemetry [candidate] (8.56 ms) : 0, 8560
Flare Poller [baseline] (3.57 ms) : 0, 3570
Flare Poller [candidate] (3.522 ms) : 0, 3522
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.086 s) : 0, 1085912
Total [baseline] (10.84 s) : 0, 10840422
Agent [candidate] (1.054 s) : 0, 1053861
Total [candidate] (11.066 s) : 0, 11065967
section appsec
Agent [baseline] (1.265 s) : 0, 1264659
Total [baseline] (11.014 s) : 0, 11014173
Agent [candidate] (1.227 s) : 0, 1227002
Total [candidate] (11.138 s) : 0, 11138404
section iast
Agent [baseline] (1.224 s) : 0, 1224274
Total [baseline] (11.191 s) : 0, 11191077
Agent [candidate] (1.219 s) : 0, 1218959
Total [candidate] (11.103 s) : 0, 11102630
section profiling
Agent [baseline] (1.205 s) : 0, 1205273
Total [baseline] (10.897 s) : 0, 10896821
Agent [candidate] (1.185 s) : 0, 1185438
Total [candidate] (10.92 s) : 0, 10919863
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.086 s -
Agent appsec 1.265 s 178.747 ms (16.5%)
Agent iast 1.224 s 138.362 ms (12.7%)
Agent profiling 1.205 s 119.361 ms (11.0%)
Total tracing 10.84 s -
Total appsec 11.014 s 173.751 ms (1.6%)
Total iast 11.191 s 350.654 ms (3.2%)
Total profiling 10.897 s 56.399 ms (0.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.054 s -
Agent appsec 1.227 s 173.141 ms (16.4%)
Agent iast 1.219 s 165.097 ms (15.7%)
Agent profiling 1.185 s 131.577 ms (12.5%)
Total tracing 11.066 s -
Total appsec 11.138 s 72.437 ms (0.7%)
Total iast 11.103 s 36.663 ms (0.3%)
Total profiling 10.92 s -146.104 ms (-1.3%)
gantt
    title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.182 ms) : 0, 1182
crashtracking [candidate] (1.179 ms) : 0, 1179
BytebuddyAgent [baseline] (651.949 ms) : 0, 651949
BytebuddyAgent [candidate] (619.21 ms) : 0, 619210
GlobalTracer [baseline] (283.239 ms) : 0, 283239
GlobalTracer [candidate] (283.336 ms) : 0, 283336
AppSec [baseline] (32.495 ms) : 0, 32495
AppSec [candidate] (33.01 ms) : 0, 33010
Debugger [baseline] (67.973 ms) : 0, 67973
Debugger [candidate] (66.449 ms) : 0, 66449
Remote Config [baseline] (705.806 µs) : 0, 706
Remote Config [candidate] (618.741 µs) : 0, 619
Telemetry [baseline] (8.97 ms) : 0, 8970
Telemetry [candidate] (9.092 ms) : 0, 9092
Flare Poller [baseline] (3.784 ms) : 0, 3784
Flare Poller [candidate] (5.368 ms) : 0, 5368
section appsec
crashtracking [baseline] (1.177 ms) : 0, 1177
crashtracking [candidate] (1.183 ms) : 0, 1183
BytebuddyAgent [baseline] (691.108 ms) : 0, 691108
BytebuddyAgent [candidate] (649.089 ms) : 0, 649089
GlobalTracer [baseline] (258.615 ms) : 0, 258615
GlobalTracer [candidate] (266.205 ms) : 0, 266205
AppSec [baseline] (173.273 ms) : 0, 173273
AppSec [candidate] (168.383 ms) : 0, 168383
Debugger [baseline] (66.667 ms) : 0, 66667
Debugger [candidate] (67.592 ms) : 0, 67592
Remote Config [baseline] (853.587 µs) : 0, 854
Remote Config [candidate] (734.021 µs) : 0, 734
Telemetry [baseline] (9.357 ms) : 0, 9357
Telemetry [candidate] (9.288 ms) : 0, 9288
Flare Poller [baseline] (3.761 ms) : 0, 3761
Flare Poller [candidate] (3.759 ms) : 0, 3759
IAST [baseline] (24.459 ms) : 0, 24459
IAST [candidate] (25.305 ms) : 0, 25305
section iast
crashtracking [baseline] (1.177 ms) : 0, 1177
crashtracking [candidate] (1.183 ms) : 0, 1183
BytebuddyAgent [baseline] (792.353 ms) : 0, 792353
BytebuddyAgent [candidate] (785.924 ms) : 0, 785924
GlobalTracer [baseline] (255.059 ms) : 0, 255059
GlobalTracer [candidate] (255.516 ms) : 0, 255516
AppSec [baseline] (34.45 ms) : 0, 34450
AppSec [candidate] (32.743 ms) : 0, 32743
Debugger [baseline] (66.195 ms) : 0, 66195
Debugger [candidate] (68.327 ms) : 0, 68327
Remote Config [baseline] (593.808 µs) : 0, 594
Remote Config [candidate] (605.842 µs) : 0, 606
Telemetry [baseline] (8.59 ms) : 0, 8590
Telemetry [candidate] (8.564 ms) : 0, 8564
Flare Poller [baseline] (3.608 ms) : 0, 3608
Flare Poller [candidate] (3.532 ms) : 0, 3532
IAST [baseline] (26.829 ms) : 0, 26829
IAST [candidate] (27.026 ms) : 0, 27026
section profiling
ProfilingAgent [baseline] (97.159 ms) : 0, 97159
ProfilingAgent [candidate] (98.955 ms) : 0, 98955
crashtracking [baseline] (1.211 ms) : 0, 1211
crashtracking [candidate] (1.227 ms) : 0, 1227
BytebuddyAgent [baseline] (702.902 ms) : 0, 702902
BytebuddyAgent [candidate] (677.997 ms) : 0, 677997
GlobalTracer [baseline] (220.974 ms) : 0, 220974
GlobalTracer [candidate] (222.606 ms) : 0, 222606
AppSec [baseline] (32.047 ms) : 0, 32047
AppSec [candidate] (32.484 ms) : 0, 32484
Debugger [baseline] (67.786 ms) : 0, 67786
Debugger [candidate] (68.785 ms) : 0, 68785
Remote Config [baseline] (644.257 µs) : 0, 644
Remote Config [candidate] (624.48 µs) : 0, 624
Telemetry [baseline] (8.902 ms) : 0, 8902
Telemetry [candidate] (8.721 ms) : 0, 8721
Flare Poller [baseline] (3.779 ms) : 0, 3779
Flare Poller [candidate] (3.786 ms) : 0, 3786
Profiling [baseline] (97.733 ms) : 0, 97733
Profiling [candidate] (99.534 ms) : 0, 99534
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/advice-index
git_commit_date 1769064633 1769511232
git_commit_sha ea99945 38964db
release_version 1.59.0-SNAPSHOT~ea999452fb 1.59.0-SNAPSHOT~38964dbcc8
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769513535 1769513535
ci_job_id 1379440922 1379440922
ci_pipeline_id 93008625 93008625
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-rgo9idnw 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-rgo9idnw 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 3 performance improvements and 1 performance regressions! Performance is the same for 16 metrics, 16 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:iast:high_load worse
[+53.357µs; +132.590µs] or [+2.237%; +5.558%]
same
[-153.549µs; +238.757µs] or [-2.144%; +3.333%]
unstable
[-187.215op/s; +121.590op/s] or [-12.696%; +8.246%]
2.479ms 7.205ms 1441.781op/s 2.386ms 7.163ms 1474.594op/s
scenario:load:petclinic:no_agent:high_load better
[-2.150ms; -0.489ms] or [-11.885%; -2.702%]
unstable
[-3.046ms; +0.533ms] or [-10.061%; +1.759%]
unstable
[-15.970op/s; +41.220op/s] or [-6.269%; +16.181%]
16.770ms 29.021ms 267.375op/s 18.090ms 30.278ms 254.750op/s
scenario:load:petclinic:tracing:high_load better
[-1.747ms; -0.604ms] or [-9.484%; -3.277%]
better
[-2.324ms; -0.822ms] or [-7.785%; -2.753%]
unstable
[-10.165op/s; +41.790op/s] or [-4.056%; +16.676%]
17.243ms 28.280ms 266.406op/s 18.418ms 29.853ms 250.594op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.32 ms) : 18129, 18511
.   : milestone, 18320,
appsec (18.629 ms) : 18441, 18818
.   : milestone, 18629,
code_origins (17.647 ms) : 17475, 17819
.   : milestone, 17647,
iast (17.744 ms) : 17567, 17921
.   : milestone, 17744,
profiling (18.572 ms) : 18386, 18757
.   : milestone, 18572,
tracing (18.622 ms) : 18433, 18812
.   : milestone, 18622,
section candidate
no_agent (17.453 ms) : 17273, 17634
.   : milestone, 17453,
appsec (19.414 ms) : 19216, 19611
.   : milestone, 19414,
code_origins (17.653 ms) : 17477, 17829
.   : milestone, 17653,
iast (17.73 ms) : 17557, 17903
.   : milestone, 17730,
profiling (18.499 ms) : 18315, 18682
.   : milestone, 18499,
tracing (17.511 ms) : 17340, 17683
.   : milestone, 17511,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.32 ms [18.129 ms, 18.511 ms] -
appsec 18.629 ms [18.441 ms, 18.818 ms] 309.15 µs (1.7%)
code_origins 17.647 ms [17.475 ms, 17.819 ms] -673.349 µs (-3.7%)
iast 17.744 ms [17.567 ms, 17.921 ms] -576.557 µs (-3.1%)
profiling 18.572 ms [18.386 ms, 18.757 ms] 251.18 µs (1.4%)
tracing 18.622 ms [18.433 ms, 18.812 ms] 302.057 µs (1.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.453 ms [17.273 ms, 17.634 ms] -
appsec 19.414 ms [19.216 ms, 19.611 ms] 1.96 ms (11.2%)
code_origins 17.653 ms [17.477 ms, 17.829 ms] 199.913 µs (1.1%)
iast 17.73 ms [17.557 ms, 17.903 ms] 276.556 µs (1.6%)
profiling 18.499 ms [18.315 ms, 18.682 ms] 1.045 ms (6.0%)
tracing 17.511 ms [17.34 ms, 17.683 ms] 57.835 µs (0.3%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.218 ms) : 1204, 1232
.   : milestone, 1218,
iast (3.101 ms) : 3060, 3141
.   : milestone, 3101,
iast_FULL (5.688 ms) : 5631, 5745
.   : milestone, 5688,
iast_GLOBAL (3.581 ms) : 3522, 3639
.   : milestone, 3581,
profiling (2.034 ms) : 2016, 2052
.   : milestone, 2034,
tracing (1.762 ms) : 1748, 1776
.   : milestone, 1762,
section candidate
no_agent (1.176 ms) : 1164, 1187
.   : milestone, 1176,
iast (3.173 ms) : 3136, 3209
.   : milestone, 3173,
iast_FULL (5.645 ms) : 5589, 5701
.   : milestone, 5645,
iast_GLOBAL (3.508 ms) : 3458, 3559
.   : milestone, 3508,
profiling (1.954 ms) : 1938, 1970
.   : milestone, 1954,
tracing (1.816 ms) : 1801, 1831
.   : milestone, 1816,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.218 ms [1.204 ms, 1.232 ms] -
iast 3.101 ms [3.06 ms, 3.141 ms] 1.883 ms (154.6%)
iast_FULL 5.688 ms [5.631 ms, 5.745 ms] 4.47 ms (367.0%)
iast_GLOBAL 3.581 ms [3.522 ms, 3.639 ms] 2.363 ms (194.0%)
profiling 2.034 ms [2.016 ms, 2.052 ms] 816.193 µs (67.0%)
tracing 1.762 ms [1.748 ms, 1.776 ms] 543.811 µs (44.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.176 ms [1.164 ms, 1.187 ms] -
iast 3.173 ms [3.136 ms, 3.209 ms] 1.997 ms (169.9%)
iast_FULL 5.645 ms [5.589 ms, 5.701 ms] 4.47 ms (380.2%)
iast_GLOBAL 3.508 ms [3.458 ms, 3.559 ms] 2.333 ms (198.4%)
profiling 1.954 ms [1.938 ms, 1.97 ms] 778.581 µs (66.2%)
tracing 1.816 ms [1.801 ms, 1.831 ms] 640.631 µs (54.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master andrea.marziali/advice-index
git_commit_date 1769064633 1769511232
git_commit_sha ea99945 38964db
release_version 1.59.0-SNAPSHOT~ea999452fb 1.59.0-SNAPSHOT~38964dbcc8
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1769513218 1769513218
ci_job_id 1379440923 1379440923
ci_pipeline_id 93008625 93008625
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-kfjx20s0 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-kfjx20s0 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 10 metrics, 2 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.084 s) : 15084000, 15084000
.   : milestone, 15084000,
appsec (14.583 s) : 14583000, 14583000
.   : milestone, 14583000,
iast (17.984 s) : 17984000, 17984000
.   : milestone, 17984000,
iast_GLOBAL (17.919 s) : 17919000, 17919000
.   : milestone, 17919000,
profiling (15.078 s) : 15078000, 15078000
.   : milestone, 15078000,
tracing (14.79 s) : 14790000, 14790000
.   : milestone, 14790000,
section candidate
no_agent (14.765 s) : 14765000, 14765000
.   : milestone, 14765000,
appsec (14.868 s) : 14868000, 14868000
.   : milestone, 14868000,
iast (18.533 s) : 18533000, 18533000
.   : milestone, 18533000,
iast_GLOBAL (17.679 s) : 17679000, 17679000
.   : milestone, 17679000,
profiling (15.449 s) : 15449000, 15449000
.   : milestone, 15449000,
tracing (15.182 s) : 15182000, 15182000
.   : milestone, 15182000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.084 s [15.084 s, 15.084 s] -
appsec 14.583 s [14.583 s, 14.583 s] -501.0 ms (-3.3%)
iast 17.984 s [17.984 s, 17.984 s] 2.9 s (19.2%)
iast_GLOBAL 17.919 s [17.919 s, 17.919 s] 2.835 s (18.8%)
profiling 15.078 s [15.078 s, 15.078 s] -6.0 ms (-0.0%)
tracing 14.79 s [14.79 s, 14.79 s] -294.0 ms (-1.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.765 s [14.765 s, 14.765 s] -
appsec 14.868 s [14.868 s, 14.868 s] 103.0 ms (0.7%)
iast 18.533 s [18.533 s, 18.533 s] 3.768 s (25.5%)
iast_GLOBAL 17.679 s [17.679 s, 17.679 s] 2.914 s (19.7%)
profiling 15.449 s [15.449 s, 15.449 s] 684.0 ms (4.6%)
tracing 15.182 s [15.182 s, 15.182 s] 417.0 ms (2.8%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~38964dbcc8, baseline=1.59.0-SNAPSHOT~ea999452fb
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.469 ms) : 1457, 1480
.   : milestone, 1469,
appsec (2.457 ms) : 2405, 2509
.   : milestone, 2457,
iast (2.207 ms) : 2142, 2273
.   : milestone, 2207,
iast_GLOBAL (2.247 ms) : 2182, 2312
.   : milestone, 2247,
profiling (2.064 ms) : 2011, 2116
.   : milestone, 2064,
tracing (2.041 ms) : 1989, 2092
.   : milestone, 2041,
section candidate
no_agent (1.468 ms) : 1456, 1479
.   : milestone, 1468,
appsec (3.713 ms) : 3494, 3932
.   : milestone, 3713,
iast (2.204 ms) : 2139, 2269
.   : milestone, 2204,
iast_GLOBAL (2.252 ms) : 2186, 2317
.   : milestone, 2252,
profiling (2.468 ms) : 2305, 2632
.   : milestone, 2468,
tracing (2.031 ms) : 1981, 2082
.   : milestone, 2031,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.469 ms [1.457 ms, 1.48 ms] -
appsec 2.457 ms [2.405 ms, 2.509 ms] 988.348 µs (67.3%)
iast 2.207 ms [2.142 ms, 2.273 ms] 738.608 µs (50.3%)
iast_GLOBAL 2.247 ms [2.182 ms, 2.312 ms] 778.226 µs (53.0%)
profiling 2.064 ms [2.011 ms, 2.116 ms] 594.794 µs (40.5%)
tracing 2.041 ms [1.989 ms, 2.092 ms] 571.742 µs (38.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.468 ms [1.456 ms, 1.479 ms] -
appsec 3.713 ms [3.494 ms, 3.932 ms] 2.245 ms (153.0%)
iast 2.204 ms [2.139 ms, 2.269 ms] 735.906 µs (50.1%)
iast_GLOBAL 2.252 ms [2.186 ms, 2.317 ms] 783.783 µs (53.4%)
profiling 2.468 ms [2.305 ms, 2.632 ms] 1.0 ms (68.1%)
tracing 2.031 ms [1.981 ms, 2.082 ms] 563.518 µs (38.4%)

@amarziali amarziali force-pushed the andrea.marziali/advice-index branch from 33b8ea3 to c1ed2d0 Compare January 20, 2026 13:44
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

Hey there 👋 Quick and early review!

❔ question: ‏Can instrumentation changes related to isApplicable vs isEnabled can be split in another PR?
Similarly, the migration to the new context tracking system can move a to follow up PR.

@amarziali amarziali force-pushed the andrea.marziali/advice-index branch from c1ed2d0 to 3cd1ce7 Compare January 21, 2026 09:34
@amarziali amarziali added type: enhancement Enhancements and improvements comp: core Tracer core labels Jan 21, 2026
@amarziali amarziali marked this pull request as ready for review January 21, 2026 11:53
@amarziali amarziali requested review from a team as code owners January 21, 2026 11:53
@amarziali amarziali force-pushed the andrea.marziali/advice-index branch from 9989dc0 to aa9d043 Compare January 21, 2026 13:48
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

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

First pass review on API and doc. I will have a look at implementation as soon as I get a stable dev env.

@amarziali amarziali requested a review from mcculls January 27, 2026 09:24
amarziali and others added 3 commits January 27, 2026 11:52
…tooling/InstrumenterIndex.java

Co-authored-by: Stuart McCulloch <stuart.mcculloch@datadoghq.com>
…tooling/InstrumenterIndex.java

Co-authored-by: Stuart McCulloch <stuart.mcculloch@datadoghq.com>
Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

This is a really nice addition, great work!

@amarziali amarziali enabled auto-merge (squash) January 27, 2026 10:58
@amarziali amarziali merged commit a25afaf into master Jan 27, 2026
548 checks passed
@amarziali amarziali deleted the andrea.marziali/advice-index branch January 27, 2026 11:43
@github-actions github-actions bot added this to the 1.59.0 milestone Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: core Tracer core type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants