Everything you need to know about the DevOps monitoring system
The DevOps dashboard monitors your VPS servers using a lightweight bash agent installed on each machine. The agent collects system metrics and pushes them to the UCA API every 30 seconds, which stores them in PostgreSQL and surfaces them in the dashboard.
Architecture
Agent on VPS → pushes metrics every 30s → UCA API → PostgreSQL → Dashboard
Add a server
Go to the Servers page and add a new server. Provide a name, IP address, and optional tags to organise your fleet.
Copy the install command
After the server is created, a one-line curl command is shown on the server detail page. Copy it.
Run on your VPS
SSH into your VPS and paste the curl command. The installer will set up the agent as a systemd service.
Wait 30 seconds
The server will appear as Online in the dashboard within 30 seconds of the agent starting.
The agent is a small bash script that runs as a systemd service. It is read-only — it never performs write operations on your VPS.
What it collects every 30 seconds:
Systemd service
The agent is installed as horizon-agent.service. It auto-restarts on failure and survives reboots.
Check status
systemctl status horizon-agent
Stop and disable
systemctl stop horizon-agent && systemctl disable horizon-agent
Remove completely
rm /etc/systemd/system/horizon-agent.service rm -rf /opt/horizon-agent systemctl daemon-reload
Reinstall
Go to the server detail page and regenerate the install token. Then run the new curl command on the VPS.
The System tab on each server detail page shows extended metrics beyond the standard CPU/RAM/Disk charts. These are collected by the agent and displayed in real time.
When a server is online, the server detail page shows an Update Agent button instead of the install command. Click it to copy the update command to your clipboard, then paste it on your VPS.
What the update does
The API key is preserved during the update. The server will briefly appear as offline during the process and come back online within 30 seconds.
The server list page shows summary cards for each server. Each card includes:
Export metric data from the server detail page using the CSV export feature. Select a time period and download a CSV file containing all metric snapshots for that range. The export includes:
CSV files can be imported into spreadsheets or monitoring tools for offline analysis and reporting.
Create alert rules on the Alerts page to be notified when a metric crosses a threshold.
Alerts auto-resolve when the metric returns to normal. You will receive a resolution notification in addition to the firing notification.
Connect a Matrix bot to receive alert notifications in a Matrix room. Configure the integration in the DevOps Settings page.
Both alert fires and resolutions are sent to the configured room. Use the Test button in Settings to verify the connection before relying on it.
Import multiple servers at once from the Servers page using a CSV or JSON file.
CSV format
name,ip,"tag1,tag2" web-01,192.168.1.10,"prod,nginx" db-01,192.168.1.20,"prod,postgres"
JSON format
[
{ "name": "web-01", "ip": "192.168.1.10", "tags": ["prod", "nginx"] },
{ "name": "db-01", "ip": "192.168.1.20", "tags": ["prod", "postgres"] }
]Metric data is retained according to the retention period configured in Settings (default: 30 days). Data is stored at three levels of granularity to balance storage and resolution.
Two background cron jobs keep the system accurate and the database clean.