diff --git a/docs/swarm/services.md b/docs/swarm/services.md index 7cb0f4ee..dea763c7 100644 --- a/docs/swarm/services.md +++ b/docs/swarm/services.md @@ -207,7 +207,7 @@ kept. - `review-classifier`: review requests by outcome, the verdict mix, results per check, retried asks, and run duration p50 and p95. - `forge`: what the forge holds, and the forge process's CPU, memory and descriptors. - `gateway`: the gateway nginx on each hive's host: requests per second, connections by state, and accepted against handled connections. -- `collector`: what the OTEL collectors accept, refuse, export and queue, with queue depth against capacity. +- `collector`: what the hive and swarm 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 @@ -215,6 +215,17 @@ counters on `controller` appear after the first push webhook, the refused and failure series on `collector` appear once something fails, and the `review-classifier` panels fill as review requests arrive. +**The `collector` dashboard.** It shows the self-metrics of the hive's +collector and of the swarm's collector, which both carry the collector +binary's default `service.name`, `otelcol-contrib`. The timeseries panels +split by `server.port`: 8888 is the hive collector, 8889 the swarm +collector. The per-container collectors (the secret store, NATS, Grafana, +Authelia, the Victoria stores and the agents' forwarders) don't report +their own metrics yet, so they have no lines here; the follow-up is +tracked on the forge. `scripts/check-dashboard-service-names.sh` runs in CI +and in `scripts/pre-push`. It fails when a dashboard query selects a +`service.name` that nothing emits. + **Where the data comes from.** The swarm's OTEL collector, below. The `controller` panels come from the controller itself. It exports OTLP