Two pieces. One job.
RackWatch is a platform that runs on one server, and an agent that runs on every server you want to monitor. Agents push telemetry to the platform every 60 seconds. The platform scores, stores, and serves it.
Platform and agent.
Two small .NET 8 binaries. No runtimes to install, no containers required.
The platform
A single self-contained service. Receives agent telemetry over HTTP, persists it, scores each server 0–100 for risk, dispatches alerts, and serves the dashboard.
| Binary | ~112 MB, self-contained |
| Memory | ~60 MB idle |
| Storage | SQLite or SQL Server |
| API | REST plus SignalR WebSocket |
| Auth | Cookie auth, agent API key |
| Ports | 5000 default, reverse-proxy for TLS |
The agent
A small daemon that reads standard Linux and Windows system interfaces. No kernel modules, no containers, no dependencies beyond what's needed to read system info.
| CPU | Under 1% on a 2-core VM |
| Memory | Under 80 MB resident |
| Network | ~2 KB per 60-second heartbeat |
| Install | Single binary, systemd unit |
| Patch scan | Once per hour |
| Hardware scan | Once per day |
What the agent collects.
Everything an ops engineer would check manually, collected passively from standard system interfaces.
CPU
Per-core utilization from /proc/stat on Linux or Performance Counters on Windows.
Memory
Used, available, and swap from /proc/meminfo or GlobalMemoryStatusEx.
Disk
Free space per mount and SMART health via smartctl where available.
Patches
apt, yum, and Windows Update output, mapped to CVE identifiers where possible.
Reliability
Last boot time, uptime, and detection of unexpected reboots.
Hardware
Motherboard and vendor info from dmidecode, reported once per day.
One number per server. Low is good.
A 0–100 score that weights what actually matters. A server at 75 isn't failing — it's the one you'd check first on Friday afternoon. A server at 90+ sends a Slack alert.
Resource pressure
Sustained CPU, memory, or disk utilization near its limit.
Patch lag
Missing security updates, weighted by CVE severity.
Reliability
Unexpected shutdowns and reboot frequency over time.
Hardware age
SMBIOS date and firmware suggesting a server is past warranty.
How the pieces talk.
Agents push. The platform receives, scores, stores, and dispatches. Deliberately simple — no queue in between.
Agents are stateless. If the platform goes down, agents keep running and the next heartbeat is accepted when the platform comes back.
Boring on purpose.
Standard .NET, standard SQL, standard systemd. Nothing exotic to maintain later.
Platform
ASP.NET Core 8, EF Core, SignalR, SQLite or SQL Server 2022.
Agent
.NET 8 self-contained. systemd unit on Linux, Windows Service on Windows.
Deploy
Ansible playbook in the repo. Zero-dependency single-binary install.
Agent source
Open source at github.com/rackwatch/rackwatch-agent. Audit exactly what runs on your servers.
Built for the middle.
RackWatch is designed for teams that need clear, actionable signal across their fleet without the setup cost of a full observability stack. Typical deployments range from a handful of servers in a single rack to multi-site fleets under one platform instance.
For high-cardinality metric retention, per-second resolution, or distributed ingestion, pair RackWatch with a dedicated time-series database. Agent telemetry can be fanned out to both.