Skip to content

MiniObservSelf-hosted observability

Collect metrics and logs from your servers, store them in TimescaleDB, fire alerts, and monitor everything from a live dashboard. Built in Go 1.23+.

What it looks like ​

β”Œβ”€ MiniObserv ──────────────────── ● live  πŸ”΄ 1 firing ──────┐
β”œβ”€ HOSTS ────┬─────────────────────────────────────────────────
β”‚            β”‚  ⚠ Memory Used > 8  |  actual: 10.36%          β”‚
β”‚ ● web-01   β”‚                                                β”‚
β”‚ ● web-02   β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”‚
β”‚ ◐ staging  β”‚  β”‚ CPU Usage    β”‚  β”‚ Memory Used  β”‚           β”‚
β”‚ βœ• worker   β”‚  β”‚   0.70%      β”‚  β”‚   10.19%     β”‚           β”‚
β”‚            β”‚  β”‚ β†’ stable     β”‚  β”‚ ↑ rising     β”‚           β”‚
β”‚            β”‚  β”‚ ▁▂▁▁▂▁▁▁    β”‚  β”‚ β–ƒβ–„β–…β–…β–„β–…β–…β–„β–…   β”‚           β”‚
β”‚            β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚            β”‚                                                β”‚
β”‚            β”‚  Logs (20)                                     β”‚
β”‚            β”‚  16:42:31  INFO   GET /tasks β†’ 200 (0ms)       β”‚
β”‚            β”‚  16:42:31  ERROR  DB connection timeout        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Host indicators: ● ok Β· ◐ stale Β· βœ• down

5-minute setup ​

bash
git clone https://github.com/KamerrEzz/theminidog.git
cd theminidog/deployments
docker compose up --build

Open http://localhost:8080 β€” dashboard is live as soon as the agent starts collecting.

Alert notifications ​

bash
# Fire to Slack when any metric exceeds its threshold
ALERT_RULES='[{"host":"*","name":"cpu.usage_pct","op":">","threshold":80,"for":"5m"}]'
ALERT_NOTIFICATIONS='[{"type":"webhook","url":"https://hooks.slack.com/services/YOUR/WEBHOOK"}]'

Any HTTP webhook works β€” Slack, Discord, Teams, PagerDuty, or your own endpoint.

Released under the MIT License.