# 2026-05-14 — Monitoring complet, RAG Hermes, Souls révisés

## Monitoring & Alerting

- **Stack complète** : kube-prometheus-stack, Grafana/Prometheus/AlertManager ingress, 3 dashboards custom (k8s/infra/ia)
- **Dashboard infrastructure enrichi** : 20+ panels — CPU/RAM/disque, températures CPU+GPU, uptime, RAID5 état/disques, swap, section services systemd (12 stat panels + NFS I/O timeseries)
- **Fixes dashboard** : mountpoint `/srv` → `/srv/data`, remplacement des regex `instance=~"192\\.168..."` par `job=` (bug PromQL escape), correction JSON stray comma
- **Règles d'alerte** : PrometheusRule nodes/k8s/ia déployées via ArgoCD
- **nftables** : ouverture ports 9100/9093/8080 pour pod CIDR `10.42.0.0/16` (Prometheus scraping + AlertManager webhook)

## AlertManager → Hermes webhook

- **Pipeline opérationnel** : AlertManager → `storage-01:9093/webhook` → `ask-agent monitor` → Hermes
- **Fix BrokenPipeError** : HTTP 200 envoyé immédiatement, `ask-agent` lancé en `threading.Thread` daemon
- **Fix ANSI parasites** : `NO_COLOR=1 TERM=dumb` passés en env au subprocess
- **Doc** : `admin/ia/alertmanager-webhook.md` — architecture, test, dépannage, déploiement

## RAG — Documentation Funk dans Hermes

- **Qdrant** : collection `funk-docs` — 284 chunks indexés depuis `admin/`
- **Scripts** : `rag-ingest` + `rag-query` déployés sur storage-01 (`/usr/local/bin/`)
- **Embeddings** : Qwen3-8B via llama-server GPU port 1234 (`--embeddings --pooling mean`, dim=4096)
- **Skill Hermes** : `funk/rag-docs` déployé dans le profil `funk-ai` — `rag-query` utilisable en CLI et depuis Hermes
- **Rôle Ansible** : `ansible/roles/rag/` — sync docs + ingestion en handler Ansible
- **Limite connue** : Qwen3-8B = modèle chat, scores peu discriminants (0.90–0.95 uniforme). Upgrade possible vers `nomic-embed-text` ou `bge-m3` si besoin
- **Doc** : `admin/ia/rag.md` — architecture, mise à jour index, admin Qdrant, limitation embedding

## Hermes — SOUL.md révisés

- **funk-ai** : tableau services complet avec ports, rag-query comme outil, patterns courants (diagnostiquer, vérifier état général)
- **monitor** : format VERDICT obligatoire (OK/WARNING/ERREUR/CRITIQUE), tableau services Funk + signes d'erreur, sévérités Prometheus, cas spéciaux (Watchdog, HSA_OVERRIDE)
- **system** : contexte AlmaLinux/k8s ajouté, formats de réponse par type, exemples concrets
- **brain** : contexte cluster complet (IPs, stack IA, contrainte GPU gfx1031, RAM k8s), quand l'appeler, formats structurés
- **Doc** : `admin/ia/hermes-souls.md` — résumé des 4 profils, comparatif, déploiement

## Réorganisation doc

- `admin/ia/alertmanager-webhook.md` — nouveau
- `admin/ia/rag.md` — nouveau
- `admin/ia/hermes-souls.md` — nouveau
- `admin/k8s/monitoring.md` — lien vers alertmanager-webhook.md

## Fixes divers

- `funk-cluster` : `check_k8s_pods()` — bug `grep -c || echo 0` double-valeur corrigé, variable intermédiaire
- `funk-start` : auto-uncordon si nœuds SchedulingDisabled détectés, attente pods infra, `check_k8s_workloads` systématique
- `funk-status` : `check_k8s_workloads` après vérification nœuds k8s
