Blog
Backporting modern health monitoring onto 2016-era servers
Enterprise hardware is supposed to be retired on a schedule. In the real world, a lot of it runs past its date because it still works, and because replacing it costs more than the budget allows. My lab is full of exactly that: Dell PowerEdge servers on VMware ESXi 6.7, an edition old enough that the modern monitoring story mostly passes it by. rackpulse is what I built to close that gap.
The problem with old gear isn't the gear
An ESXi 6.7 host from 2016 can serve workloads fine. What it can't do is tell you it's dying in useful ways. The vendor's own tooling for that vintage is either sunset, expensive, or both, and the community tools that filled the gap have a habit of going unmaintained. So you end up with servers that run for years, then fail with no warning, because nobody is watching the metrics that predict failure: temperatures creeping up, disks degrading, sensors going quiet.
The design: testable core, thin hardware layer
The first version of rackpulse made the classic mistake: hardware calls tangled up with decision logic, which meant every test needed a real server. I split it.
- core.py is the decision engine: pure functions and dataclasses that take sensor readings and return health states. It has no idea what a server is.
- esxi.py is a thin adapter that talks to the host and feeds readings into the core.
That split changed everything. The thresholds, the hysteresis, the escalation logic, all of it is unit-testable on any machine in seconds. The hardware layer is small enough to review by eye. When I added the AI provisioning agent, it plugged into the same core, so the tests covered it too.
Severity escalation is a feature
Early on I "fixed" a bug where a hot CPU triggered multiple alerts as it crossed thresholds. Then I realized the escalation was the point. A warning at 75°C and a critical at 90°C are different events with different owners and different responses. Multi-tier thresholds produce multi-tier alerts, and that's correct behavior, so now the tests assert it.
What the old gear taught me
- Hardware-adjacent code should be testable without hardware. If you can't test the decision logic on a laptop, you'll stop testing it.
- "Maintained alternative" is a real position. The tools that died left a gap, and a maintained fork of a good idea is genuinely valuable to people still running the same gear.
- Legacy gear keeps operating skills honest. Old hardware doesn't have the guardrails new platforms have. You learn the fundamentals, or the fundamentals teach you.
The same philosophy runs through the rest of my tooling: endpointwatch for Windows endpoints, pinggrid for the network side. Collect, decide, act. Whether the thing being watched was built in 2016 or last week.