Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

KeyDefaultDescription
base_metrics_urlEndpoint to POST metrics to
api_keyAuthentication key
metric_secs5How often to collect metrics (2–60s)
speedtest_secs300How often to run a speedtest (60–86400s)
docker_secs10Docker 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_secs if 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 AColumn BColumn C
foobarbaz
onetwothree

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

KeyTypeRequiredDescription
api_keystringyesAuthentication key
metric_secsintnoCollection interval
speedtest_secsintnoSpeedtest 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