<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 4.0.6) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-anjum-nmop-anomaly-detection-evaluation-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Anomaly Detection Evaluation">Evaluation Methodology for Network Anomaly Detection</title>

    <author fullname="Mateen Ali Anjum">
      <organization>Phono Technologies Inc.</organization>
      <address>
        <postal>
          <city>Kitchener</city>
          <region>Ontario</region>
          <country>Canada</country>
        </postal>
        <email>mateenali66@gmail.com</email>
      </address>
    </author>

    <date year="2026" month="September" day="07"/>

    <area>Operations and Management</area>
    <workgroup>Network Management Operations</workgroup>
    <keyword>anomaly detection</keyword> <keyword>evaluation</keyword> <keyword>benchmarking</keyword> <keyword>telemetry</keyword> <keyword>AIOps</keyword> <keyword>machine learning</keyword>

    <abstract>


<?line 107?>

<t>The Network Management Operations (NMOP) working group has adopted documents
describing an architecture, an operational lifecycle, and a semantics for
network anomaly detection. Those documents direct implementers to minimize
false positives and false negatives, but do not define how the accuracy of an
anomaly detection implementation is to be measured, compared, or tracked over
time. This document describes an evaluation methodology for anomaly
detectors operating on network and infrastructure telemetry, whether the
detector is rule-based, statistical, or machine-learning-based: the metrics
to report and their known failure modes, a benchmarking procedure based on
controlled fault injection and replay, ground-truth labeling and scoring
across multiple telemetry signals, and the properties a benchmark dataset
needs to support reproducible, comparable evaluation. The methodology is
informational and complements the adopted NMOP anomaly-detection documents.</t>



    </abstract>



  </front>

  <middle>


<?line 123?>

<section anchor="introduction"><name>Introduction</name>

<t>The NMOP working group has adopted three documents that together describe how
network anomaly detection is to be architected, operated, and annotated: an
architecture for Service Disruption Detection
<xref target="I-D.ietf-nmop-network-anomaly-architecture"/>, an operational lifecycle for
iterative refinement of detection systems
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/>, and a semantics for annotating
detected anomalies <xref target="I-D.ietf-nmop-network-anomaly-semantics"/>.</t>

<t>All three documents treat detection accuracy as a central objective. The
architecture requires that "the operator can trust that a targeted Service
Disruption will be detected (no false negatives), while not spamming the
operator with Alarms that do not reflect an actual issue within the network
(false positives)" (Section 3.5 of
<xref target="I-D.ietf-nmop-network-anomaly-architecture"/>). The lifecycle states that
"Providers of solutions for network anomaly detection should aim at
increasing accuracy, by minimizing False Positives and False Negatives"
(Section 1 of <xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/>), and its
refinement stage concludes by "'replaying' the network anomaly and checking
if there is any measurable improvement" (Section 5.3 of
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/>).</t>

<t>None of the three documents defines how that accuracy or that improvement is
to be measured. No evaluation metric, no formula, and no comparison procedure
is specified. The consequence is visible in the architecture document's own
deployment report, which counts 20 monitored service disruptions against 52
false positives since December 2022 (Section 4.1 of
<xref target="I-D.ietf-nmop-network-anomaly-architecture"/>) but has no framework in which
to express whether that ratio is acceptable, improving, or comparable to an
alternative detector.</t>

<t>This document describes such a companion, an evaluation methodology for
anomaly detectors operating on network and infrastructure telemetry: which
metrics to report and the known failure
modes of each (<xref target="metrics"/>), a benchmarking procedure based on controlled
fault injection and replay (<xref target="procedure"/>), including how ground truth is
labeled and scored when a detector operates over more than one telemetry
signal (<xref target="multisignal"/>), the properties a benchmark
dataset needs for reproducible comparison (<xref target="datasets"/>), and the minimum
contents of an evaluation report so that results from different detectors can
be compared at all (<xref target="reporting"/>). The methodology is grounded in a
published peer-reviewed evaluation of eight machine-learning detection
methods on unified telemetry <xref target="ANJUM-EVAL"/>, summarized as a worked example
in <xref target="example"/>.</t>

<section anchor="relationship"><name>Relationship to the NMOP Anomaly Detection Documents</name>

<t>This document is designed to be used inside the lifecycle defined by
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/>, not alongside it:</t>

<t><list style="symbols">
  <t>The lifecycle's Validation stage decides, per detected Symptom, whether a
real problem was signaled. Accumulated validation outcomes are exactly the
labels this document's metrics consume (<xref target="metrics"/>).</t>
  <t>The lifecycle's Refinement stage requires a check for "measurable
improvement" after replaying an anomaly. <xref target="procedure"/> turns that check
into a defined procedure with defined measures.</t>
  <t>The architecture's Replaying capability (Section 3.8 of
<xref target="I-D.ietf-nmop-network-anomaly-architecture"/>), which preserves the data
that led to an Alarm so that the detection algorithms can be rerun on the
same input, is the natural execution environment for the replay-based
evaluation in <xref target="procedure"/>.</t>
  <t>The semantics document defines the vocabulary in which a validated
anomaly is recorded: a Symptom bound to one network plane, with the
topology context (for example interface and peer) it concerns. Labels
expressed in that vocabulary are the multi-signal ground truth that
<xref target="multisignal"/> scores against.</t>
</list></t>

<t>One definitional difference must be reconciled explicitly.
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/> defines a False Positive as "a
detected anomaly which has been identified during the postmortem to be not
anomalous", an operational, postmortem judgment. Dataset-based evaluation
instead defines false positives against ground-truth labels fixed before
evaluation. Both definitions are useful and they converge as validated
postmortem outcomes accumulate into a labeled corpus; <xref target="terminology"/>
defines the ground-truth variants used in this document, and <xref target="datasets"/>
describes how operational validation records become benchmark labels.</t>

</section>
<section anchor="scope"><name>Scope</name>

<t>This document specifies methodology, not protocol. It defines no new data
models, YANG modules, or wire formats.</t>

<t>It applies to any detector that consumes telemetry signals (metrics, logs,
traces, flow records, routing events, or their combination) and emits, per
detection window or per event, a decision or a score. How the detector was
built does not matter: rule-based detectors such as static thresholds and
expert rules, statistical detectors such as seasonal baselines and
change-point tests, and machine-learning-based detectors are all in scope.
The metrics of <xref target="metrics"/>, the per-Symptom and per-episode scoring of
<xref target="procedure"/>, and the reporting requirements of <xref target="reporting"/> are defined
on detector output and ground truth, not on the detector's internals, so
they apply equally across these classes. The adaptations needed for detectors
that emit a binary decision without a score are given in
<xref target="threshold-independent"/>, and the reporting requirements that depend on a
score are marked as conditional in <xref target="reporting"/>.</t>

<t>The metric guidance in <xref target="metrics"/> comes from failure modes observed when
evaluating machine-learning-based detectors, but none of it is specific to
that class. The F1 floor of <xref target="threshold-dependent"/> is a property of the
evaluated set, not of the detector: a poorly set static threshold reaches it
as readily as a collapsed learned model.</t>

</section>
</section>
<section anchor="terminology"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

<t>This document uses the following terms as defined elsewhere and does not
redefine them: Problem, Symptom, and Alarm from <xref target="RFC9940"/>; Service
Disruption Detection System (SDDS) from
<xref target="I-D.ietf-nmop-network-anomaly-architecture"/>; and False Positive and False
Negative in their operational sense from
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/> (see <xref target="relationship"/> for the
reconciliation with the ground-truth sense used here).</t>

<t>The following evaluation-specific terms are defined for this document:</t>

<dl>
  <dt>Detector:</dt>
  <dd>
    <t>Any component that consumes one or more telemetry signals and emits, per
detection window or per event, either a decision (anomalous or
non-anomalous) or a score from which such a decision is derived by a
threshold. The term covers rule-based, statistical, and
machine-learning-based implementations alike; nothing in this document
depends on which.</t>
  </dd>
  <dt>Signal:</dt>
  <dd>
    <t>One telemetry stream over which a detector produces its own sequence of
decisions or scores, for example metrics, logs, or traces from a set of
services, or flow records from the forwarding plane and routing events
from the control plane of a network. A detector may operate over several
signals; its output is then scored per signal and per event
(<xref target="multisignal"/>).</t>
  </dd>
  <dt>Ground Truth:</dt>
  <dd>
    <t>The authoritative record of which intervals or events in a telemetry
corpus are anomalous, fixed before an evaluation begins. Ground truth may
originate from a controlled injection schedule (<xref target="procedure"/>) or from
accumulated, validated postmortem outcomes.</t>
  </dd>
  <dt>Label:</dt>
  <dd>
    <t>The per-interval or per-event value assigned by the ground truth
(anomalous or non-anomalous), against which detector output is scored.</t>
  </dd>
  <dt>Event:</dt>
  <dd>
    <t>One anomalous condition as recorded by the ground truth, with one onset
and one end, together with the signals in which it is observable and the
dimension values (for example interface or peer) it covers. Under
injection, one fault-injection run is one event; under postmortem
labeling, one validated annotation and its list of Symptoms is one event.
An episode (<xref target="episode"/>) is an event viewed on a single signal. An Event in
this sense corresponds to a Problem in <xref target="RFC9940"/> terms, qualified by the
requirement that the ground truth, not a detector, is what attributes the
Symptoms to it.</t>
  </dd>
  <dt>Evaluated Set:</dt>
  <dd>
    <t>The exact collection of intervals or events over which metrics are
computed. Threshold-dependent metrics computed over different evaluated
sets are not comparable, because they depend on the prevalence of the set
(<xref target="threshold-dependent"/>). Threshold-independent metrics are comparable
across sets to the extent the sets are drawn from comparable fault
distributions (<xref target="threshold-independent"/>).</t>
  </dd>
  <dt>Prevalence:</dt>
  <dd>
    <t>The fraction of the evaluated set that is labeled anomalous.</t>
  </dd>
  <dt>Detection Window:</dt>
  <dd>
    <t>The fixed time interval into which telemetry is aggregated before a
detection decision is made for that interval.</t>
  </dd>
  <dt>Detection Latency:</dt>
  <dd>
    <t>The elapsed time between the onset of an anomalous condition per the
ground truth and the first detection decision that flags it.</t>
  </dd>
</dl>

</section>
<section anchor="metrics"><name>Evaluation Metrics</name>

<t>Detection quality cannot be summarized in a single number. This section
defines a minimum metric set and, for each threshold-dependent metric, the
conditions under which it misleads. The guidance here is grounded in
observed failure modes from a controlled evaluation of eight detection
methods <xref target="ANJUM-EVAL"/>; the worked example in <xref target="example"/> shows each failure
mode with real values.</t>

<section anchor="threshold-independent"><name>Threshold-Independent Metrics</name>

<t>An anomaly detector typically produces a continuous score per detection
window, converted to a binary decision by a threshold. Metrics computed over
the score distribution, independent of any threshold, are the soundest
basis for comparing detectors:</t>

<t><list style="symbols">
  <t>AUC-ROC (area under the receiver operating characteristic curve) <bcp14>SHOULD</bcp14>
be the metric of record for ranking and acceptance decisions. It is
threshold-independent and insensitive to prevalence, so a change in the
anomaly rate of the evaluated set does not by itself move it. An AUC-ROC
near 0.5 indicates a detector performing no better than chance,
regardless of any other metric reported for it.</t>
  <t>PR-AUC (area under the precision-recall curve) <bcp14>SHOULD</bcp14> be reported
alongside AUC-ROC. It focuses on the anomalous class and is the more
informative of the two when prevalence is low, the common operational
condition <xref target="SAITO2015"/>.</t>
</list></t>

<t>The two answer different questions. AUC-ROC ranks, because prevalence
insensitivity is what makes detectors scored on sets with different anomaly
rates comparable at all. PR-AUC reflects the false-positive burden an operator
carries at low prevalence. Prevalence insensitivity is not corpus
independence: sets differ in fault distribution as well as in anomaly rate,
and <xref target="example"/> records one detector scoring far apart on two corpora.
Comparison across corpora is bounded by <xref target="datasets"/>.</t>

<t>An AUC-ROC well below 0.5 is a different condition from one near it. Near
0.5 the score carries no ranking information; well below 0.5 it carries
ranking information with the sign reversed, placing anomalous windows below
normal ones. The second is a defect in the score convention, not an absence of
signal. An evaluation that encounters it <bcp14>SHOULD</bcp14> report the observed value,
state that the ordering is inverted, and re-evaluate with the sign corrected
before judging the detector's discriminative power.</t>

<t>A detector that emits only a binary decision, with no score, has a single
operating point, and AUC-ROC and PR-AUC cannot be computed for it. Such a
detector <bcp14>MUST</bcp14> be reported with the threshold-dependent metrics of
<xref target="threshold-dependent"/> against the prevalence baseline defined there, and
<bcp14>SHOULD</bcp14> expose the quantity it thresholds internally (for example, the
deviation from a static limit, or the test statistic of a change-point
test) as a score, so that the threshold-independent metrics can be computed
and the detector compared with scoring detectors on the same footing.</t>

</section>
<section anchor="threshold-dependent"><name>Threshold-Dependent Metrics and the Prevalence Problem</name>

<t>Precision, recall, and their harmonic mean F1 describe a single operating
point and remain the terms in which operators reason ("how many alarms are
real", "how many disruptions are missed"). They <bcp14>MUST NOT</bcp14>, however, be used
in isolation for acceptance or comparison, for two reasons.</t>

<t>F1 has a nontrivial floor. A degenerate detector that flags every
window achieves recall 1 and F1 = 2p/(1+p), where p is the prevalence of
the evaluated set. At a prevalence of 0.4 this floor is approximately 0.57;
a reported F1 of 0.6 at that prevalence is therefore nearly
indistinguishable from a detector that discriminates nothing. The same
degenerate detector falls to F1 of roughly 0.10 at 5% prevalence, which is
why F1 values obtained at different prevalences are not comparable at all.
An evaluation <bcp14>MUST</bcp14> report the prevalence of its evaluated set and the F1 of
the trivial flag-everything detector on that set as a baseline. Where a score
is available, an evaluation <bcp14>SHOULD</bcp14> verify AUC-ROC exceeds 0.5 before any F1
value is credited. For a detector that emits binary decisions only no such
check is possible, and the comparison below takes its place.</t>

<t>For a scoreless detector, compare the fraction of windows it flags with the
prevalence of the evaluated set. A flagged fraction near 1 is the
flag-everything detector in all but name, whatever its F1, and a flagged
fraction well above prevalence buys recall with false positives that F1 at
that prevalence hides. An evaluation of a scoreless detector <bcp14>MUST</bcp14> report its
flagged fraction alongside precision, recall, and F1.</t>

<t>Threshold selection can additionally mask detector quality in either
direction. If the threshold is tuned on labeled validation data, reported
F1 reflects an optimistic operating point unavailable in production, where
thresholds are typically set from the score distribution of normal traffic
alone (for example, a high percentile of normal-only scores). An
evaluation <bcp14>MUST</bcp14> state how thresholds were selected, and <bcp14>SHOULD</bcp14> report the
sensitivity of its threshold-dependent metrics to that choice.</t>

</section>
<section anchor="episode"><name>Episode-Level Detection and Latency</name>

<t>Window-level metrics measure classification quality; operators additionally
need to know whether whole incidents are caught and how quickly. An episode
is one contiguous anomalous condition per the ground truth on one signal
(for a benchmark, one fault-injection run as seen on that signal). An
episode counts as detected if at least one window within its labeled span
is flagged. Episode-level detection rate is a recall-oriented measure and
is trivially satisfied by the flag-everything detector, so it <bcp14>MUST</bcp14> be
reported together with window-level precision, and with AUC-ROC where a
score is available, never alone.</t>

<t>The episode-level rate <bcp14>MUST NOT</bcp14> be used to modify the window-level metrics.
Windows of a detected episode that the detector did not flag remain false
negatives, and an evaluation <bcp14>MUST NOT</bcp14> relabel them as true positives before
computing window-level precision, recall, or F1. That practice, known as point
adjustment, inflates window-level scores far enough that a random score can
outrank a discriminating detector <xref target="KIM2022"/>.</t>

<t>Range-aware threshold-independent measures <xref target="PAPARRIZOS2022"/> are an
alternative to two-level reporting where a detector is scored against
anomalous ranges rather than isolated windows. This document does not require
them; an evaluation <bcp14>MAY</bcp14> report them in addition.</t>

<t>Where onset timestamps are available, detection latency (<xref target="terminology"/>)
<bcp14>SHOULD</bcp14> be reported as a distribution, not only a mean; <xref target="replay"/> explains
why the distribution, rather than its mean, is what predicts behavior on a
live network. When a detector operates over several signals, the
event-level counterpart of the episode-level rate is defined in
<xref target="multisignal"/>.</t>

</section>
<section anchor="window-sensitivity"><name>Window Sensitivity</name>

<t>The detection window is an experimental parameter with direct effect on
results: aggregation over a longer window smooths transient faults, a
shorter one raises noise. Conclusions that hold only at one window size are
fragile: in a two-fold, single-signal sub-study of the evaluation underlying
this document, one detector scored far apart across 10, 30 and 60-second
windows (<xref target="example"/> records that sub-study's limits). An evaluation <bcp14>MUST</bcp14>
state its primary window size and its
rationale, and <bcp14>SHOULD</bcp14> re-run its headline comparison at one or more
neighboring window sizes, reporting whether the qualitative conclusions are
stable.</t>

</section>
</section>
<section anchor="procedure"><name>Benchmarking Procedure</name>

<t>This section describes a repeatable procedure for producing the ground truth
and the evaluated set that the metrics in <xref target="metrics"/> require. The procedure
is based on controlled fault injection into an instrumented environment; it
is the offline complement to the operational Validation stage of
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/>.</t>

<section anchor="environment-and-instrumentation"><name>Environment and Instrumentation</name>

<t>The environment <bcp14>SHOULD</bcp14> be a representative multi-component system emitting
the telemetry signal types the detector under test consumes, unified
through a common collection pipeline so that metrics, logs, and traces
share a timeline. Two instrumentation patterns exist in practice, and a
benchmark gains external validity by covering both: components instrumented
natively at development time, and components instrumented after the fact
through operator- or agent-based retrofit. A baseline period of normal
operation <bcp14>MUST</bcp14> be captured before any fault is injected; it supplies
training data for detectors that learn from normal behavior only, the
reference against which rule-based and statistical detectors set their
limits, and the score distribution from which production-style thresholds
are derived (<xref target="metrics"/>).</t>

</section>
<section anchor="fault-injection"><name>Fault Injection</name>

<t>Faults <bcp14>MUST</bcp14> be injected under an explicit, recorded schedule; the schedule
is the ground truth. A useful minimum taxonomy, drawn from <xref target="ANJUM-EVAL"/>,
covers: added network latency at graded severities, injected request
errors, CPU saturation, memory saturation, and compound cascades that
combine a fault on one component with resource stress on a dependent
component. Injection targets <bcp14>SHOULD</bcp14> be chosen by architectural position
(entry point, mid-chain dependency, backend) rather than convenience, and
each scenario <bcp14>SHOULD</bcp14> be repeated multiple times so that dispersion across
repetitions can be reported. Each run <bcp14>SHOULD</bcp14> include a defined active-fault
phase followed by a cooldown phase long enough for the system to return to
nominal behavior.</t>

</section>
<section anchor="labeling"><name>Ground-Truth Labeling</name>

<t>Labels derive from the injection schedule: windows within an active-fault
phase are anomalous. Cooldown windows require an explicit decision. The
system is recovering but no fault is active; labeling them anomalous
inflates prevalence with ambiguous intervals, while silently including them
as normal penalizes detectors that correctly flag residual disturbance. The
evaluation <bcp14>MUST</bcp14> state how cooldown windows were treated, and <bcp14>SHOULD</bcp14> report
its headline results with cooldown windows excluded from the evaluated set,
with the resulting prevalence disclosed.</t>

<t>Where a detector is fitted, and its evaluation data is therefore partitioned
for training, validation, and testing, the partition <bcp14>MUST</bcp14> be by episode
(whole runs), never by random sampling of windows; windows from the same run
are temporally correlated, and random partitions leak that correlation into
inflated results.</t>

<t>Operational deployments accumulate an equivalent ground truth over time:
each postmortem-validated outcome under the lifecycle of
<xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/> is a label. <xref target="datasets"/>
describes how such records become benchmark datasets.</t>

<section anchor="multisignal"><name>Multi-Signal Ground Truth and Scoring</name>

<t>A detector, or a set of detectors, commonly operates over more than one
signal. In the environment of <xref target="example"/> the signals are metrics, logs,
and traces from the same services. In an operator network they may be
flow records from the forwarding plane (for example IPFIX) and routing
events from the control plane (for example BGP), each carrying dimensions
such as interface and peer, and an event on one plane may or may not show
on another. The labels of <xref target="labeling"/> are per signal and per window. This
section defines how labels and scores are assigned at two levels, the
individual signal and the aggregated event, and states the ambiguous
cases explicitly. An evaluation over more than one signal <bcp14>MUST</bcp14> report both
levels.</t>

<t>Labeling at the signal level. Each signal carries its own label sequence
over its own windows. Under injection, the schedule fixes the active span
of each event; under postmortem labeling, the recorded Symptoms fix it.
In the vocabulary of <xref target="I-D.ietf-nmop-network-anomaly-semantics"/>, each
Symptom is bound to one network plane (Section 3 of that document) and to
the topology context it concerns (Section 4.3 of that document), so a
Symptom labels the signal of its plane and the dimension values it names,
and nothing else.</t>

<t>Labeling at the event level. An event (<xref target="terminology"/>) is the set of
Symptoms, across signals and dimension values, that the ground truth
attributes to one cause, with one onset and one end. Under injection, one
run is one event. Under postmortem labeling, one validated annotation in
the label store of <xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/> (Section 6
of that document), with the list of Symptoms it names, is one event. The
ground truth <bcp14>MUST</bcp14> record, for every event, the signals in which it is
observable and the dimension values it covers.</t>

<t>Scoring at the signal level. Window-level metrics (<xref target="threshold-independent"/>,
<xref target="threshold-dependent"/>) are computed per signal, on that signal's windows
against that signal's labels, and reported per signal. They <bcp14>SHOULD NOT</bcp14> be
pooled across signals into one evaluated set: prevalence and window counts
differ by signal (in <xref target="example"/>, prevalence ranged from 0.27 to 0.41 by
signal), and pooling changes the evaluated set in the way
<xref target="threshold-dependent"/> warns against. An evaluation that pools anyway <bcp14>MUST</bcp14>
report the per-signal prevalences and window counts alongside the pooled
figure, so that a reader can see what the pooled set is composed of.</t>

<t>Scoring at the event level. An event counts as detected if at least one
signal in which the event is labeled observable flags at least one window
inside the event's span on a dimension value the event covers. The
event-level detection rate is the multi-signal counterpart of the
episode-level rate of <xref target="episode"/> and inherits its rules: it is
recall-oriented, and <bcp14>MUST</bcp14> be reported together with the signal-level
precision, and the signal-level AUC-ROC where a score is available, that it
summarizes, never alone. It <bcp14>MUST NOT</bcp14> be used to relabel signal-level windows,
for the reason given in <xref target="episode"/>. A flagged window that
falls inside no event's span on its signal is a false positive at both
levels.</t>

<section anchor="case-visibility"><name>Ambiguous Case 1: An Event Visible in One Signal and Absent in Another</name>

<t>Two labeling treatments are admissible, and an evaluation <bcp14>MUST</bcp14> state which
it used and <bcp14>MUST NOT</bcp14> mix them within one evaluated set.</t>

<t><list style="symbols">
  <t>Schedule labeling: every signal is labeled anomalous for every window in
the event's span, whether or not the event is observable in that signal.
A miss on a signal the event does not reach is then a signal-level false
negative. This treatment measures whether each signal's detector catches
each class of event, and its informative output is per-event-class recall
reported per signal. The evaluation in <xref target="example"/> used it.</t>
  <t>Visibility labeling: only the signals in which the ground truth records
the event as observable are labeled anomalous for its span. A flag on an
unlabeled signal during the event is a signal-level false positive, and a
miss there is a true negative. Postmortem labeling under
<xref target="I-D.ietf-nmop-network-anomaly-semantics"/> yields this treatment by
construction, since a Symptom is recorded only where something was
observed.</t>
</list></t>

<t>Under either treatment the event is detected at the event level if any
signal in which it is labeled observable flags it. The two treatments
give different signal-level prevalences for the same corpus, so results
obtained under one are not comparable with results obtained under the
other.</t>

</section>
<section anchor="case-dimensions"><name>Ambiguous Case 2: An Event Spanning Dimensions</name>

<t>An event may cover several
values of one dimension (several interfaces on one node, several peers of
one router) or several dimensions at once (an interface and a BGP peer).
The ground truth <bcp14>MUST</bcp14> record every dimension value the event covers, in
the terms of the semantics document's service topology model where it
applies. A flagged window during the event on a dimension value the event
does not cover (an unaffected interface, an unrelated peer) is a false
positive at both levels, not a detection of the event. When the detector
reports at a coarser dimension than the label (per node when the label is
per interface), the evaluation <bcp14>MUST</bcp14> state its matching rule; the default
is that a coarse detection counts as detecting every labeled fine-grained
value it contains, and the report <bcp14>SHOULD</bcp14> then also give the fraction of
events whose labeled dimension values were named exactly, since
localization, not only detection, is what the operator acts on.</t>

<t>The rules in this section are fitted to the two ground-truth shapes
available to the author: the injection schedule of <xref target="example"/>, and the
Symptom-and-topology vocabulary of
<xref target="I-D.ietf-nmop-network-anomaly-semantics"/>. Input from operators holding
labeled multi-plane events, for example flow records and routing events
across the forwarding and control planes with interface and peer
dimensions, is sought so that a future revision can include a worked
instance in that vocabulary.</t>

</section>
</section>
</section>
<section anchor="replay"><name>Replay-Based Evaluation</name>

<t>Section 3.8 of <xref target="I-D.ietf-nmop-network-anomaly-architecture"/> calls for an
SDDS to preserve the data that led to an Alarm so that the detection
algorithms can be rerun on the same input. That capability turns the
lifecycle's "measurable improvement" check into a defined measurement:
hold the evaluated set fixed, rerun the modified detector on the identical
preserved input, and compare the metrics of <xref target="metrics"/> before and after
the change. A comparison in which the evaluated set itself changed between
runs is not a measurement of the detector, and reporting it as an
improvement misstates what was measured.</t>

<t>Live networks have no injection schedule. Operator triage records true
positives and false positives as Alarms are validated, but a false negative
leaves no record until its effect is reported by a user, so the labeled set
of a live network is incomplete on exactly the side that matters most.
This document therefore treats evaluation for a live network as replay
against labeled history, in two steps that depend on the lifecycle and
semantics documents.</t>

<t><list style="numbers" type="1">
  <t>Acceptance evidence for a detector intended for live traffic <bcp14>MUST</bcp14>
include metrics obtained by replay against the labeled history
available: a benchmark dataset (<xref target="datasets"/>), the operator's own
preserved Alarm data with validated outcomes, or both. Metrics
accumulated from live triage alone do not constitute such evidence,
because their false-negative count is a lower bound.</t>
  <t>The labeled set grows as postmortem labeling proceeds.
<xref target="I-D.ietf-nmop-network-anomaly-semantics"/> defines the vocabulary in
which that labeling is expressed, a Symptom per network plane with its
topology context (Sections 3 and 4 of that document), and the label
store of <xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/> (Section 6 of that
document) persists each annotation and its versions. Every validated
annotation, including a user-reported disruption that no detector
flagged, adds labels to the history. A detector <bcp14>SHOULD</bcp14> be re-evaluated
by replay whenever the labeled set has grown materially, and the report
<bcp14>MUST</bcp14> state the size and date range of the labeled history used, so that
two evaluations of the same detector are read against the labeled sets
they were computed on. A re-evaluation on a grown labeled set is a new
measurement, not a measurement of improvement; to measure the effect of
a detector change, both versions are run on the same, current labeled
set.</t>
</list></t>

<t>Detection latency matters more in the live case than in a benchmark. In a
benchmark a late true positive still counts as detected within its
episode. In a live network a true positive that arrives after a user has
reported the disruption is, in operational terms, a false negative,
because the user report and not the detector triggered triage. An
evaluation intended to predict live behavior <bcp14>SHOULD</bcp14> therefore report
detection latency as a distribution (<xref target="episode"/>), and <bcp14>SHOULD</bcp14> state the
fraction of episodes detected within a time bound chosen and stated by the
operator, since that fraction, and not the mean latency, separates a
detector that leads triage from one that trails it.</t>

</section>
</section>
<section anchor="datasets"><name>Benchmark Dataset Requirements</name>

<t>A benchmark dataset supports reproducible, comparable evaluation only if it
contains, at minimum:</t>

<t><list style="symbols">
  <t>the telemetry itself, covering every signal type the benchmark claims,
on a common timeline;</t>
  <t>the ground truth: the full injection schedule (or validated postmortem
record), including fault type, target, severity, the signals in which
each event is observable, the dimension values it covers, and the active
and cooldown interval boundaries for every episode;</t>
  <t>the baseline period of normal operation, clearly delimited;</t>
  <t>enough topology and deployment metadata to interpret the faults
(component inventory, dependency relationships, instrumentation method
per component);</t>
  <t>documentation of the collection pipeline, since preprocessing choices
(aggregation windows, feature construction) are part of what is being
reproduced.</t>
</list></t>

<t>Datasets intended for comparison across publications <bcp14>SHOULD</bcp14> be deposited
with a persistent identifier and explicit versioning. Where a repository
distinguishes a concept identifier (resolving to the latest version) from
version identifiers, an evaluation <bcp14>MUST</bcp14> cite exactly one version and state
which, since results are not reproducible against "latest". <xref target="ANJUM-DATA"/>
is a partial example: it meets the baseline-delimitation, metadata, and
pipeline-documentation requirements above, and deposits the processed
feature tables, per-fold results, and raw detector scores derived from the
telemetry. It meets the ground-truth requirement only in part, because it
records the injection schedule with fault type, target, and interval
boundaries but not the signals in which each event is observable, that
distinction not having been drawn when it was collected (<xref target="multisignal"/>
explains what turns on it). The raw telemetry itself (about 51 GB) is not
in the deposit and is available from the author.</t>

<t>Results obtained on a single dataset, however carefully
constructed, are results about that dataset's fault distribution. Benchmark
artifacts also carry defects of their own that flatter detectors in ways a
single-corpus evaluation cannot expose <xref target="WU2023"/>. In the evaluation
underlying this document, the detector that ranked first on the study's
primary benchmark performed at or near chance on <xref target="RCAEVAL"/>, an
independently collected third-party benchmark, while the failure modes
described in <xref target="metrics"/> reproduced on both (<xref target="example"/>). An evaluation
making claims beyond a single environment <bcp14>SHOULD</bcp14> therefore include at least
one dataset collected by a different team with a different pipeline, and
<bcp14>SHOULD</bcp14> present ranking claims as specific to the evaluated fault
distribution.</t>

</section>
<section anchor="reporting"><name>Reporting Requirements</name>

<t>An evaluation report that permits comparison <bcp14>MUST</bcp14> state:</t>

<t><list style="symbols">
  <t>the definition of the evaluated set, its prevalence, and the treatment of
cooldown/recovery windows (<xref target="procedure"/>);</t>
  <t>for an evaluation over more than one signal, the labeling treatment of
<xref target="multisignal"/> and the per-signal prevalences;</t>
  <t>the detection window size and, where checked, window sensitivity
(<xref target="metrics"/>);</t>
  <t>the threshold selection procedure, including whether labeled anomalies
were available to it, or, for a detector without a score, the statement
that it emits binary decisions only (<xref target="threshold-independent"/>);</t>
  <t>precision, recall, and F1 at the stated operating point, and, where the
detector emits a score, AUC-ROC and PR-AUC, each with dispersion across
folds or repetitions rather than a single point value;</t>
  <t>the flag-everything F1 baseline for the evaluated set's prevalence, and,
for a detector that emits binary decisions only, the flagged fraction
(<xref target="threshold-dependent"/>);</t>
  <t>episode-level detection rate, and event-level detection rate where more
than one signal is evaluated, together with the window-level metrics
they qualify, and a statement that no point adjustment was applied to
those window-level metrics (<xref target="episode"/>);</t>
  <t>for an evaluation by replay against labeled history (<xref target="replay"/>), the
size and date range of that history;</t>
  <t>the exact dataset version used, by persistent identifier.</t>
</list></t>

<t>A report <bcp14>SHOULD</bcp14> additionally state the known limits of its claims: the
fault distribution evaluated, the observation horizon (whether multi-day
effects such as seasonality or drift are covered at all), and whether the
rankings reported are claimed to transfer beyond the evaluated
environment. Rankings <bcp14>SHOULD</bcp14> be presented as relative performance under the
stated fault distribution, not as universal detector quality.</t>

</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>[RFC Editor: please remove this section before publication, per RFC 7942.]</t>

<t>This section records the status of known implementations of the methodology
defined in this document at the time of posting, following the process in
<xref target="RFC7942"/>. The description of implementations in this section is intended
to assist the IETF in its decision processes. The information is not
intended to be a catalog of available
implementations or their features. Readers are advised to note that other
implementations may exist. The listing of an implementation here does not
imply endorsement by the IETF, and no effort has been spent to verify the
information presented here that was supplied by IETF contributors.</t>

<section anchor="authors-implementation"><name>Author's Implementation</name>

<t><list style="symbols">
  <t>Organization: Phono Technologies Inc. (document author)</t>
  <t>Description: An implementation of the metric computation and
reporting requirements of this document: the threshold-independent and
prevalence-baselined metrics of <xref target="metrics"/>, the prevalence re-scoring
analysis, episode-level detection rate, and the reporting requirements
of <xref target="reporting"/>, applied to eight machine-learning detection methods
over unified OpenTelemetry traces, metrics, and logs. It does not
implement the detection-latency distribution of <xref target="episode"/> (the
underlying study recorded episode-level detection only), and it
represents the fault-injection procedure of <xref target="procedure"/> by the
recorded injection configurations and archived outputs rather than by
an executable environment.</t>
  <t>Maturity: Research-grade. The analysis code was executed against the
archived benchmark in a clean environment on 2026-08-24 and regenerated
the archived prevalence-sensitivity tables exactly, including the values
reported in the associated peer-reviewed study (DOI
10.1109/ACCESS.2026.3705430). A one-command reproduction package is
public at https://github.com/mateenali66/otel-aiops-reproduction. It
fetches the archived record and checks its checksum, runs in a container
image pinned by digest with fixed seeds, provides a smoke mode that runs
one signal and one fold in a few minutes on a laptop CPU (about two and
a half minutes in the recorded run), and includes a verify step that
compares the smoke output against the archived per-fold results and
regenerates the archived tables from the archived raw scores. The full
eight-method regeneration through the package had not been run at the
time of this revision; the package documents its estimated cost.</t>
  <t>Coverage: <xref target="metrics"/> in full except for the detection-latency
distribution of <xref target="episode"/>, which is not implemented. <xref target="reporting"/>
except for the event-level detection rate and the multi-signal labeling
statement, both introduced in this revision and not yet implemented.
<xref target="datasets"/> in part: the archive meets the requirements recorded in
<xref target="datasets"/>, including the ground-truth requirement only to the extent
described there, and does not carry the raw telemetry. <xref target="procedure"/> by
recorded configurations and archived outputs. The eight detection methods
implemented are all machine-learning methods, so the rule-based and
statistical classes admitted by <xref target="scope"/> are exercised only through the
package's path for externally supplied binary decisions. Full retraining
of the detectors additionally requires the environment described in the
study or the package's CPU path.</t>
  <t>Licensing: The archived record is openly available under CC-BY 4.0 with a
versioned persistent identifier (DOI 10.5281/zenodo.22078287, version
3.1.3), and includes code, processed feature tables with versioned ground
truth, per-fold results, raw detector scores, and reproduction
instructions. The reproduction package is public on GitHub at the address
above; its wrapper code is Apache-2.0 and the artifacts it fetches and the
tables it derives remain CC-BY 4.0.</t>
  <t>Contact: mateenali66@gmail.com</t>
</list></t>

<t>The processed feature tables and ground truth in the same archive are usable
by other implementations of this methodology as a common evaluation baseline,
within the limits recorded in <xref target="datasets"/>; the
author is aware of no independent implementation at the time of this
revision and will record any that appear in future revisions.</t>

</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>Benchmark datasets derived from operational environments can reveal network
topology, service names, traffic patterns, capacity limits, and failure
behavior of the originating operator. Datasets intended for publication
<bcp14>SHOULD</bcp14> be anonymized with respect to addresses, hostnames, service
identifiers, and tenant identifiers, and <bcp14>SHOULD</bcp14> be reviewed for indirect
disclosure through correlated fields before release. Replay-based evaluation
environments reproduce failure conditions by design and <bcp14>MUST</bcp14> be isolated
from production systems.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.ietf-nmop-network-anomaly-architecture">
   <front>
      <title>A Framework for a Network Anomaly Detection Architecture</title>
      <author fullname="Thomas Graf" initials="T." surname="Graf">
         <organization>Swisscom</organization>
      </author>
      <author fullname="Wanting Du" initials="W." surname="Du">
         <organization>Swisscom</organization>
      </author>
      <author fullname="Pierre Francois" initials="P." surname="Francois">
         <organization>INSA-Lyon</organization>
      </author>
      <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
         <organization>Deutsche Telekom</organization>
      </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   This document describes the motivation and architecture of a Network
   Anomaly Detection Framework and the relationship to other documents
   describing network Symptom semantics and network incident lifecycle.

   The described architecture for detecting IP network service
   interruption is designed to be generic applicable and extensible.
   Different applications are described and examples are referenced with
   open-source running code.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-network-anomaly-architecture-08"/>
   
</reference>

<reference anchor="I-D.ietf-nmop-network-anomaly-lifecycle">
   <front>
      <title>An Experiment: Network Anomaly Detection Lifecycle</title>
      <author fullname="Vincenzo Riccobene" initials="V." surname="Riccobene">
         <organization>Huawei</organization>
      </author>
      <author fullname="Thomas Graf" initials="T." surname="Graf">
         <organization>Swisscom</organization>
      </author>
      <author fullname="Wanting Du" initials="W." surname="Du">
         <organization>Swisscom</organization>
      </author>
      <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
         <organization>Deutsche Telekom</organization>
      </author>
      <date day="6" month="September" year="2026"/>
      <abstract>
	 <t>   This document defines a structured, iterative lifecycle for network
   anomaly detection systems to enable &quot;human-in-the-loop&quot; refinements.
   Key contributions include defining three lifecycle stages, a state
   machine for anomaly annotations, and YANG data models for
   standardized labeling and exchange.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-network-anomaly-lifecycle-07"/>
   
</reference>

<reference anchor="I-D.ietf-nmop-network-anomaly-semantics">
   <front>
      <title>Semantic Metadata Annotation for Network Anomaly Detection</title>
      <author fullname="Thomas Graf" initials="T." surname="Graf">
         <organization>Swisscom</organization>
      </author>
      <author fullname="Wanting Du" initials="W." surname="Du">
         <organization>Swisscom</organization>
      </author>
      <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
         <organization>Deutsche Telekom</organization>
      </author>
      <author fullname="Vincenzo Riccobene" initials="V." surname="Riccobene">
         <organization>Huawei</organization>
      </author>
      <date day="6" month="July" year="2026"/>
      <abstract>
	 <t>   The document proposes a unified symptoms vocabulary for network
   anomaly metadata to improve data sharing and analysis among human
   network operators, network analytics implementers, and AI systems to
   improve accuracy of Service Disruption Detection.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-nmop-network-anomaly-semantics-06"/>
   
</reference>
<reference anchor="RFC9940">
  <front>
    <title>Some Key Terms for Network Fault and Problem Management</title>
    <author fullname="N. Davis" initials="N." role="editor" surname="Davis"/>
    <author fullname="A. Farrel" initials="A." role="editor" surname="Farrel"/>
    <author fullname="T. Graf" initials="T." surname="Graf"/>
    <author fullname="Q. Wu" initials="Q." surname="Wu"/>
    <author fullname="C. Yu" initials="C." surname="Yu"/>
    <date month="April" year="2026"/>
    <abstract>
      <t>This document sets out some terms that are fundamental to a common understanding of network fault and problem management within the IETF.</t>
      <t>The purpose of this document is to bring clarity to discussions and other work related to network fault and problem management -- in particular, to YANG data models and management protocols that report, make visible, or manage network faults and problems.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9940"/>
  <seriesInfo name="DOI" value="10.17487/RFC9940"/>
</reference>

<reference anchor="ANJUM-EVAL" >
  <front>
    <title>Evaluating ML-Based Anomaly Detection on Unified OpenTelemetry Telemetry: An Empirical Study Across Traces, Metrics, and Logs</title>
    <author initials="M. A." surname="Anjum">
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
  <seriesInfo name="DOI" value="10.1109/ACCESS.2026.3705430"/>
  <seriesInfo name="IEEE Access" value="vol. 14, pp. 93576-93608"/>
</reference>
<reference anchor="ANJUM-DATA" >
  <front>
    <title>OpenTelemetry AIOps Benchmark: ML-based Anomaly Detection across Traces, Metrics, and Logs</title>
    <author initials="M. A." surname="Anjum">
      <organization></organization>
    </author>
    <date year="2026" month="August"/>
  </front>
  <seriesInfo name="DOI" value="10.5281/zenodo.22078287"/>
  <seriesInfo name="Zenodo" value="record 22078287, version 3.1.3"/>
</reference>
<reference anchor="KIM2022" >
  <front>
    <title>Towards a Rigorous Evaluation of Time-Series Anomaly Detection</title>
    <author initials="S." surname="Kim">
      <organization></organization>
    </author>
    <author initials="K." surname="Choi">
      <organization></organization>
    </author>
    <author initials="H." surname="Choi">
      <organization></organization>
    </author>
    <author initials="B." surname="Lee">
      <organization></organization>
    </author>
    <author initials="S." surname="Yoon">
      <organization></organization>
    </author>
    <date year="2022"/>
  </front>
  <seriesInfo name="DOI" value="10.1609/aaai.v36i7.20680"/>
  <seriesInfo name="AAAI" value="Proc. AAAI Conf. on Artificial Intelligence, vol. 36, no. 7, pp. 7194-7201"/>
</reference>
<reference anchor="SAITO2015" >
  <front>
    <title>The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets</title>
    <author initials="T." surname="Saito">
      <organization></organization>
    </author>
    <author initials="M." surname="Rehmsmeier">
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
  <seriesInfo name="DOI" value="10.1371/journal.pone.0118432"/>
  <seriesInfo name="PLOS ONE" value="vol. 10, no. 3, e0118432"/>
</reference>
<reference anchor="WU2023" >
  <front>
    <title>Current Time Series Anomaly Detection Benchmarks are Flawed and are Creating the Illusion of Progress</title>
    <author initials="R." surname="Wu">
      <organization></organization>
    </author>
    <author initials="E. J." surname="Keogh">
      <organization></organization>
    </author>
    <date year="2023"/>
  </front>
  <seriesInfo name="DOI" value="10.1109/TKDE.2021.3112126"/>
  <seriesInfo name="IEEE TKDE" value="vol. 35, no. 3, pp. 2421-2429"/>
</reference>
<reference anchor="PAPARRIZOS2022" >
  <front>
    <title>Volume Under the Surface: A New Accuracy Evaluation Measure for Time-Series Anomaly Detection</title>
    <author initials="J." surname="Paparrizos">
      <organization></organization>
    </author>
    <author initials="P." surname="Boniol">
      <organization></organization>
    </author>
    <author initials="T." surname="Palpanas">
      <organization></organization>
    </author>
    <author initials="R. S." surname="Tsay">
      <organization></organization>
    </author>
    <author initials="A." surname="Elmore">
      <organization></organization>
    </author>
    <author initials="M. J." surname="Franklin">
      <organization></organization>
    </author>
    <date year="2022"/>
  </front>
  <seriesInfo name="DOI" value="10.14778/3551793.3551830"/>
  <seriesInfo name="PVLDB" value="vol. 15, no. 11, pp. 2774-2787"/>
</reference>
<reference anchor="RCAEVAL" >
  <front>
    <title>RCAEval: A Benchmark for Root Cause Analysis of Microservice Systems with Telemetry Data</title>
    <author initials="L." surname="Pham">
      <organization></organization>
    </author>
    <author initials="H." surname="Zhang">
      <organization></organization>
    </author>
    <author initials="H." surname="Ha">
      <organization></organization>
    </author>
    <author initials="F." surname="Salim">
      <organization></organization>
    </author>
    <author initials="X." surname="Zhang">
      <organization></organization>
    </author>
    <date year="2025" month="May"/>
  </front>
  <seriesInfo name="DOI" value="10.1145/3701716.3715290"/>
  <seriesInfo name="ACM" value="Companion Proc. ACM Web Conf. 2025, pp. 777-780"/>
</reference>


<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</reference>



    </references>

</references>


<?line 830?>

<section anchor="example"><name>Worked Example: An Application of This Methodology</name>

<t>This informative appendix summarizes the published evaluation
<xref target="ANJUM-EVAL"/> as an end-to-end application of <xref target="procedure"/> and
<xref target="metrics"/>, including the observed failure modes that motivate the
normative guidance.</t>

<t>Environment and campaign. Two Kubernetes-hosted microservice testbeds were
instrumented and unified through an OpenTelemetry Collector exporting
metrics, logs, and traces to a common store: one natively instrumented
14-service system and one 7-service system retrofitted through
operator-based auto-instrumentation, deliberately covering both
instrumentation patterns of <xref target="procedure"/>. A 24-hour normal-operation
baseline was captured, then 40 fault scenarios (graded network latency,
injected request errors, CPU and memory saturation, and compound cascades,
targeted by architectural position), 20 per testbed, were each run 10 times,
with a 5-minute active-fault phase and 5-minute cooldown per run. The two
testbeds ran in parallel, so the 400 runs completed as 200 sequential runs
each, producing roughly 51 GB of telemetry over a 33.5-hour campaign. Labels
derived from the injection schedule under the schedule labeling of
<xref target="multisignal"/>: every signal was
labeled anomalous for the active span of every run. The primary evaluated
set excluded cooldown windows, yielding
prevalences of roughly 0.27 to 0.41 depending on signal, all disclosed.
Partitioning was by repetition, meaning independent experimental
replicates separated in time, across five folds. The primary detection
window was 60 seconds. A sensitivity check re-ran the pipeline at 10 and 30
seconds, on the metrics signal only, for four of the eight detectors, and
under a reduced hyperparameter search budget at 10 seconds; the folds common
to all three window sizes numbered two rather than five. Eight
semi-supervised detection methods spanning four families were evaluated, with
a supervised baseline for reference.</t>

<t>The F1-inflation failure mode. At the metrics signal's prevalence, the
flag-everything F1 floor was 0.582. Three of the eight detectors, all
autoencoder variants, converged to exactly that value (F1 0.582 +/- 0.001)
while their AUC-ROC lay between 0.17 and 0.22, far below chance: seemingly
respectable F1 produced by degenerate detectors. The study diagnosed the
cause as a score-distribution inversion, referred to below as the
inversion: these detectors assigned lower anomaly scores to anomalous
windows than to normal ones, so a threshold that flags nearly everything
was the best operating point available to them. Because the inversion
yields high F1 while AUC-ROC exposes it, the study adopted AUC-ROC as the
metric of record and F1 as an operating-point summary read against its
prevalence baseline, the rule generalized in <xref target="metrics"/>.</t>

<t>Window sensitivity. Qualitative conclusions were stable across the three
window sizes. Within the two-fold sub-study described above, one detector (a
one-class deep method) scored AUC-ROC 0.916 at 30 seconds and 0.509 and 0.553
at 10 and 60 seconds, despite F1 near 0.74 at both of the lower values. The
same detector scored AUC-ROC 0.776 on the metrics signal at 60 seconds under
the full five-fold protocol, and the study's primary results place it among
the detectors that avoid the degenerate collapse. Two folds, one signal and a
reduced search budget are not interchangeable with the primary protocol, which
is why <xref target="metrics"/> requires a window-sensitivity check to state the protocol
it ran under.</t>

<t>Prevalence extrapolation. Re-scoring at a synthetic 5% prevalence, closer
to production conditions, collapsed the flag-everything F1 floor to about
0.10 and reduced the best detector's F1 from 0.906 to 0.670, quantifying
how strongly experimental prevalence overstates practical utility, the
reason <xref target="reporting"/> requires prevalence disclosure.</t>

<t>External validity. The strongest detector on the primary benchmark (a
density-estimation deep method, F1 0.906 +/- 0.060 and AUC-ROC 0.960 +/-
0.043 on metrics) performed at or near chance (AUC-ROC 0.33 to 0.52) on an
independently collected third-party benchmark <xref target="RCAEVAL"/>, where a classical
isolation-based method was strongest (AUC-ROC up to 0.95). The failure
modes, by contrast, transferred: on the external benchmark the
reconstruction-based methods
again posted deceptively non-trivial F1 (0.65 to 0.71) at AUC-ROC of only
0.50 to 0.60. The study accordingly claims no universal ranking, and this
document's <xref target="datasets"/> requirement for an independent second dataset
follows directly from that observation.</t>

<t>The processed feature tables, per-fold results, raw detector scores, and
analysis code are archived at <xref target="ANJUM-DATA"/>; the one-command reproduction
package is described in the Implementation Status section.</t>

<t>What this study predates. The study was designed and run before this
document, and it does not meet every requirement stated here. It reports no
event-level detection rate, because the two-level scoring of
<xref target="multisignal"/> was not defined when it ran; its three signals are scored and
reported per signal only. It reports no detection-latency distribution
(<xref target="episode"/>), having recorded episode-level detection alone. Its ground
truth records the injection schedule but not per-signal observability, the
limit noted in <xref target="datasets"/>. The published article <xref target="ANJUM-EVAL"/> cites the
dataset by its concept identifier rather than by the single version that
<xref target="datasets"/> requires; <xref target="ANJUM-DATA"/> in this document cites version 3.1.3.</t>

</section>
<section anchor="changes"><name>Changes from -01 to -02</name>

<t>[RFC Editor: please remove this appendix before publication.]</t>

<t>The following changes were prompted by the review of -01 posted to the
NMOP list by Wanting Du on 26 August 2026
(https://mailarchive.ietf.org/arch/msg/nmop/ZemcwNghqX4gvtUnCblH-s7rlfU/):</t>

<t><list style="symbols">
  <t>Scope (review point 2). The title, the Abstract, <xref target="scope"/>, and the
definitions in <xref target="terminology"/> now cover rule-based, statistical, and
machine-learning-based detectors equally, and "detector" is used
throughout in place of "model". The title dropped
"Machine-Learning-Based", which had contradicted the widened scope on the
cover page; the document name is unchanged. Detector, Signal, and Event
are defined. <xref target="threshold-independent"/> adds the rule for detectors that
emit a binary decision without a score, <xref target="threshold-dependent"/> adds the
flagged-fraction comparison that replaces the AUC-ROC check for them, and
the requirements in <xref target="episode"/>, <xref target="multisignal"/>, and <xref target="reporting"/> that
depend on a score are now conditional so that a scoreless detector can
comply with all of them.</t>
  <t>Multi-signal ground truth (review point 3). New <xref target="multisignal"/> defines
labeling and scoring at the individual-signal level and at the
aggregated-event level, and states two ambiguous cases explicitly: an
event visible in one signal and absent in another, and an event
spanning dimensions such as interface and peer. <xref target="relationship"/> and
<xref target="datasets"/> were extended to match.</t>
  <t>Live networks and hidden false negatives (the review's context note).
<xref target="replay"/> now makes the replay dependency explicit: a detector is
evaluated against labeled history before it is trusted live, and
re-evaluated as the labeled set grows through postmortem labeling, with
<xref target="I-D.ietf-nmop-network-anomaly-semantics"/> cited for the labeling
vocabulary and <xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/> for the
label store. Detection latency is to be reported as a distribution, and
the section states why that matters more in the live case.</t>
  <t>Review point 1 (the combination of threshold-independent metrics,
operating-point metrics, and prevalence baselines) required no change.</t>
</list></t>

<t>The following changes come from the author's own accuracy pass over -01:</t>

<t><list style="symbols">
  <t>Section 1: the two lifecycle citations now point to Section 1 and
Section 5.3 of <xref target="I-D.ietf-nmop-network-anomaly-lifecycle"/>; -01 cited
subsections that do not exist. All quotations from the three NMOP
documents were re-verified against the datatracker texts current on
6 September 2026 (architecture-08, lifecycle-07, semantics-06).</t>
  <t><xref target="terminology"/>: "System" was removed from the list of terms attributed
to <xref target="RFC9940"/>, which does not define it.</t>
  <t>Section 3.4, <xref target="datasets"/>, and <xref target="example"/>: "no better than chance" and
"at or below chance" were replaced by "near chance" where the cited
AUC-ROC values (0.509, 0.553, 0.33 to 0.52) are near rather than below
0.5; <xref target="example"/> now defines the inversion at first use.</t>
  <t><xref target="datasets"/>: the sentence presenting <xref target="ANJUM-DATA"/> as an example now
states which requirements the deposit meets and that the raw telemetry
is not in it.</t>
  <t>Implementation Status: "latency reporting" was removed from the
description (it is not implemented); the reproduction claim was narrowed
to the prevalence tables the archive verifies; "complete" was dropped;
and the public one-command reproduction package was added as a new
fact.</t>
  <t>References: <xref target="ANJUM-DATA"/> now cites one pinned version (version 3.1.3,
DOI 10.5281/zenodo.22078287) with the title as recorded, as
<xref target="datasets"/> requires, instead of the concept identifier.</t>
  <t>Editorial: "in order to" (Abstract) and "most robust basis" (Section
3.1) were reworded.</t>
</list></t>

<t>The following changes come from a second accuracy pass, made before this
revision was posted:</t>

<t><list style="symbols">
  <t><xref target="example"/>: the campaign description now records that the 40 scenarios
were 20 per testbed run on two testbeds in parallel, without which the
stated run count and duration contradicted each other. The
window-sensitivity comparison is now identified as a two-fold,
single-signal, four-detector sub-study with a reduced search budget at 10
seconds, and the AUC-ROC the same detector reached at 60 seconds under the
full five-fold protocol (0.776) is given alongside the sub-study's 0.553.
A closing paragraph records which requirements of this document the worked
example predates and does not meet.</t>
  <t><xref target="threshold-independent"/> and <xref target="terminology"/>: -01 asserted both that
metrics are not comparable across evaluated sets and that AUC-ROC values
are. Comparability is now stated per metric family, and prevalence
insensitivity is no longer presented as corpus independence. An AUC-ROC
well below 0.5 is distinguished from one near 0.5, as a sign-reversed
ranking rather than an absent one.</t>
  <t><xref target="episode"/>: point adjustment is named and forbidden, so an episode-level
rate cannot be used to relabel window-level outcomes. <xref target="reporting"/>
requires a statement that none was applied.</t>
  <t><xref target="replay"/>: the replay requirement now constrains acceptance evidence
rather than an operator's decision to trust a detector, which is outside
the scope of this document. <xref target="multisignal"/>: the prohibition on pooling
signals relaxed to <bcp14>SHOULD NOT</bcp14> with a disclosure requirement, and the two
ambiguous cases became numbered subsections so they can be cited.</t>
  <t><xref target="datasets"/> and Implementation Status: the coverage claims were narrowed.
The archive meets the ground-truth requirement only in part, since it does
not record per-signal observability, and the Implementation Status section
no longer claims <xref target="datasets"/> or <xref target="reporting"/> in full. That section now
uses the disclaimer wording suggested by <xref target="RFC7942"/> and is titled
"Author's Implementation".</t>
  <t>References: third-party work is now cited for the precision-recall
argument <xref target="SAITO2015"/>, the point-adjustment critique <xref target="KIM2022"/>,
range-aware measures <xref target="PAPARRIZOS2022"/>, and benchmark defects
<xref target="WU2023"/>. The external benchmark of <xref target="datasets"/> and <xref target="example"/> is
named as <xref target="RCAEVAL"/>, where -01 referred to it without naming it.</t>
  <t><xref target="terminology"/>: terms imported but never used were dropped from the
borrowed list, and Event is related to <xref target="RFC9940"/>'s Problem. Section 1
narrows "no metric" to evaluation metrics, since the lifecycle document
does define a Confidence Score, and the deployment-report figures now
carry the period they cover.</t>
</list></t>

</section>
<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The author thanks Wanting Du for her review of -01 on the NMOP list. Her
comments prompted the changes to <xref target="scope"/>, <xref target="multisignal"/>, and <xref target="replay"/>
recorded in <xref target="changes"/>.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA7V96XLbWJbmfzwFRo6JlKpJWtRi2XJvStmuVJe3tpyVXdXR
MQGSIIUyCbAAUDJT4XeZZ5knm/Od5S4A5aUnpqIiLVHExV3OPet3zhkOh0lb
tMv8PN17eZstN1lbVGX6Jm9vqlm1rBbbdF7V6du8vavqT+lFWa2y5TZ9kbf5
FN/cS7LJpM5v6fHe31I/4F4yq6ZltqLXzOps3g6z8m+b1bBcVWv6kZ8bzuy5
Ye6eGx4eJdOszRdVvT1Pi3JeJc1msiqahv7Ybtc03tXLj6+SYl2fp229adqj
w8Nn9FBW5xnN6d06r3mgJs3KWfomK7NFvsrLdi/BehZ1tVnT12x5/u+pf3Iv
+ZRv6c+z8yRNh6lON3XT5U/9lPnXSV5Ob1ZZ/akoF/xBmy9p3Lbe8m8XV+/W
Df+0yqY3RZmnyzyrS3y5aWmi/ytbViWtbZs3ybo4T/+zraaDtKnqts7nDf20
XeGH/0qSbEMHVcvM5pvlUvb4DW1ZXqYXy4JOjDaa/pymVb3IyuJ3nuR5+v6m
Kqv0Yz69KXHMRd6kV+V0xN/MV1mxPKe5YZRsWTx58q8LfDSaVjLUtGjpOP5U
tNObvMxr/qzOFzzwu7LN6qKS71WbssXJXdLGzrIkKauaRi1u8/MkwWm639L0
avhiVOTtXIiilBNxxJHVtE/Y8E39Hd9eFvN8up0uv+OrDS22bItpg69+eHX5
7NnJIX68ePtvv74ZvvzzxetzXkr3kpSL9M3r4c9Zk8/6tyKl//9aFvOC/kiE
VH6000/dT+f0VPpytS7qYpot0+t2M9umF9O6apr0Y51NczpmuoX0V/oBtPu6
WhApYir+zPG/IV2Lho58lF6MgtOe0eGdp0eHR0/41yav6Yix5fbci3dX5+n4
cDQeHz57fHF5+fL6eoSvj47PDk9Pjg/1a3tXL1++pInRhJo9Wv9ttRyl45NB
ul6P0mfHp2dPhs+Onxw+3XN79uLi40W8Z/EWMPGnP9sNOcc+Th7Yx+z/x4YM
D59+Y09Oj56OH/+el8QCR0dHh2dPj56e6Vf+yp/Soup8SjwhtT8P0tu8BldK
j0fj0TEm9qerN/S6o3gvPlZ3WT0jdpR+KIirVZsmYJNpNU8/Fqt8eM1T28Vu
H1zv9Ygu5Cr+7E+j9PKmKuIPfxkNr3d9/vMofZ3nvUH/UjFPCzbw6FsU9YQo
KsuyYnR7/KQ4I6p68tTI6eLigr60976upiP+Jb2syvkIF+aibunGTAu6DVcl
8ctlsSAayWljQXLHTwZpWY3SM6G8s/Gzk+HZ0eEYO3J9cfXxHf182tnqmzx9
T8dU4FiGH3K6Z8v0/bJq06smfVPVOb3HsaC0vclK+k+efnh3Kd/6jZhbGtz3
n4syI/q9XGYkfuhu1w2mfbWaZMuMJjpLX2Qt0XH7Nar8OEqvs6KterT6Ib9Z
Nau8UG5qmz0+/dZmH5+NH/+t2tTEqEdrkhqjw/H46cnxkX7v/et31+m7ty/d
1T2UfTwepLl+E9P97Vc62ON4/y43dQ1RCIpMH6JIf5GJpmlLXy2zO9oKXFD8
eklymDcPO3u1XG4aJXOigEUNnvLwXn0Ypb9t4o9ejtJ/IzrPq8VNTJPH38Pl
Pv7pxUvwOLqf4/HRWFkjSQiwOPzRNun41G0SiO3o5Gg8pP88w2TfX7y/+PDh
6q/vrvuX+8/VckN79Ws5y2te8fWmnhPrImZPKtQd2OiGWNk2jVStrCGhxmrW
f/fu0568z9ZZXRe/V038p/ej9OeqLKpljw7fZ8s1ieWmt+l06T822Tb+nHjp
y+WKLk2Pcunlr+qs/LQsfpRPnJydPX18fHo6Pnt2PMK/T53Yef/n1y9+djSr
xzEe63mcnZ0Mj86enmFLPlxe9KU0PqQtxr47+uQd/lDRxb7MNk1OG0zb2xQN
qPFNAUGT17fFlA5t27T5qknvivbGC2y+3V85g9e0ozdZhwH/Mkr/Snxl0fv0
lyz+6BX4wrLLv/8jfNzt6+nw8JtcYXxy+pgE+fhsDIE+Pj165jjw5Rvc7WpF
hw/6U1Z8+Sb9LZ8oN8ZLlM+enQ3Pnh7uJclwSLrvpGmJftskAW/9qtac7r99
8+79QYpv4P6zqp3eZMQlZtW6JRZBFsEGDzXJLG+mdTHB14gHh6oeJH1a2aAk
GZxmJzpAljr9DcebqHbXV9KJpG/ogP1L01lBoqFNi9V6yXMHO2+rdFWUxar4
PU/m2ZK+v66aAuJB7Af5rMwXLDJID5lsWhqSiJP+yedQ5G+qO775mV11oq6s
THoT8i8WNlDw2yd5uhJ+MBuQ9kxnxD8R4WLfP9GuVaRmkMW2yrEiesgWlOom
8kwDc4TGi005nUkiM6kgxGR/affp634HZ7C36oxOfMNn4W2YQXp3Q6MKj3MD
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
IG/sJuz0RWfC8ivEgGtNwK5kHyQBL5WBg75U5iP1mc11QZcKuF7h2d3cSyfK
RLVFpouszyF1vdWn8lovRz91p5eVE1dTjPBm7kolYbqzfrl/CJmWgxN0qWA8
HZrClUs0AWjONqlOoOMPog3iAg86cbhm4GjiMk++PohBmFk9Y3nnqtKIak+G
89LVjPNdj7VBB9knQW35+0dOXAN21Bfo2qG0+Z4WpWIRFwAFJIG13hpCmAt9
tREkX7TkgcerRy56IPX5AT+v6TIriP7ggSw9It8w9c/1BaHXSYzj+Yb7HfQL
ttKO7qrGyo5saKhRNzPBZGJaAwX5DgypvN0d7zbn+o7owOAbYW/P9wWsogVT
HeLRFURk8ssYKxPE4IVmbUcexNz7y02nsOTiEkTmDFvPZ3jachFNS2Ax4zsI
0jlmYm9Wvma8bDkD0FHj0kOqC64xxHqxRzanYV1u5jhxToRU7qOBoMe4sQ4w
OdMUXAY+m2r9/Ay7emsm4ylpSBLJRq41TzFMHrOYXTrPM/YIhB5zAQlY4PNO
a1pO8oK7c9stYftLb1wTK+bTXrUqbto2VfHr1QfaIHDvfCaQ1cyUId5H6+RT
83k4eLFKNS7yYfDVWsaBAh/UDLFSgrAqwuH2AXhf3rJD1GwuTozRobXmu/4W
PNl062GwjkKT8m3JGOpiGHNjkwnfEzsgc6absz3qzWfKx55MaW/k0gteXHy8
+PIlke4QgKtyZyz2K3F8eZXnWiPNLsJQidylDggZC4beyGYY01fUloMLSgzs
OmCHrV4M0xfgBko+nCsmZdk5E9AWaSDbu05Gn6+gbhjHxHFMjj771UROwrAo
r7DikjfDF6kr2sRn/O30GGoljD6bk+C9cJwk4DiCVm93Mr+vsj7SPoUctQhI
Be2X6Y57VUkOCbuoC/Fs6LXW9JcwyTSxTFp1wLJPigPj2jMRe9wVOnTnJ+jW
cjpO//jzgfpkksJ863yiVoTQ+10d6lQ8r0iu7oZ/qqDAqopRVxAJoEYkzSy3
iWMquVbMdKTP0xJ7Sx7/qdlRWW/kZXsCip+zq5kd4Ix11SJvptCjkcKdryrL
xSE9sh8nlm2hZ2iSqtZQD66zljDTmmD397/9enR4dCze306gIPH5q2knfzXW
AqVPa/mJnf5145r5aBZqYvmlXv5rkUuJJDLOOKu1viUevr//cHlhjSnhLPPA
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
3HUPE9SyEHN90m2cYSl8hANxIlcusVtIcSAp5NxRLMibjhpCBcViRK3gRZQu
/g07JCio+N7qCGoaucbENBo6YPCrtD/0SkpYCh4w5aX2PTVorOj3Uq5Y0HRz
Lu6JaGu87m6HXJ7Bk0Pti8h5waH7SjLVUK5cs2ddqWfitGPRS48PE316YMgV
c/BahSwOo+KA5qAYwykEllylkjzRurz0SrGTb7ZrLrCixe/F75dONrNF3uoc
9OXibJAAs3BMjnQsl+yfjurTN9ryGcwPLdYCN+Sc6w+8xNSQhURW/WYN1tm4
HLvA6GQi48Pidc2zVQEggN59H/jDnU+yNBgqilu7IsuaH/tqPJQyknhVKOG4
y1p/fzth7nZH+6hXY23ChuMma+vpkXRWzx8+jOUS2nOFvpY4klvitxlnq0pL
5YU6zF1uWabR+nSfXsavSP/h8ZB+OjwcHyQOU1TUDjaw5IKI0kP8cDQ+Y2qi
+3Q04GL+0qhLUE3osZqjqS+awYr6yHYnvcpBj1jb6jVys76fbPbOimxRcg0j
bJKgAX1LxWHkQOIunAafoAOqLdiFWWWNRoD0O+yOaSID3coSStaUtXxVaCNn
o1rpWgPaSIp6lQZNS7WbsgenBD39pAde6k85ucsU3Ql5121A1c2aXgE655MV
3FISLZrB7aJof+XkfCM3AN8axrU4jBqp8dUaXMgBQmR7et2nDX+izbJ0gtLh
UpXKbZxhgwSPHe06B855k8qJL62re6A1jqwXVMjSRum/P9AeQfpZCV0FWdbM
PZKQe6DWmjNDrbFF0MnCe10UHRu1q9jPEvbLc72YWZ6vlZscWCML28TD0bMx
d0I8djxOb8jp4TP76fQ48ZzY83Eoas0aqGPabm2YfXbiaixYVhSTprZtl1LM
Ub5Tb0JnZ08eYPE0sn+71mppLeNgzhoONokua1tNK9/X00COTkCZn5vb8nG+
L3Fy6WHQKcGc3VaF9TF11x4QwGzdaF8BlgaDbhAgS0y6dMSJoq0Z4CtpUr6+
SRsIUb8Krc8EyO12V9MK8BbFyvTFalsF0BIbE8We6kybn4y4JaoRf/6ZrIK1
tg+FfWrhUal50WxLGgi95zrNKVnzqBNOInLGpjdTB27TZg7qtFN2gGkhKJJI
E0z2i8k+OqYTdB3GY1JN79nhE9GQnpwdDrSH7pzbunAlYbJEwNc7/W6CDopg
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
4mFHMUuSJM5csdjPl1HyfwF5U1BuhtgAAA==

-->

</rfc>

