otel: agents reach their hive's collector by a swarm-wide name
Agents are handed `http://hive-collector.<swarm domain>:<port>` as their otel endpoint instead of `http://<bridge IP>:<port>`. Every hive running its collector contributes the name to `gateway.localNames`, so its own dnsmasq answers it with its bridge IP, the way the queue's name already works. The rendered meta flake then carries no hive-specific address, which a swarm-level render needs (#4857, operator ruling 100744: "b"). hive-c0re's own exporter keeps the bridge address: on the host the name may resolve to loopback through `gateway.localHostsEntry`, where the receiver does not listen. The name sits under the swarm domain and starts with `hive`, a fragment no hive name may contain, so no hive's default domain can take it.
This commit is contained in:
parent
db4bfd4007
commit
d4e20803ec
6 changed files with 58 additions and 13 deletions
|
|
@ -2,7 +2,8 @@
|
|||
//! sampled in [`super::container_stats`] feeds: it rides those gauges out to the
|
||||
//! hive's own collector — the same first hop the agents use, named by the
|
||||
//! standard `OTEL_EXPORTER_OTLP_ENDPOINT` (see `nix/host-modules/hive-c0re`,
|
||||
//! which sets it from the same binding it hands agents). No toggle of
|
||||
//! which sets it to the collector's bridge address where agents get its
|
||||
//! swarm-wide name). No toggle of
|
||||
//! its own, and no credential: a hive's collector takes unauthenticated OTLP
|
||||
//! on the bridge, and the only hop that presents anything is the swarm tier's,
|
||||
//! which is the one that leaves the swarm.
|
||||
|
|
|
|||
Loading…
Reference in a new issue