diff --git a/docs/swarm/services.md b/docs/swarm/services.md index e4294da1..ed13700d 100644 --- a/docs/swarm/services.md +++ b/docs/swarm/services.md @@ -166,6 +166,22 @@ Grafana start — see [`secrets.md`](secrets.md). +**Dashboards.** Grafana provisions these from +`nix/host-modules/swarm-grafana/dashboards/`; edits made in the UI aren't +kept. + +- `agents`: per-agent resource usage and Claude Code activity. +- `authelia`, `bao`, `queue`: the identity provider, the secret store and the NATS queue. +- `claude-usage`: Claude use by model, effort, token type and source. +- `controller`: the swarm controller's job graph by state, and the push and commit rates it sees on the forge. +- `forge` and `forgejo`: what the forge holds, and the forge process's CPU, memory and descriptors. +- `collector`: what the OTEL collectors accept, refuse, export and queue, with queue depth against capacity. +- `logstore`, `metricstore`: health of the log store and the metrics store. + +A new panel can read "No data" until its source exists: the push and commit +counters on `controller` appear after the first push webhook, and the refused +and failure series on `collector` appear once something fails. + **Where the data comes from.** The swarm's OTEL collector, below. Neither container is reachable except through the gateway: each listens