Files
memory/patterns/prometheus-config-rescue.md

1.2 KiB

PAT-013 — Prometheus Config Rescue (Crashloop + LXC Rootfs Channel)

Trigger: Prometheus crashloop nach Config-Rewrite, oder pct exec unbrauchbar.

Iron Rules:

  1. NIEMALS grep -n-Ausgabe als Rewrite-Source — Nummernpräfixe verseuchen die Datei. Nutze grep -v (ohne -n) oder Python/awk.
  2. YAML validieren BEVOR Container recreate (sonst Crashloop = totale Blindheit).
  3. Beim Löschen von Targets/IPs ALLE Locations sweeppen — Dubletten leben gern in mehreren Jobs derselben Datei (node_exporter-Liste ≠ blackbox-Liste).

Rescue-Kanal (universell für LXC auf RBD):

# Auf dem Hyper visor, der den CT hostet:
lsblk                      # rbdX finden (size matchen)
mount /dev/rbdX /mnt/rescue
# Dateien direkt editieren unter /mnt/rescue/opt/...
umount /mnt/refuge
# im CT: docker compose up -d --force-recreate <svc>

Symptom-Signature Crashloop: docker logs prometheus → "yaml: line N: mapping values are not allowed in this context" = klassisches NN:-Präfix-Gift.

Stale-Series-Note: gelöschte Targets erscheinen sekundenweise weiter in Queries — erst nach Scrape-Zyklus-Gap re-checken, dann Erfolg erklären.

Ref: docs/solutions/bug-fixes/2026-09-30-prometheus-yaml-prefix-crashloop.md