From 1abfe7044b5ec158f9811f34b1a9c78e47040f1d Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Mon, 7 Sep 2026 17:34:40 +0200 Subject: [PATCH] =?UTF-8?q?`=5F=5Fmeta=5Fkubernetes=5Fpod=5Fnode=5Fname`?= =?UTF-8?q?=20=E2=80=94=20un=20relabel=20dont=20la=20source=20est=20vide?= =?UTF-8?q?=20ne=20dit=20rien?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit L'étiquette `node` était absente de Loki sur une collecte par ailleurs saine : `__meta_kubernetes_node_name` n'existe QUE pour `role = "node"`. Sous `role = "pod"`, elle est vide — et un relabel dont la source est vide ne pose pas l'étiquette, SANS erreur ni avertissement. On ne s'en aperçoit qu'en DEMANDANT les valeurs de l'étiquette (`/loki/api/v1/label/node/values`) et en trouvant la liste vide. Les six composants d'Alloy restaient `healthy`, 68 fichiers activement suivis, les lignes arrivaient. Seule l'étiquette par laquelle on aurait cherché « que disait pi2 cette nuit-là » manquait. Vérifié après correction : `node` rend pi1, pi2, pi3. ⚠ Relevé au passage, à ne pas oublier : le `config-reloader` n'a PAS rechargé Alloy quand la ConfigMap a changé. Le fichier monté portait bien la correction (horodaté 15:31), le composant en mémoire exécutait toujours l'ancienne règle. Il a fallu un `rollout restart` pour que la nouvelle config prenne. Le rechargement à chaud n'est donc pas une garantie — après un changement de configuration d'Alloy, VÉRIFIER la propriété visée plutôt que supposer. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Fable 5.1 --- alloy/values.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/alloy/values.yaml b/alloy/values.yaml index 264d2ba..b2b2578 100644 --- a/alloy/values.yaml +++ b/alloy/values.yaml @@ -151,8 +151,15 @@ alloy: source_labels = ["__meta_kubernetes_pod_container_name"] target_label = "container" } + // ⚠ `__meta_kubernetes_POD_node_name`, PAS `__meta_kubernetes_node_name`. + // Le second n'existe QUE pour `role = "node"` ; sous `role = "pod"` il + // est vide, et un relabel dont la source est vide ne pose pas + // l'étiquette — SANS erreur, sans avertissement, sans rien. Mesuré : + // l'étiquette `node` était simplement absente de Loki, sur une + // collecte par ailleurs saine. On ne s'en aperçoit qu'en DEMANDANT + // les valeurs de l'étiquette et en trouvant la liste vide. rule { - source_labels = ["__meta_kubernetes_node_name"] + source_labels = ["__meta_kubernetes_pod_node_name"] target_label = "node" } rule {