Skip to content
Back to skills

Obs Boot

ASecurity

Check or (re)boot the self-hosted homelab observability stack — VictoriaMetrics/Logs/Traces + Grafana + GlitchTip + Langfuse on the Mac mini, Alloy collectors on the mini, the DGX and prod. The check (endpoints, containers, collector loops, per-host metric freshness, alert-rule drift) is read-only and scripted; booting or recreating anything is gated on explicit approval. Use when asked "is observability healthy / is data flowing", when a dashboard or alert looks dark, after a mini or DGX reb...

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 16, 2026
ai-agentsbashnodedockergitapidatabasebackend

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 16, 2026

npx -y skills add chipi/agentic-ai-homelab --skill obs-boot --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Obs Boot?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Obs Boot
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chipi-obs-boot/badge)](https://www.skillsdirectory.com/skills/chipi-obs-boot)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: obs-boot
description: Check or (re)boot the self-hosted homelab observability stack — VictoriaMetrics/Logs/Traces + Grafana + GlitchTip + Langfuse on the Mac mini, Alloy collectors on the mini, the DGX and prod. The check (endpoints, containers, collector loops, per-host metric freshness, alert-rule drift) is read-only and scripted; booting or recreating anything is gated on explicit approval. Use when asked "is observability healthy / is data flowing", when a dashboard or alert looks dark, after a mini or DGX reboot, or when standing the stack up on a new host.
---

# obs-boot

The homelab observability stack, as it actually runs (checked live 2026-10-02).
There is no Grafana Cloud any more; the old DGX + Grafana Cloud recipe
was removed from the docs on 2026-10-02 (historical copy: https://github.com/chipi/agentic-ai-homelab/blob/613e465/docs/recipes/observability-boot.md). Don't follow it.

| Where | What runs |
|---|---|
| Mac mini (`homelab`) | `victoriametrics` :8428, `victorialogs` :9428, `victoriatraces` :10428, `grafana` :3000, GlitchTip :8090, Langfuse, `caddy` (tailnet TLS), `alloy-homelab` (its own host metrics + logs); launchd loops `com.homelab.dgx-scrape` (TCP health of each DGX service, `dgx_service_up`), `mini-metrics`, `forward-watchdog` |
| DGX (`dgx-llm-1`) | `alloy` (all DGX metrics + container logs + kernel journal → the mini), `dcgm-exporter`, `cadvisor` |
| prod (`prod-podcast`) | Alloy collector (`infra/observability/hosts/prod-podcast/`) pushing to the mini |

The backend ports are loopback- or tailnet-only. Query them on the mini, or through the tailnet names (`https://grafana.tail6d0ed4.ts.net`, …).

## 1. Check (read-only, always first)

```bash
~/.claude/skills/obs-boot/scripts/check.sh            # exit 0 = PASS, 1 = FAIL
~/.claude/skills/obs-boot/scripts/check.sh --stale-seconds 300
```

It checks:
- the 5 health endpoints;
- the backend and collector containers on the mini and the DGX;
- the collector loops;
- how many seconds since each host's last metric sample (FAIL over the threshold, default 600 s, or if a host is missing entirely);
- the alert-rule drift check (`drift: 0 rule(s)` = live Grafana matches the repo).

SSH defaults to the mini and `dgx-llm-1`; override with `HOMELAB_SSH` / `DGX_SSH`.

**Reading a FAIL:**
- **Endpoint or container down** → step 2.
- **One host's metrics stale, the others fresh** → that host's collector or the network path. Probe from **another tailnet node**: a broken colima forward on the mini makes everything look down from the mini itself (runbook `docs/recipes/colima-lima-forwarding-recovery.md`).
- **Drift** → reload alert provisioning (`POST /api/admin/provisioning/alerting/reload`) after confirming the repo is the intended state.

## 2. Boot or recreate — SHARED STATE, explicit approval per action

- **The mini backend:** `infra/observability/bootstrap.sh` decrypts the sops secrets, writes each stack's `.env`, and brings the backend + GlitchTip + Langfuse up. Run `--dry-run` first. Full runbook: `docs/recipes/mac-mini-observability.md`.
- **A collector host:** `docker compose up -d` in `infra/observability/` (or its `hosts/<name>/` variant), with `REMOTE_WRITE_URL` / `LOGS_WRITE_URL` pointing at the mini (`infra/observability/README.md`).
- **Never** `docker compose down -v` on the backend: it deletes the stored metrics, logs and traces. Recreating colima or the databases also wipes tokens other services depend on, e.g. the LiteLLM virtual keys and the triage fleet's GlitchTip and Grafana tokens. See the triage fleet runbook's troubleshooting section.

After any boot: run step 1 again, and it must PASS.

## Not covered

- **Dashboards:** this check doesn't look at their content. Open Grafana.
- **Alert delivery:** whether an alert would actually reach you by email; see infra/delivery.
- **Whether a specific app emits telemetry:** use the `o11y-review` skill for one project's logs, errors and traces.

Files in this skill

  • SKILL.md3.9 KB
  • scripts/check.sh3.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.