hyperhive/nix/module-eval
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas bb0afcd256 nix: the store's own collector scrapes its metrics listener
bao's metrics were scraped by the SWARM collector over loopback, via a
`swarm.otel.scrapeTargets.bao` entry gated on `deploy.swarm-otel.enable`
— "does the swarm's collector run on THIS host". It had to be: loopback
only reaches a reader that landed on the same host.

What that rendered everywhere else was nothing at all. Off that host the
metrics listener was not emitted, so the store's metrics reached the
store nowhere, and a host with no entry is indistinguishable from a host
nobody asked to scrape.

Moves the scrape into the collector this container already runs, per
mara on #4537: "move the existing scraper to the local collector". The
container shares the host netns (privateNetwork = false), so the scrape
still dials 127.0.0.1 — the listener keeps its address, its
`metrics_only` narrowing and its loopback-only bind, and the API
listener's `tls_require_and_verify_client_cert` is untouched.

The listener and its `prometheus_retention_time` lose their gate: the
reader ships with the store now, so there is no host where the endpoint
has none. The metrics pipeline reuses the logs pipeline's `resource`
processor and `otlphttp` exporter, so both signals carry the same
`service.name` and leave by the one hop.

Logs are unaffected: `journaldUnits` and --link-journal=host stay until
every sibling swarm container has a collector of its own.

The module-eval absence arm "a store with no collector beside it serves
no metrics" is inverted rather than dropped — the condition it asserted
is the bug. Three cases join it: the job is in swarm-bao AND gone from
swarm-otel (a move, not a copy), the scrape target and listener are both
pinned to loopback, and the metrics pipeline shares its exporter with
the logs one.
2026-09-21 17:19:52 +02:00
..
agent-icon.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-matrix.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-memory.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-otel.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
agent-plugins.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
agent-queue-bao.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
bao-basics.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
bao-controller.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
bao-grants.nix matrix: one sender account and one sender token per hive 2026-09-20 22:07:16 +02:00
bao-matrix-reader.nix matrix: one sender account and one sender token per hive 2026-09-20 22:07:16 +02:00
bao-otel-collector.nix nix: the store's own collector scrapes its metrics listener 2026-09-21 17:19:52 +02:00
core-toggle.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
grafana.nix grafana: tell the logs datasource that severity_text is the level 2026-09-20 17:39:04 +02:00
hive-otel.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
journald-severity.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
lib.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
matrix-core.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
name-guards.nix swarm-matrix-ctl: one control binary for the matrix container, not one per job 2026-09-20 22:07:16 +02:00
nats-authelia.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
secret-publisher.nix nix: the store's own collector scrapes its metrics listener 2026-09-21 17:19:52 +02:00
swarm-otel-core.nix module-eval: assert the severity table once, not once per tier 2026-09-20 14:23:56 +02:00
swarm-otel-identity.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00
swarm-services-switch.nix nix: split module-eval into per-subsystem checks 2026-09-20 04:25:54 +02:00