Technical Overview
How Crest predicts drive failures.
A walkthrough of the telemetry pipeline, the failure model, and the alert surface.
Telemetry ingestion.
The Crest agent reads SMART data via a smartmontools-compatible interface, NVMe admin commands, and vendor health logs. It normalises attribute values across drive models and sends attribute deltas to the Crest backend over TLS every 5 minutes.
The agent runs as a systemd service or Docker container. Single binary, no kernel modules, no packet inspection. It reads from /dev/sd* and NVMe namespaces using standard health log commands.
Minimum overhead: polling interval 5 minutes, memory footprint under 32MB.
Failure modeling.
The prediction model uses survival analysis - specifically Cox proportional hazards regression - trained per drive model family. Treating drive failure as a time-to-event problem means the model outputs a probability curve, not a threshold comparison.
Each drive model has distinct failure signatures. A Samsung 980 Pro degrades differently from a Seagate IronWolf. Training per-model means the risk score accounts for what "normal degradation" looks like for that specific drive, not for drives in general.
Risk thresholds: 70% probability = Watch state. 90% probability = Critical. Both include median time-to-failure estimate with confidence interval.
Surface the alert where your runbook lives.
When a drive crosses the risk threshold, Crest fires the configured alert channel. Each alert includes the drive identifier, host, predicted failure window, confidence level, and recommended action.
"Swap NV-04E2 on storage-02 before 2026-07-18 (7-12 day window, 91% confidence)" is an actionable runbook item. "Critical disk event detected" is not.
All integrations"summary": "Crest: Drive NV-04E2 at critical risk",
"severity": "critical",
"custom_details": {
"drive_id": "NV-04E2",
"host": "storage-02",
"model": "Samsung 980 Pro 2TB",
"health_score": 74,
"risk_level": "critical",
"predicted_window": "7-12 days",
"confidence": "91%",
"action": "Replace before 2026-07-18"
}