Upstream system
Sentinel archive
Day-partitioned HDFS from two hosts
Technical overviewMachine learning and observability
An isolation forest that ranks machine telemetry better than a three-sigma rule, and still loses on F1 to flagging everything.
Source code
Inspect the implementation, commit history, and project documentation.
01
An unsupervised detector over the telemetry Sentinel already archives, built to be scored honestly. On 211 held-out windows the isolation forest ranks better than a rolling three-sigma baseline (ROC AUC 0.622 vs 0.586), yet its F1 of 0.611 loses to flagging every window (0.762) on a 61.6% positive period. Both numbers stay published, with the trivial detectors kept in the table.
02
Upstream system
Day-partitioned HDFS from two hosts
Extraction
Merges inside the NameNode, copies one file out
Dataset
17,813 readings over six days, checksummed
Evidence
When each scan started; knows nothing of the CPU
Derivation
Bounds runs by artefact times, leaves ambiguous unlabelled
Ground truth
565 of 591 windows labelled, each with a reason
Transformation
26 features, handling resets and reboots
Comparator
Rolling mean and stdev, reset across gaps
Detector
Unsupervised, fitted before the test period
Result
Metrics for every detector, plus a shift table
Interface
Returns score, threshold, decision, top features
Packaging
Builds the model, runs unprivileged
Enforcement
Secret, dependency, image, config scans
03
A window is positive when a known job was running, established from a run ledger and file timestamps, so the score is not measured against a spike detector reading the same telemetry.
The train and test cut snaps to a hole in the archive rather than a fixed percentage, so no single event straddles both sides.
The period is 61.6% positive, so flagging everything scores F1 0.762; keeping that row forces the honest reading, the ranking metrics a constant detector cannot game.
04
$ python tools/report.py
held-out · 211 windows · 130 positive · 61.6%
3-sigma F1 0.320 ROC 0.586 AP 0.666
forest F1 0.611 ROC 0.622 AP 0.725
flag-all F1 0.762 ROC 0.500 AP 0.61605