Skip to content

M-Chethipuzha/Symonds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔭 Symonds

Modular Distributed Systems Monitoring Framework

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.

Architecture

  Agent (C)  ──TCP──→  Server (Go)  ←──HTTP──  CLI (Python)
  collectors           ingestion               query
  transport            storage                 export
                       api                     tail

Quick Start

1. Start the server

cd server
go build -o bin/symonds-server .
./bin/symonds-server --config server.conf

2. Start an agent

cd agent
make
./bin/symonds-agent --server 127.0.0.1 --port 7700 --id dev-box

3. Query with the CLI

cd cli
pip install -e .
symonds agents
symonds signals --agent dev-box --kind cpu --last 1h

Components

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

Platforms

  • Linux — primary target (all collectors use /proc filesystem)
  • macOS — supported (collectors use sysctl, mach, getifaddrs)

Documentation

License

This is an academic project. No license is specified.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors