◆ NFRGate / Rule Reference

M2 — Outcome is measurable

high 📊 metrics · both

Every new externally-facing endpoint emits a request-outcome metric (success vs. error, broken out by status code or error class) sufficient to compute an error rate.

Python Implementation

M2: every new externally-facing endpoint emits a request-outcome metric
(success vs. error, by status code or error class) sufficient to compute an
error rate. Same shape and same "not a whitelist" tradeoff as M1
(latency_metric_rule.py) — searches the route handler's body for anything
counter/outcome-shaped.

Fail-branch confidence retuned from 0.75 to 0.778, per
docs/false_positive_rate_study_v1.md — same 5/5 real-code sample and
rationale as M1's; pass is untouched (not sampled).

Java Implementation

M2 for Java: every new Spring route handler emits a request-outcome
metric. Same shape as latency_metric_rule.py.

Fail-branch confidence retuned to 0.778 — see outcome_metric_rule.py
(Python) for the full rationale from docs/false_positive_rate_study_v1.md.

Go Implementation

M2 for Go: every new inline HTTP handler emits a request-outcome metric.
Same shape and scope as latency_metric_rule.py.

Fail-branch confidence retuned to 0.778 — see outcome_metric_rule.py
(Python) for the full rationale from docs/false_positive_rate_study_v1.md.
← All rules