Skip to content

fix(openfeature): compute correct reason from allocation structure#10971

Draft
leoromanovsky wants to merge 4 commits intomasterfrom
leo.romanovsky/fix-openfeature-reason
Draft

fix(openfeature): compute correct reason from allocation structure#10971
leoromanovsky wants to merge 4 commits intomasterfrom
leo.romanovsky/fix-openfeature-reason

Conversation

@leoromanovsky
Copy link
Contributor

Motivation

DDEvaluator hardcodes Reason.TARGETING_MATCH for all successful flag evaluations. The correct reason depends on the allocation structure:

  • STATIC: empty rules, no shards (catch-all override/kill-switch path)
  • SPLIT: empty rules, shards present (percentage rollout)
  • TARGETING_MATCH: non-empty rules (rule-based targeting)

This aligns with the Go reference implementation and the OpenFeature spec.

Changes

  • DDEvaluator.java: Added Split parameter to resolveVariant() so it can inspect shards. Replaced hardcoded TARGETING_MATCH with inline three-way ternary: !isEmpty(rules) ? TARGETING_MATCH : !isEmpty(shards) ? SPLIT : STATIC
  • DDEvaluatorTest.java: Updated 9 test assertions — 7 to STATIC, 2 to SPLIT. Added imports for Reason.STATIC and Reason.SPLIT.

Decisions

  • Reason computed inline at the return site (no helper function) — mirrors Go's switch block
  • startAt/endAt are NOT reason signals — they are time-window pre-filters only
  • Programmatic test pattern preserved (JSON fixture conversion is a separate follow-up PR)

…ng TARGETING_MATCH

- Add Split parameter to resolveVariant for three-way reason computation
- Return STATIC for flags with no rules and no shards (simple flags)
- Return SPLIT for flags with no rules but with shards (shard-based flags)
- Return TARGETING_MATCH for flags with rules (rule-based flags)
- Update 9 test assertions: 7 to STATIC, 2 to SPLIT
@pr-commenter
Copy link

pr-commenter bot commented Mar 26, 2026

Benchmarks

⚠️ Warning: Baseline build not found for merge-base commit. Comparing against the latest commit on master instead.

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master leo.romanovsky/fix-openfeature-reason
git_commit_date 1774496335 1774495811
git_commit_sha 17a89d1ec3 80ea549
release_version 1.61.0-SNAPSHOT~517a89d1ec3 1.61.0-SNAPSHOT~80ea54941c
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774497632 1774497632
ci_job_id 1539958324 1539958324
ci_pipeline_id 104459991 104459991
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-q61ovr5k 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-q61ovr5k 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 0 performance regressions! Performance is the same for 65 metrics, 6 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.062 s) : 0, 1062211
Total [baseline] (11.156 s) : 0, 11155928
Agent [candidate] (1.066 s) : 0, 1065986
Total [candidate] (11.092 s) : 0, 11092304
section appsec
Agent [baseline] (1.247 s) : 0, 1246971
Total [baseline] (11.165 s) : 0, 11164921
Agent [candidate] (1.26 s) : 0, 1259897
Total [candidate] (11.271 s) : 0, 11271293
section iast
Agent [baseline] (1.24 s) : 0, 1240016
Total [baseline] (11.414 s) : 0, 11414238
Agent [candidate] (1.232 s) : 0, 1231671
Total [candidate] (11.353 s) : 0, 11353459
section profiling
Agent [baseline] (1.182 s) : 0, 1182135
Total [baseline] (11.004 s) : 0, 11003964
Agent [candidate] (1.192 s) : 0, 1191822
Total [candidate] (11.141 s) : 0, 11140687
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.062 s -
Agent appsec 1.247 s 184.76 ms (17.4%)
Agent iast 1.24 s 177.805 ms (16.7%)
Agent profiling 1.182 s 119.924 ms (11.3%)
Total tracing 11.156 s -
Total appsec 11.165 s 8.992 ms (0.1%)
Total iast 11.414 s 258.309 ms (2.3%)
Total profiling 11.004 s -151.964 ms (-1.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.066 s -
Agent appsec 1.26 s 193.91 ms (18.2%)
Agent iast 1.232 s 165.685 ms (15.5%)
Agent profiling 1.192 s 125.836 ms (11.8%)
Total tracing 11.092 s -
Total appsec 11.271 s 178.988 ms (1.6%)
Total iast 11.353 s 261.155 ms (2.4%)
Total profiling 11.141 s 48.383 ms (0.4%)
gantt
    title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.197 ms) : 0, 1197
crashtracking [candidate] (1.202 ms) : 0, 1202
BytebuddyAgent [baseline] (629.77 ms) : 0, 629770
BytebuddyAgent [candidate] (633.538 ms) : 0, 633538
AgentMeter [baseline] (29.471 ms) : 0, 29471
AgentMeter [candidate] (29.77 ms) : 0, 29770
GlobalTracer [baseline] (258.293 ms) : 0, 258293
GlobalTracer [candidate] (258.687 ms) : 0, 258687
AppSec [baseline] (32.057 ms) : 0, 32057
AppSec [candidate] (32.06 ms) : 0, 32060
Debugger [baseline] (60.804 ms) : 0, 60804
Debugger [candidate] (60.755 ms) : 0, 60755
Remote Config [baseline] (615.997 µs) : 0, 616
Remote Config [candidate] (593.365 µs) : 0, 593
Telemetry [baseline] (8.856 ms) : 0, 8856
Telemetry [candidate] (8.761 ms) : 0, 8761
Flare Poller [baseline] (5.07 ms) : 0, 5070
Flare Poller [candidate] (4.336 ms) : 0, 4336
section appsec
crashtracking [baseline] (1.203 ms) : 0, 1203
crashtracking [candidate] (1.198 ms) : 0, 1198
BytebuddyAgent [baseline] (659.438 ms) : 0, 659438
BytebuddyAgent [candidate] (666.892 ms) : 0, 666892
AgentMeter [baseline] (12.149 ms) : 0, 12149
AgentMeter [candidate] (12.326 ms) : 0, 12326
GlobalTracer [baseline] (257.887 ms) : 0, 257887
GlobalTracer [candidate] (260.615 ms) : 0, 260615
AppSec [baseline] (177.307 ms) : 0, 177307
AppSec [candidate] (178.543 ms) : 0, 178543
Debugger [baseline] (66.053 ms) : 0, 66053
Debugger [candidate] (66.698 ms) : 0, 66698
Remote Config [baseline] (635.381 µs) : 0, 635
Remote Config [candidate] (648.399 µs) : 0, 648
Telemetry [baseline] (8.389 ms) : 0, 8389
Telemetry [candidate] (8.544 ms) : 0, 8544
Flare Poller [baseline] (3.535 ms) : 0, 3535
Flare Poller [candidate] (3.643 ms) : 0, 3643
IAST [baseline] (24.116 ms) : 0, 24116
IAST [candidate] (24.381 ms) : 0, 24381
section iast
crashtracking [baseline] (1.207 ms) : 0, 1207
crashtracking [candidate] (1.195 ms) : 0, 1195
BytebuddyAgent [baseline] (805.198 ms) : 0, 805198
BytebuddyAgent [candidate] (798.715 ms) : 0, 798715
AgentMeter [baseline] (11.559 ms) : 0, 11559
AgentMeter [candidate] (11.413 ms) : 0, 11413
GlobalTracer [baseline] (249.752 ms) : 0, 249752
GlobalTracer [candidate] (248.451 ms) : 0, 248451
AppSec [baseline] (26.813 ms) : 0, 26813
AppSec [candidate] (26.623 ms) : 0, 26623
Debugger [baseline] (70.447 ms) : 0, 70447
Debugger [candidate] (70.671 ms) : 0, 70671
Remote Config [baseline] (531.214 µs) : 0, 531
Remote Config [candidate] (525.422 µs) : 0, 525
Telemetry [baseline] (9.224 ms) : 0, 9224
Telemetry [candidate] (9.203 ms) : 0, 9203
Flare Poller [baseline] (3.508 ms) : 0, 3508
Flare Poller [candidate] (3.442 ms) : 0, 3442
IAST [baseline] (25.612 ms) : 0, 25612
IAST [candidate] (25.338 ms) : 0, 25338
section profiling
crashtracking [baseline] (1.172 ms) : 0, 1172
crashtracking [candidate] (1.178 ms) : 0, 1178
BytebuddyAgent [baseline] (682.841 ms) : 0, 682841
BytebuddyAgent [candidate] (689.203 ms) : 0, 689203
AgentMeter [baseline] (8.971 ms) : 0, 8971
AgentMeter [candidate] (9.058 ms) : 0, 9058
GlobalTracer [baseline] (214.631 ms) : 0, 214631
GlobalTracer [candidate] (215.755 ms) : 0, 215755
AppSec [baseline] (32.318 ms) : 0, 32318
AppSec [candidate] (32.444 ms) : 0, 32444
Debugger [baseline] (65.011 ms) : 0, 65011
Debugger [candidate] (66.458 ms) : 0, 66458
Remote Config [baseline] (565.818 µs) : 0, 566
Remote Config [candidate] (564.507 µs) : 0, 565
Telemetry [baseline] (7.762 ms) : 0, 7762
Telemetry [candidate] (7.821 ms) : 0, 7821
Flare Poller [baseline] (4.268 ms) : 0, 4268
Flare Poller [candidate] (3.503 ms) : 0, 3503
ProfilingAgent [baseline] (93.777 ms) : 0, 93777
ProfilingAgent [candidate] (94.56 ms) : 0, 94560
Profiling [baseline] (94.324 ms) : 0, 94324
Profiling [candidate] (95.123 ms) : 0, 95123
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.056 s) : 0, 1056470
Total [baseline] (8.843 s) : 0, 8842788
Agent [candidate] (1.056 s) : 0, 1055971
Total [candidate] (8.872 s) : 0, 8872290
section iast
Agent [baseline] (1.227 s) : 0, 1227147
Total [baseline] (9.538 s) : 0, 9538232
Agent [candidate] (1.228 s) : 0, 1227744
Total [candidate] (9.538 s) : 0, 9538211
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent iast 1.227 s 170.677 ms (16.2%)
Total tracing 8.843 s -
Total iast 9.538 s 695.443 ms (7.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.056 s -
Agent iast 1.228 s 171.772 ms (16.3%)
Total tracing 8.872 s -
Total iast 9.538 s 665.921 ms (7.5%)
gantt
    title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.2 ms) : 0, 1200
crashtracking [candidate] (1.189 ms) : 0, 1189
BytebuddyAgent [baseline] (628.107 ms) : 0, 628107
BytebuddyAgent [candidate] (628.711 ms) : 0, 628711
AgentMeter [baseline] (29.372 ms) : 0, 29372
AgentMeter [candidate] (29.451 ms) : 0, 29451
GlobalTracer [baseline] (256.812 ms) : 0, 256812
GlobalTracer [candidate] (257.187 ms) : 0, 257187
AppSec [baseline] (31.82 ms) : 0, 31820
AppSec [candidate] (31.743 ms) : 0, 31743
Debugger [baseline] (59.394 ms) : 0, 59394
Debugger [candidate] (59.513 ms) : 0, 59513
Remote Config [baseline] (591.118 µs) : 0, 591
Remote Config [candidate] (582.188 µs) : 0, 582
Telemetry [baseline] (8.056 ms) : 0, 8056
Telemetry [candidate] (7.992 ms) : 0, 7992
Flare Poller [baseline] (4.985 ms) : 0, 4985
Flare Poller [candidate] (3.505 ms) : 0, 3505
section iast
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.194 ms) : 0, 1194
BytebuddyAgent [baseline] (797.021 ms) : 0, 797021
BytebuddyAgent [candidate] (796.71 ms) : 0, 796710
AgentMeter [baseline] (11.384 ms) : 0, 11384
AgentMeter [candidate] (11.394 ms) : 0, 11394
GlobalTracer [baseline] (247.25 ms) : 0, 247250
GlobalTracer [candidate] (247.84 ms) : 0, 247840
AppSec [baseline] (26.475 ms) : 0, 26475
AppSec [candidate] (26.453 ms) : 0, 26453
Debugger [baseline] (67.459 ms) : 0, 67459
Debugger [candidate] (68.92 ms) : 0, 68920
Remote Config [baseline] (521.377 µs) : 0, 521
Remote Config [candidate] (521.887 µs) : 0, 522
Telemetry [baseline] (11.06 ms) : 0, 11060
Telemetry [candidate] (9.794 ms) : 0, 9794
Flare Poller [baseline] (3.415 ms) : 0, 3415
Flare Poller [candidate] (3.45 ms) : 0, 3450
IAST [baseline] (25.308 ms) : 0, 25308
IAST [candidate] (25.352 ms) : 0, 25352
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master leo.romanovsky/fix-openfeature-reason
git_commit_date 1774496333 1774495811
git_commit_sha 17a89d1ec3 80ea549
release_version 1.61.0-SNAPSHOT~517a89d1ec3 1.61.0-SNAPSHOT~80ea54941c
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1774498104 1774498104
ci_job_id 1539958325 1539958325
ci_pipeline_id 104459991 104459991
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-eos7xkte 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-eos7xkte 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 19 metrics, 17 unstable metrics.

Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.172 ms) : 1160, 1183
.   : milestone, 1172,
iast (3.188 ms) : 3145, 3231
.   : milestone, 3188,
iast_FULL (5.993 ms) : 5932, 6054
.   : milestone, 5993,
iast_GLOBAL (3.707 ms) : 3648, 3766
.   : milestone, 3707,
profiling (2.056 ms) : 2038, 2073
.   : milestone, 2056,
tracing (1.814 ms) : 1799, 1829
.   : milestone, 1814,
section candidate
no_agent (1.192 ms) : 1180, 1204
.   : milestone, 1192,
iast (3.157 ms) : 3116, 3198
.   : milestone, 3157,
iast_FULL (6.154 ms) : 6090, 6217
.   : milestone, 6154,
iast_GLOBAL (3.526 ms) : 3465, 3586
.   : milestone, 3526,
profiling (2.157 ms) : 2137, 2177
.   : milestone, 2157,
tracing (1.824 ms) : 1809, 1839
.   : milestone, 1824,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.172 ms [1.16 ms, 1.183 ms] -
iast 3.188 ms [3.145 ms, 3.231 ms] 2.016 ms (172.0%)
iast_FULL 5.993 ms [5.932 ms, 6.054 ms] 4.821 ms (411.4%)
iast_GLOBAL 3.707 ms [3.648 ms, 3.766 ms] 2.535 ms (216.3%)
profiling 2.056 ms [2.038 ms, 2.073 ms] 883.87 µs (75.4%)
tracing 1.814 ms [1.799 ms, 1.829 ms] 642.452 µs (54.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.192 ms [1.18 ms, 1.204 ms] -
iast 3.157 ms [3.116 ms, 3.198 ms] 1.965 ms (164.8%)
iast_FULL 6.154 ms [6.09 ms, 6.217 ms] 4.961 ms (416.2%)
iast_GLOBAL 3.526 ms [3.465 ms, 3.586 ms] 2.334 ms (195.7%)
profiling 2.157 ms [2.137 ms, 2.177 ms] 964.923 µs (80.9%)
tracing 1.824 ms [1.809 ms, 1.839 ms] 632.116 µs (53.0%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (17.289 ms) : 17116, 17461
.   : milestone, 17289,
appsec (19.624 ms) : 19428, 19821
.   : milestone, 19624,
code_origins (17.582 ms) : 17404, 17760
.   : milestone, 17582,
iast (18.215 ms) : 18037, 18393
.   : milestone, 18215,
profiling (18.733 ms) : 18548, 18919
.   : milestone, 18733,
tracing (17.684 ms) : 17510, 17859
.   : milestone, 17684,
section candidate
no_agent (17.413 ms) : 17237, 17588
.   : milestone, 17413,
appsec (19.494 ms) : 19291, 19697
.   : milestone, 19494,
code_origins (17.567 ms) : 17392, 17742
.   : milestone, 17567,
iast (17.799 ms) : 17621, 17976
.   : milestone, 17799,
profiling (19.071 ms) : 18881, 19261
.   : milestone, 19071,
tracing (17.665 ms) : 17490, 17839
.   : milestone, 17665,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.289 ms [17.116 ms, 17.461 ms] -
appsec 19.624 ms [19.428 ms, 19.821 ms] 2.336 ms (13.5%)
code_origins 17.582 ms [17.404 ms, 17.76 ms] 293.392 µs (1.7%)
iast 18.215 ms [18.037 ms, 18.393 ms] 926.104 µs (5.4%)
profiling 18.733 ms [18.548 ms, 18.919 ms] 1.445 ms (8.4%)
tracing 17.684 ms [17.51 ms, 17.859 ms] 395.961 µs (2.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.413 ms [17.237 ms, 17.588 ms] -
appsec 19.494 ms [19.291 ms, 19.697 ms] 2.082 ms (12.0%)
code_origins 17.567 ms [17.392 ms, 17.742 ms] 154.353 µs (0.9%)
iast 17.799 ms [17.621 ms, 17.976 ms] 386.262 µs (2.2%)
profiling 19.071 ms [18.881 ms, 19.261 ms] 1.658 ms (9.5%)
tracing 17.665 ms [17.49 ms, 17.839 ms] 252.028 µs (1.4%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master leo.romanovsky/fix-openfeature-reason
git_commit_date 1774496336 1774495811
git_commit_sha 17a89d1ec3 80ea549
release_version 1.61.0-SNAPSHOT~517a89d1ec3 1.61.0-SNAPSHOT~80ea54941c
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1774497835 1774497835
ci_job_id 1539958326 1539958326
ci_pipeline_id 104459991 104459991
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-2vhtch0i 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-2vhtch0i 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.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.887 s) : 14887000, 14887000
.   : milestone, 14887000,
appsec (14.799 s) : 14799000, 14799000
.   : milestone, 14799000,
iast (18.387 s) : 18387000, 18387000
.   : milestone, 18387000,
iast_GLOBAL (17.948 s) : 17948000, 17948000
.   : milestone, 17948000,
profiling (15.182 s) : 15182000, 15182000
.   : milestone, 15182000,
tracing (14.713 s) : 14713000, 14713000
.   : milestone, 14713000,
section candidate
no_agent (15.537 s) : 15537000, 15537000
.   : milestone, 15537000,
appsec (14.916 s) : 14916000, 14916000
.   : milestone, 14916000,
iast (18.073 s) : 18073000, 18073000
.   : milestone, 18073000,
iast_GLOBAL (17.837 s) : 17837000, 17837000
.   : milestone, 17837000,
profiling (14.82 s) : 14820000, 14820000
.   : milestone, 14820000,
tracing (14.952 s) : 14952000, 14952000
.   : milestone, 14952000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.887 s [14.887 s, 14.887 s] -
appsec 14.799 s [14.799 s, 14.799 s] -88.0 ms (-0.6%)
iast 18.387 s [18.387 s, 18.387 s] 3.5 s (23.5%)
iast_GLOBAL 17.948 s [17.948 s, 17.948 s] 3.061 s (20.6%)
profiling 15.182 s [15.182 s, 15.182 s] 295.0 ms (2.0%)
tracing 14.713 s [14.713 s, 14.713 s] -174.0 ms (-1.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.537 s [15.537 s, 15.537 s] -
appsec 14.916 s [14.916 s, 14.916 s] -621.0 ms (-4.0%)
iast 18.073 s [18.073 s, 18.073 s] 2.536 s (16.3%)
iast_GLOBAL 17.837 s [17.837 s, 17.837 s] 2.3 s (14.8%)
profiling 14.82 s [14.82 s, 14.82 s] -717.0 ms (-4.6%)
tracing 14.952 s [14.952 s, 14.952 s] -585.0 ms (-3.8%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~80ea54941c, baseline=1.61.0-SNAPSHOT~517a89d1ec3
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.482 ms) : 1470, 1493
.   : milestone, 1482,
appsec (2.525 ms) : 2470, 2579
.   : milestone, 2525,
iast (2.265 ms) : 2196, 2334
.   : milestone, 2265,
iast_GLOBAL (2.308 ms) : 2239, 2378
.   : milestone, 2308,
profiling (2.106 ms) : 2050, 2162
.   : milestone, 2106,
tracing (2.096 ms) : 2042, 2150
.   : milestone, 2096,
section candidate
no_agent (1.476 ms) : 1465, 1487
.   : milestone, 1476,
appsec (3.791 ms) : 3568, 4015
.   : milestone, 3791,
iast (2.265 ms) : 2196, 2334
.   : milestone, 2265,
iast_GLOBAL (2.309 ms) : 2239, 2378
.   : milestone, 2309,
profiling (2.091 ms) : 2036, 2145
.   : milestone, 2091,
tracing (2.09 ms) : 2037, 2144
.   : milestone, 2090,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.482 ms [1.47 ms, 1.493 ms] -
appsec 2.525 ms [2.47 ms, 2.579 ms] 1.043 ms (70.4%)
iast 2.265 ms [2.196 ms, 2.334 ms] 783.08 µs (52.9%)
iast_GLOBAL 2.308 ms [2.239 ms, 2.378 ms] 826.752 µs (55.8%)
profiling 2.106 ms [2.05 ms, 2.162 ms] 624.324 µs (42.1%)
tracing 2.096 ms [2.042 ms, 2.15 ms] 614.498 µs (41.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.465 ms, 1.487 ms] -
appsec 3.791 ms [3.568 ms, 4.015 ms] 2.315 ms (156.9%)
iast 2.265 ms [2.196 ms, 2.334 ms] 788.962 µs (53.5%)
iast_GLOBAL 2.309 ms [2.239 ms, 2.378 ms] 832.568 µs (56.4%)
profiling 2.091 ms [2.036 ms, 2.145 ms] 614.895 µs (41.7%)
tracing 2.09 ms [2.037 ms, 2.144 ms] 614.473 µs (41.6%)

- Add ufc-config.json (canonical server configuration)
- Add 24 evaluation-case JSON files from dd-trace-go
- Files are byte-identical copies of Go reference fixtures
…cal cases

- JUnit 5 @testfactory generates dynamic tests from 24 evaluation-case JSON files
- Parses ufc-config.json into ServerConfiguration using Moshi with DateAdapter
- Asserts both value and reason for each fixture case
- Handles Java/Go divergences: Java returns ERROR where Go returns DEFAULT
  for missing flags and empty allocations
- Skips null attribute values in context building (null = missing)
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