hyperhive/nix/host-modules
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas ff5c76c42f feat(#3520): scrape swarm-service prometheus endpoints at the swarm tier
Nothing in this deployment read a Prometheus endpoint, so enabling
/metrics on a managed service added an endpoint and no data. The swarm
collector receives OTLP pushes and does not scrape; VictoriaMetrics
stores what is pushed and has no scrape config. The pipeline was entirely
push-based and every such service is pull-based.

Adds a prometheus receiver, a resource/swarm processor and a
metrics/swarm pipeline alongside the per-hive ones.

The pipeline is separate because that is the ruling, not for tidiness:
every resource/<hive> processor UPSERTS a hive key, so a scraped swarm
sample routed through one would acquire the single label a swarm-level
service must not have. Keeping it out makes the absence structural rather
than something to remember to strip, the same way hive stays a property
of which authenticated receiver accepted a push.

Targets come from an option each service fills in from its own module,
under its own enable, rather than a list assembled here. That is what
puts the scraper and the target on the same host by construction: an
entry exists only where the service that named it runs. Co-location is
true of the all-local deployment and is not a guarantee, and that is
exactly the case where assuming it is invisible.

All three additions MERGE with the per-hive attrsets rather than
replacing them. A plain assignment would drop every hive's receiver,
processor and pipeline and still render a config the collector starts
cleanly on.

Empty target set emits no receiver, no processor and no pipeline — an
enabled scraper with nothing to scrape is the inert configuration this
issue is about, and the target set ships empty here because the targets
themselves are separate issues.

Formatting verified with nix fmt. The evaluation gate is not written yet;
nothing here has been evaluated against a fixture.
2026-08-19 21:40:40 +02:00
..
hive-c0re fix(otel): let the SDK resolve hive-c0re's OTLP endpoint 2026-08-19 01:38:54 +02:00
hive-forge fix(#3500): make the swarm-controller forge account a site admin 2026-08-19 17:13:54 +02:00
hive-gateway docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294) 2026-08-15 19:56:11 +02:00
lib fix(#3527): a missing source must report as zero, not as empty 2026-08-19 20:27:00 +02:00
default.nix feat(#3125): a swarm-tier OTEL collector, in its own container 2026-08-18 21:02:18 +02:00
hive-ci.nix feat(nix): move the forge host options under services.hyperhive.swarm 2026-08-05 03:44:53 +02:00
hive-matrix.nix feat(#3162): warn when a hive with an existing homeserver has not pinned serverName 2026-08-18 12:29:31 +02:00
hive-network.nix docs(network): drop the otel reasoning instead of restating it 2026-08-19 02:04:57 +02:00
hive-priv.nix fix(#2573): also add /etc/tmpfiles.d to hive-priv ReadWritePaths (same EROFS class) 2026-07-18 16:39:20 +02:00
hive-tls.nix fix(#3462): apply the name check in the unit that runs on the deploy 2026-08-18 21:54:38 +02:00
hyperhive.nix refactor(nix): a hive's domain comes out of the swarm directory 2026-08-05 22:43:17 +02:00
local-defaults.nix fix(#3343): move the all-local queue derivations into the deployment mode 2026-08-16 19:37:49 +02:00
otel.nix otel: wait for the telemetry client secret instead of racing it 2026-08-19 15:34:40 +02:00
swarm-authelia.nix swarm-authelia: give each hive client an audience and JWT access tokens 2026-08-19 15:27:09 +02:00
swarm-ca.nix fix(nix): a missing swarm-services leaf must not kill the whole gateway 2026-08-06 00:30:22 +02:00
swarm-container-resolver.nix fix(#3363): swarm containers write their own resolver file 2026-08-17 17:30:15 +02:00
swarm-controller.nix swarm-ui: show the swarm's name as the page title and top-left brand 2026-08-18 18:34:56 +02:00
swarm-grafana.nix fix(#3471): keep Metrics Drilldown, which declarativePlugins had silently removed 2026-08-18 22:40:59 +02:00
swarm-nats.nix fix(#3363): give the queue's auth responder the hive CA 2026-08-17 19:57:44 +02:00
swarm-otel.nix feat(#3520): scrape swarm-service prometheus endpoints at the swarm tier 2026-08-19 21:40:40 +02:00
swarm-peers-removed.nix docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294) 2026-08-15 19:56:11 +02:00
swarm-required-services.nix feat(#3125): reshape the hive-to-swarm OTEL hop by domain 2026-08-18 21:02:18 +02:00
swarm-snapshot-store.nix refactor(#2862): keep the option at services.hyperhive.snapshotStore 2026-07-31 19:03:24 +02:00
swarm-ui.nix feat(#3255): expose the controller's webhook endpoint through the swarm vhost 2026-08-18 12:28:09 +02:00
swarm-victoriametrics.nix fix(#3363): swarm containers write their own resolver file 2026-08-17 17:30:15 +02:00
swarm-wireguard.nix docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294) 2026-08-15 19:56:11 +02:00
swarm.nix fix(#3462): the swarm-services leaf never covered grafana, metrics or otel 2026-08-18 21:54:38 +02:00