From 5ae0205e1dc71e551397aebe261b927c585ece02 Mon Sep 17 00:00:00 2001 From: atlas Date: Sun, 1 Nov 2026 16:18:33 +0100 Subject: [PATCH] pin that the hive collector keeps file_storage for its exporter queue without a journald receiver --- nix/host-modules/otel.nix | 5 +++-- nix/module-eval/hive-otel.nix | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nix/host-modules/otel.nix b/nix/host-modules/otel.nix index 06441808..44864406 100644 --- a/nix/host-modules/otel.nix +++ b/nix/host-modules/otel.nix @@ -566,8 +566,9 @@ in # ⚠️ An extension not listed here is INERT: the collector starts # clean and the exporter naming it sends nothing authenticated — - # and, for `file_storage`, the journald receiver's `storage:` - # above would name a component the collector never starts. + # and, for `file_storage`, the exporter queue's `storage:` (and the journald + # receiver's, where it exists) would name a component the collector + # never starts. service.extensions = [ "file_storage" ] ++ lib.optional senderAuth authName; # Host identity, so a sample can say WHICH machine it came from. diff --git a/nix/module-eval/hive-otel.nix b/nix/module-eval/hive-otel.nix index 0a0133e8..1205bbeb 100644 --- a/nix/module-eval/hive-otel.nix +++ b/nix/module-eval/hive-otel.nix @@ -490,6 +490,11 @@ let && !(s.receivers ? journald) && !(lib.elem "journald" s.service.pipelines.logs.receivers) && lib.elem "otlp" s.service.pipelines.logs.receivers + # `file_storage` stays: the exporter queue is on it whether or not a + # journald receiver exists. + && s.extensions ? file_storage + && lib.elem "file_storage" s.service.extensions + && s.exporters."otlphttp/swarm".sending_queue.storage == "file_storage" && hiveOtelSettings.receivers ? journald; } {