How it works

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.

Architecture

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
StorageSQLite or SQL Server
APIREST plus SignalR WebSocket
AuthCookie auth, agent API key
Ports5000 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.

CPUUnder 1% on a 2-core VM
MemoryUnder 80 MB resident
Network~2 KB per 60-second heartbeat
InstallSingle binary, systemd unit
Patch scanOnce per hour
Hardware scanOnce per day
Telemetry

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.

Risk score

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.

Data flow

How the pieces talk.

Agents push. The platform receives, scores, stores, and dispatches. Deliberately simple — no queue in between.

agent · app-server-01
agent · web-proxy-02
agent · db-primary
agent · worker-03
HTTP POST /api/telemetry · every 60s
RackWatch platform
fan-out
SQLite / SQL Server
risk scorer
alert dispatcher
live dashboard

Agents are stateless. If the platform goes down, agents keep running and the next heartbeat is accepted when the platform comes back.

Stack

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.

Where it fits

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.