Skip to content

Building an uptime monitor in Rust: one binary, two databases, 130K checks/sec per core

7.6 relevance
Score Breakdown
technical depth
9
novelty
6
actionability
8
community
7
strategic
5
personal
9

Scored daily by a customisable AI persona to surface the most relevant engineering leadership news.

High-performance Rust monitoring with Postgres/ClickHouse, directly relevant to data engineering and observability

DevTools dev.to
Building an uptime monitor in Rust: one binary, two databases, 130K checks/sec per core
Summary

An open-source uptime monitor built in Rust ships as a single 23 MB binary combining a scheduler, probe workers, HTTP client, time-series writer, incident detector, alerting fan-out, web UI, and JSON API. It uses Postgres for relational monitor config and ClickHouse for high-cardinality check results, avoiding the pitfalls of forcing either database to handle the other's workload. A custom hyper-based HTTP client times DNS, TCP connect, TLS handshake, and TTFB as separate columns, sustaining 130K checks/sec per core—a 44-56% throughput gain over the previous implementation—while a single BinaryHeap-based scheduler avoids per-target timer tasks to keep memory usage flat at scale.

Author

Slim

More from Slim →