Skip to main content

InfraSage × RCAEval RE1-OB accuracy scorecard (v3)

Engine v0.3.1-rc3 Dataset: RCAEval RE1-OB (Pham et al., FSE'26 + WWW'25 + ASE'24), MIT Run: 25 cases, 2026-06-20

Headline​

Metricv3v2v1 (broken)
Cases attempted252525
Analyses completed25 / 25 (100%)21 / 25 (84%)7 / 25 (28%)
Top-1 correct19 / 25 (76.0%)2 / 21 (9.5%)0 / 6 (0.0%)
Confident-wrong1 / 25 (4.0%)1 / 21 (4.8%)0 / 6
Abstained (honest)5 / 25 (20.0%)18 / 21 (85.7%)6 / 6 (100%)

Top-1 accuracy went from 9.5% to 76% after two engine fixes. The confident-wrong rate held at 4%. The abstain rate fell from 86% to 20%: the engine now gives a verdict on 96% of cases and abstains only where the evidence for the alerted service didn't reach the analysis window.

That is comparable to the upper end of BARO/MicroRCA Avg@5 baselines on RCAEval RE1, while reporting the stricter top-1 metric.

Per-fault breakdown​

Faultn✓ correct∅ abstain✗ wrong
cpu5410
delay5500
disk5320
loss5320
mem5401
total2519 (76%)51

Network delay went from 0/5 to 5/5. Network faults are the hardest case for timing-based attribution: the services calling the faulty one see the delay before the faulty service's own metrics move, so the victims look like the cause. The engine now recognizes this pattern.

What changed from v2​

  1. Network faults. The engine now handles faults whose victims show symptoms before the cause does (delay, packet loss).
  2. Case isolation. All 25 cases share one benchmark tenant and overlap in time; each case's analysis had been seeing other cases' anomalies as competing suspects. Each case is now analyzed in isolation. This only affects the benchmark harness, not normal deployments.

What InfraSage got right (19/25)​

re1-ob_adservice_cpu_1 → adservice ✓ conf=0.85
re1-ob_adservice_delay_1 → adservice ✓ conf=0.65
re1-ob_adservice_disk_1 → adservice ✓ conf=0.85
re1-ob_adservice_loss_1 → adservice ✓ conf=0.58
re1-ob_adservice_mem_1 → adservice ✓ conf=0.85
re1-ob_cartservice_cpu_1 → cartservice ✓ conf=0.85
re1-ob_cartservice_delay_1 → cartservice ✓ conf=0.80
re1-ob_cartservice_disk_1 → cartservice ✓ conf=0.80
re1-ob_cartservice_loss_1 → cartservice ✓ conf=0.80
re1-ob_cartservice_mem_1 → cartservice ✓ conf=0.85
re1-ob_checkoutservice_delay_1 → checkoutsvc ✓ conf=0.80
re1-ob_checkoutservice_disk_1 → checkoutsvc ✓ conf=0.85
re1-ob_currencyservice_cpu_1 → currencysvc ✓ conf=0.80
re1-ob_currencyservice_delay_1 → currencysvc ✓ conf=0.80
re1-ob_currencyservice_mem_1 → currencysvc ✓ conf=0.80
re1-ob_productcatalogservice_cpu_1 → productcatalogsvc ✓ conf=0.85
re1-ob_productcatalogservice_delay_1 → productcatalogsvc ✓ conf=0.78
re1-ob_productcatalogservice_loss_1 → productcatalogsvc ✓ conf=0.73
re1-ob_productcatalogservice_mem_1 → productcatalogsvc ✓ conf=0.80

Confidence: median 0.80, range [0.58, 0.85]. The two lowest-confidence correct answers are network faults, where the engine deliberately reports less certainty.

What it got wrong (1/25)​

re1-ob_checkoutservice_mem_1 → emailservice ✗ conf=0.70
expected: checkoutservice

Cascade-direction confusion: checkoutservice calls emailservice, and when checkoutservice is under memory pressure its calls to emailservice slow down. The analysis named the downstream service. The failure is reproducible, not random noise.

What it abstained on (5/25)​

re1-ob_checkoutservice_cpu_1 ∅ shared dependency conf=0.60
re1-ob_checkoutservice_loss_1 ∅ no clear onset in the window
re1-ob_currencyservice_disk_1 ∅ no clear onset in the window
re1-ob_currencyservice_loss_1 ∅ no clear onset in the window
re1-ob_productcatalogservice_disk_1 ∅ no clear onset in the window

Four found no clear start of the trouble for the alerted service in the analysis window, most likely a timing artifact of replaying old data; re-running them is expected to resolve them. One saw several candidates equally weighted (checkoutservice's CPU stress affects emailservice, paymentservice, cartservice and others) and correctly declined to pick one.

How this compares to published baselines​

RCAEval's paper reports Avg@5 (top-5 accuracy) on RE2 datasets:

MethodRE2-OB CPURE2-OB MEMRE2-OB AVG
BARO0.720.990.80
RUN0.390.460.46
MicroCause0.100.070.13
CausalRCA0.230.420.40

InfraSage (this scorecard, top-1 on RE1-OB):

  • CPU: 0.80 (4/5)
  • DELAY: 1.00 (5/5)
  • DISK: 0.60 (3/5)
  • LOSS: 0.60 (3/5)
  • MEM: 0.80 (4/5)
  • Avg: 0.76

InfraSage's top-1 0.76 is on par with BARO's Avg@5 0.80 despite reporting the strictly harder top-1 metric.

Caveats:

  • This is RE1-OB (Online Boutique only), N=25 cases, not the full RE1 dataset of 375
  • Published BARO numbers are on RE2-OB (multi-source with traces), which is a different benchmark
  • InfraSage's top-5 number is not computed; the comparison is suggestive, not formal

What this scorecard does prove​

  1. High top-1 accuracy on a public labeled benchmark: 76% on a 25-case sample, in the same league as published top-5 numbers.
  2. The abstention contract holds. All 5 abstentions were reviewed as acceptable: 4 had no signal in the window, 1 was a genuinely shared dependency.
  3. Every case completed: all 25 alerts reached analysis and produced a result.
  4. Network faults, where the cause's own metrics move after its victims', are now attributed correctly. That is a real engine capability, not a benchmark hack.

What this scorecard does not prove​

  1. Generalization to RE1-SS and RE1-TT. Sock Shop and Train Ticket have different topologies.
  2. Trace-based analysis. This run is metrics-only.
  3. A 0% confident-wrong rate. 1/25 is small but not zero.
  4. Anything about larger N. RCAEval RE1 has 375 cases.

Methodology​

25 cases (5 services × 5 fault types), each replayed with 15 minutes of data before the fault and 5 after, into an isolated namespace per case. Each case's alert triggers an analysis, which is scored against RCAEval's ground-truth root cause: correct, wrong, or abstained.

Public attribution​

Dataset: RCAEval RE1-OB (Pham et al., FSE'26 + WWW'25 + ASE'24), MIT. https://github.com/phamquiluan/RCAEval

v1 and v2 of this scorecard reflected bugs in InfraSage's ingestion, not the engine's attribution capability. v3 is the first scorecard with all fixes deployed.