Observer
Observer is a lightweight agent that runs on your server and streams system metrics to a central endpoint.
Getting Started
Install the agent with a single command:
curl -fsSL https://raw.githubusercontent.com/ObServe-Your-Server/observer/main/setup/deploy.sh | sudo bash
Then check it’s running:
systemctl status observer
journalctl -u observer -f
Configuration
The config lives at /etc/observer/observer.toml. Here’s a minimal example:
[server]
base_metrics_url = "https://your-server.com/api/metrics"
api_key = "your-api-key"
[intervals]
metric_secs = 5
speedtest_secs = 300
Config Options
| Key | Default | Description |
|---|---|---|
base_metrics_url | — | Endpoint to POST metrics to |
api_key | — | Authentication key |
metric_secs | 5 | How often to collect metrics (2–60s) |
speedtest_secs | 300 | How often to run a speedtest (60–86400s) |
docker_secs | 10 | Docker container poll interval |
What Gets Collected
- CPU — usage percentage per core
- RAM — used / total memory
- Storage — disk usage per mount
- Uptime — system uptime in seconds
- Speedtest — download, upload, ping via Cloudflare
- Docker — per-container CPU and memory stats
Note: The speedtest runs against Cloudflare’s speed test endpoint. It adds some outbound traffic — tune
speedtest_secsif needed.
Useful Commands
systemctl restart observer # restart the agent
systemctl stop observer # stop the agent
journalctl -u observer --since "1 hour ago" # recent logs
OBSERVER_LOG_LEVEL=debug /usr/local/bin/observer # debug mode
Status Indicators
When viewing metrics in the dashboard, servers show one of three states:
- Online — agent is connected and sending data
- Offline — no data received recently
- Connecting — agent started, waiting for first ping
See the next section for deployment details.
Chapter 2
This is a sample second chapter.
A Section
Some body text here. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
A Subsection
More text with an inline code snippet and a link to Chapter 1.
Code Example
echo "hello from chapter 2"
A Table
| Column A | Column B | Column C |
|---|---|---|
| foo | bar | baz |
| one | two | three |
This is a blockquote for testing styles.
Chapter 3
Another sample chapter for style testing.
Section One
Body text goes here. Observer collects metrics and sends them to your server endpoint.
Nested Section
More detail with an inline variable and some bold and italic text.
Code Block
fn main() {
println!("Observer starting...");
}
Another Table
| Key | Type | Required | Description |
|---|---|---|---|
api_key | string | yes | Authentication key |
metric_secs | int | no | Collection interval |
speedtest_secs | int | no | Speedtest interval |
Note: All interval values must be within the allowed range defined in the config.
List Example
- First item in a list
- Second item with
inline code - Third item with a link