C Agents · Go Backend · Python CLI · Cross-platform · Append-only Storage
Symonds is a distributed systems monitoring framework built from scratch. A lightweight native agent runs on each observed machine, collects core system signals — CPU, memory, disk, network, processes, logs, and heartbeats — and ships them to a central server. The server validates, normalizes, and appends each signal to a structured store. Engineers interact with the data through a CLI and a simple HTTP API.
Agent (C) ──TCP──→ Server (Go) ←──HTTP── CLI (Python)
collectors ingestion query
transport storage export
api tail
cd server
go build -o bin/symonds-server .
./bin/symonds-server --config server.confcd agent
make
./bin/symonds-agent --server 127.0.0.1 --port 7700 --id dev-boxcd cli
pip install -e .
symonds agents
symonds signals --agent dev-box --kind cpu --last 1h| Component | Language | Description |
|---|---|---|
| agent/ | C (C11) | System metric collector, TCP transport |
| server/ | Go 1.21+ | TCP ingestion, append-only storage, HTTP API |
| cli/ | Python 3.10+ | Command-line interface for querying |
- Linux — primary target (all collectors use
/procfilesystem) - macOS — supported (collectors use
sysctl,mach,getifaddrs)
This is an academic project. No license is specified.