From c38778b8857e8ae3d5d0c64f2ab22193d03f5413 Mon Sep 17 00:00:00 2001 From: atlas Date: Sat, 15 Aug 2026 12:13:48 +0200 Subject: [PATCH] docs(otel): validateConfigFile is a parser, not a wiring check The comment said "It parses; it does not prove a sample arrives", which understates the gap in the direction that matters: it reads as if a green build proves the collector *starts* and only runtime delivery is unverified. Measured while probing ingest-auth options for #3283: `otelcol validate` ACCEPTS a receiver naming an auth extension that is absent from the build, and the collector then dies at startup with `Failed to start component`. So the check does not prove this config starts at all. Comment-only; no evaluated config changes. Refs #3283. --- nix/host-modules/otel.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nix/host-modules/otel.nix b/nix/host-modules/otel.nix index 87a07713..f19906fb 100644 --- a/nix/host-modules/otel.nix +++ b/nix/host-modules/otel.nix @@ -204,7 +204,12 @@ # upstream default is OFF for exactly the way this module # configures it. Turning it on runs `otelcol validate` at # build time, which is the collector checking its own config. - # ⚠️ It parses; it does not prove a sample arrives. + # ⚠️ It is a PARSER, not a wiring check, and the gap is wider + # than "no sample was sent": measured 2026-08-15, `validate` + # ACCEPTS a receiver naming an auth extension that is absent + # from the build, and the collector then dies at startup with + # `Failed to start component`. So a green build does not + # prove this config STARTS, never mind that a sample arrives. validateConfigFile = true; settings = { receivers.otlp.protocols.http.endpoint = listen;