Live sensor stream scored observation by observation. Tracks precision, recall, and F1 against ground truth in real time.
Event counts, current cycle
Detection metrics vs ground truth, current cycle
alerts that were real
anomalies caught
harmonic mean P&R
Sensor readings, last 200 observations
Anomaly score, last 200 observations
Mahalanobis distance from the Phase A baseline, scaled to [0, 1). Red dashed line = detection threshold (0.60). Yellow lines = ADWIN drift events.
Each observation is scored exactly once as it arrives. No batching, no retraining.
During Phase A, the detector fits a multivariate Gaussian to the sensor readings. After Phase A, that baseline is frozen. Every new observation is scored as its Mahalanobis distance from the Phase A mean, using the full covariance matrix. This catches both large single-sensor spikes and unusual sensor combinations, like high temperature paired with low pressure when the two normally move together.
Watches a normalized average of all three sensor readings. When the distribution of that signal shifts in Phase B, ADWIN fires. The anomaly baseline is not reset since it was calibrated on the pre-drift data. Drift events are logged and shown as yellow markers on the charts.
Stream phases
The /stats and /metrics endpoints expose all counters as JSON and Prometheus text respectively.