Set-OPS-Public/roles/serveur_loki/templates/sonde-ingestion.sh.j2
Daniel Allaire aab1bcc83a doc : rangee par lecteur, trois portes d'entree (architecture, setup, usage) et un index
README reduit au role du projet et au demarrage rapide. docs/architecture.md (schemas
Mermaid), docs/setup.md, docs/usage.md (154 cibles en 13 familles), docs/README.md (index).
Documents ranges en conception/, exploitation/, hebergement/, projet/ ; 598 chemins suivis.
QUICKSTART.md, SOLUTION.md, architecture-set-ops.md et la carte fondus puis retires.

Preuves : P48 lit l'index et conception/mecanismes.md ; les gardes parcourent docs/ sous-
dossiers compris (_documents) ; usage.md suit le Makefile dans les deux sens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:01:54 -04:00

37 lines
1.7 KiB
Django/Jinja

#!/bin/bash
# GENERE par Set-OPS (role serveur_loki). Ne pas editer a la main.
#
# SONDE « ingestion » — l'ingesteur est pret, pas seulement le port ouvert
#
# Contrat : docs/conception/supervision-conception.md (API des greffons Nagios) — une ligne, 0/1/2.
# Mise en defaut PAR PARAMETRE : `serveur_loki_sonde_url` (port ferme).
set -uo pipefail
URL={{ serveur_loki_sonde_url }}
# `/ready` ET PAS UN connect(). Loki ouvre son port bien avant que son ingesteur ne soit
# pret ; pendant cette fenetre il accepte et perd. C'est exactement « un connect() ne
# prouve rien », applique a un demon qui demarre.
s=$(curl -sk --max-time 10 "${URL}/ready" 2>/dev/null)
[[ -n "${s}" ]] || { echo "Loki ne repond pas sur ${URL}."; exit 2; }
if printf '%s' "${s}" | grep -qi '^ready'; then
echo "Loki pret a ingerer."
exit 0
fi
# LE DELAI DE STABILISATION N'EST PAS UNE PANNE, ET LE MESSAGE LE DIT LUI-MEME.
# Apres un redemarrage, Loki repond « Ingester not ready: waiting for Ns AFTER BEING
# READY » — l'ingesteur EST pret, il purge son delai. Mesure du 2026-09-10 : l'anneau
# etait `ACTIVE` et la reponse est passee a `ready` moins d'une minute plus tard.
#
# J'ai d'abord conclu « panne persistante » sur deux lectures prises a quelques secondes
# d'intervalle, juste apres un redemarrage. Deux mesures rapprochees ne distinguent pas un
# etat d'un instant. On nomme donc ce cas pour ce qu'il est : un AVERTISSEMENT transitoire,
# pas une panne — sans pour autant le taire, parce qu'un delai qui ne finirait jamais
# serait, lui, une vraie panne.
if printf '%s' "${s}" | grep -qi 'after being ready'; then
echo "Loki sort d'un redemarrage (delai de stabilisation) : ${s:0:80}"
exit 1
fi
echo "Loki n'est PAS pret a ingerer : ${s:0:90}"
exit 2