Perfect for servers • Powerful for everyone
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install g++ libcurl4-openssl-dev libjsoncpp-dev
# Arch
sudo pacman -Syu
sudo pacman -S gcc curl jsoncpp
# macOS (requires Homebrew)
brew install curl jsoncpp# Python 3.8 or higher required
pip install flask requests plotlycd backend/go
go run server.gocd backend/python
python dashboard.pycd cpp-collector
g++ -std=c++17 -o metrics_collector metrics_collector.cpp -lcurl -ljsoncpp -lpthread
./metrics_collector http://localhost:8080/metrics 5Edit dashboard.py to modify alert thresholds:
ALERT_THRESHOLDS = {
'cpu': 80.0, # CPU usage threshold (%)
'memory': 85.0, # Memory usage threshold (%)
'disk': 90.0 # Disk usage threshold (%)
}Modify retention period in server.go:
maxAge: 24 * time.Hour, // Keep metrics for 24 hoursPass interval as second argument when running:
./metrics_collector http://localhost:8080/metrics 10 # Collect every 10 secondsSubmit new metrics:
{
"hostname": "server-01",
"timestamp": 1234567890000000,
"cpu_usage": 45.2,
"memory_usage": 62.8,
"disk_usage": 34.5,
"disk_io_read": 1024000
}Query historical metrics:
?hostname=server-01- Filter by hostname?hours=6- Get last 6 hours of data
Response:
[
{
"hostname": "server-01",
"timestamp": 1234567890000000,
"cpu_usage": 45.2,
"memory_usage": 62.8,
"disk_usage": 34.5,
"disk_io_read": 1024000
}
]Get the most recent metrics for all hosts:
{
"server-01": {
"hostname": "server-01",
"timestamp": 1234567890000000,
"cpu_usage": 45.2,
"memory_usage": 62.8,
"disk_usage": 34.5,
"disk_io_read": 1024000
}
}