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

29 lines
1.2 KiB
Markdown

# 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)**:
```bash
# 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