From f3625a9e60c08777b680e3a77af810422f155e94 Mon Sep 17 00:00:00 2001 From: atlas Date: Tue, 18 Aug 2026 23:57:08 +0200 Subject: [PATCH] docs(network): stop pointing exposeHostPorts at otel.endpoint `exposeHostPorts`'s worked example told the operator to set `services.hyperhive.otel.endpoint` to a bridge address. That was true before the collector tiers existed. It is now actively wrong: `enable` contributes the hive collector's port to this list itself and derives the agent-facing endpoint, while `endpoint` names where telemetry goes after it leaves the swarm and is read by the swarm's collector. An operator following the old example would point the upstream link at a bridge address. Replace it with an example that is actually the option's job -- a host-local service the operator runs themselves -- and say plainly that hyperhive's own telemetry needs nothing here, which docs/observability.md already states. --- nix/host-modules/hive-network.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/nix/host-modules/hive-network.nix b/nix/host-modules/hive-network.nix index 6d4bc871..ff182902 100644 --- a/nix/host-modules/hive-network.nix +++ b/nix/host-modules/hive-network.nix @@ -100,9 +100,15 @@ in firewall, so an agent can connect to `''${bridgeIp}:P` (default `10.42.0.1:P`). - Use this to let agents reach a host-local service — e.g. an - OpenTelemetry collector for `services.hyperhive.otel.endpoint` (set - `endpoint = "http://''${bridgeIp}:P"`). + Use this to let agents reach a host-local service you run yourself — + a database, a scratch HTTP endpoint, anything listening on + `''${bridgeIp}:P`. + + Not needed for hyperhive's own telemetry: `services.hyperhive.otel.enable` + contributes its collector's port here itself and derives the + agent-facing endpoint from the bridge address. `otel.endpoint` names + where telemetry goes *after it leaves the swarm*, and is read by the + swarm's collector — it is not a bridge address. **The host service must bind an address reachable from the bridge** — `0.0.0.0` or the bridge IP (`bridgeIp`) — not loopback-only. The