Back to Blog

Octofleet Performance Monitoring

I’ve always found most monitoring dashboards… overwhelming. Walls of numbers, graphs everywhere, and somehow you still miss the one server that’s about to fall over.

So when I built the Performance page for Octofleet, I wanted something different. Something that answers the question: “Which machines need my attention right now?”

The Hotspot Matrix

Here’s what we shipped:

Performance Hotspot Matrix

It’s a heat map. But not the fancy kind that requires a PhD to interpret. Each row is a machine. Each column (CPU, RAM, DISK) shows the current load with intensity bars:

Bars Range Meaning
░░░░ 0-40% All good, nothing to see
▒▒░░ 41-70% Working normally
███░ 71-85% Getting warm
████‼ >85% Time to pay attention

The matrix auto-sorts by worst metric. The machines screaming for help float to the top. You don’t have to hunt for problems — they come to you.

Why Intensity Bars?

I tried progress bars first. You know, the standard “30% filled” kind. They’re fine, but my brain doesn’t process them quickly when scanning a list of 50 machines.

The intensity blocks are different. Your eye catches the pattern instantly:

  • One bar lit? It’s idle.
  • All bars lit with a red tint? Something’s wrong.

It’s the difference between reading numbers and seeing state. When you’re managing 10+ endpoints, that fraction of a second matters.

The Dashboard Widget

The same visualization now lives on the main dashboard too:

Dashboard with Performance Matrix

Top 8 machines by worst metric, always visible. Combined with the fleet-wide CPU/RAM/DISK sparklines above, you get a complete picture in one glance.

Filtering & Grouping

The full /performance page adds more controls:

  • Search — Find specific hostnames
  • Group by — OS, Device Group, or Tags
  • Sort — By worst metric, CPU, RAM, or DISK
  • Only Alerts — Show only machines above threshold
  • Time Range — 15min, 1h, 6h, 24h

Clicking any row opens a side panel with 60-minute trend charts and quick actions (view logs, jump to Live View, open node details).

The Technical Bit

For those who care about implementation:

The backend aggregates metrics via TimescaleDB continuous aggregates. The /api/v1/metrics/summary endpoint returns current values, while /api/v1/metrics/timeseries provides historical data for the sparklines.

The agents report metrics every 60 seconds. Low overhead, but frequent enough to catch spikes.

Frontend is React + Tailwind. The heat bars are just four div elements with conditional coloring. Nothing fancy — the simplest solution that works.

Try It

If you’re running Octofleet, just pull the latest and hit /performance. If you’re not, maybe this is a good excuse to check it out.

The whole thing is MIT licensed. Use it, fork it, tell me if something sucks.


Currently tracking 9 endpoints across Windows Server, Windows 11, and Linux. The dashboard has become my default browser tab. I might have a problem.