02 / All work

SysPlex

Cross-platform system observability: a Go native agent, a Bash agent with a FastAPI API, a PowerShell collector for Windows, and a Flask dashboard that polls every 2 s.

Source (opens an external site)Docker Hub (opens an external site)

Problem

CPU and GPU temperatures, fan speeds and SMART health sit behind the host's own tooling, which a containerized collector cannot reach.

Source · SysPlex/README.md:58 · as of

Architecture

Scroll sideways for the full diagram.

  1. 01Go agent → Flask serverJSON envelope over HTTP
  2. 02Bash agent → Flask serverJSON envelope over HTTP
  3. 03PowerShell → Flask serverJSON envelope as a file
  4. 04Flask server → DashboardREST, polled every 2 s
Go agent
gopsutil; HTTP :8889
Bash agent
native tools; FastAPI :8888
PowerShell
WMI, LibreHardwareMonitor
Flask server
Docker, :5000, no privileges
Dashboard
polls every 2 s
Source · SysPlex/README.md:66-106 · as of
FIG. 01 / Collection on the host, presentation in Docker. JSON envelope over HTTP; JSON envelope over HTTP; JSON envelope as a file; REST, polled every 2 s

Key decisions

  1. 01

    Two interchangeable agents: Go for a single static binary with no runtime, Bash for the widest sensor coverage through native tools.

    Source · SysPlex/README.md:33-60 · as of
  2. 02

    Alert thresholds per metric, overridable by environment variable; CPU warns at 80% and goes critical at 90%.

    Source · SysPlex/README.md:271-278 · as of

Evidence

Dashboard refresh
2s
Source · SysPlex/server/static/js/dashboard.js:14 · as of
CPU warning
80%
Source · SysPlex/README.md:273 · as of
CPU critical
90%
Source · SysPlex/README.md:273 · as of
Docker Hub pulls
124
Source · hub.docker.com/v2/repositories/sharawey74/system-monitor/ · as of
Commits2025-12-03 to 2026-09-04
37
Source · evidence-report.md:31 · as of
pytest tests
104
Source · evidence-report.md:143 · as of
Go tests
3
Source · evidence-report.md:143 · as of

Stack

  • Go 1.21
  • gopsutil 3.23.11
  • Python 3.11
  • FastAPI
  • Flask 3
  • Bash
  • PowerShell
  • Docker
  • pytest

Limits

  • No CI workflow is set up yet.

    Source · evidence-report.md:142 · as of
  • The repository has no license file.

    Source · evidence-report.md:145 · as of
  • The repository has no screenshots.

    Source · evidence-report.md:146 · as of