Ce que vous voyez
La supervision perd une source d’état; aucun contenu d’appel ne doit être utilisé comme solution de repli.
Fiche de service · Suivi du service et traitement des pannesFiche composant · Exploitation
Recevoir et regrouper l’état des cellules sans collecter le contenu des appels.Réception mTLS A/B, idempotence, stockage borné et alertes content-free, sans autorité sur les appels.
Je veux comprendre: direction, équipes métier, communication, achats et première visite. Exploitation: opérateur, support et astreinte. Vue architecte: architecte, ingénieur et sécurité. Tout afficher: revue complète de la fiche.
« Je veux comprendre » affiché. Ce choix sera repris sur les autres fiches. La décision de mise en service et les risques restent toujours visibles.
Le résumé donne le rôle, le trajet, le risque, le responsable et la limite de preuve en moins d’une minute. Les dépendances et exemples restent disponibles juste après, sans jargon imposé.
Rassembler les bilans de santé.
Recevoir et regrouper l’état des cellules sans collecter le contenu des appels.
Comme une chaîne de témoins: chaque étape reçoit, garde et transmet.
Les cellules envoient leurs bilans signés.
La supervision obtient une vue limitée et cohérente de chaque cellule.
L’équipe chargée de détecter et traiter les pannes.
Essai local. Une preuve locale existe. Aucun déploiement ni usage réel n’est prouvé. Mise en service interdite pour l’instant.
La supervision perd une source d’état; aucun contenu d’appel ne doit être utilisé comme solution de repli.
Responsable de la collecte de santé. Autorité de décision: Responsable supervision téléphonie.
Autoriser la collecte quand elle accepte uniquement les cellules identifiées et ne reçoit aucun contenu d’appel.
Les cellules envoient leurs bilans signés.
Des bilans de santé récents, du réseau privé et des étapes voisines de la chaîne d’alerte.
L’équipe vérifie manuellement les étapes voisines. Les appels continuent seulement si leur chemin est indépendant; aucune notification humaine ne doit être supposée.
Si l’un des deux points de collecte tombe, l’autre continue de recevoir les bilans de santé, et les appels ne sont pas touchés. L’historique gardé est volontairement court et reste sur place. Si le stockage est perdu, cet historique n’est pas retrouvé: personne ne sait encore le restaurer.
Essais d’identité valide et invalide, doublons, charge, panne d’un collecteur et contrôle du contenu reçu.
Des essais limités sur une machine ont réussi. Ils ne prouvent pas que le service fonctionne dans un hébergement réel, sur le réseau téléphonique public ou en production. Il reste à le déployer, à tester de vraies pannes, à mesurer sa fiabilité et à vérifier les services externes.
Les cellules envoient leurs bilans signés. La supervision obtient une vue limitée et cohérente de chaque cellule.
Un export mTLS signé pour la cellule A est accepté par les deux collecteurs, mais une identité croisée est refusée.
Les six lectures ci-dessous reprennent les mêmes faits. Elles ne créent pas une seconde source de vérité.
Le trajet montre ce qui déclenche cette fonction, le service qu’elle rend et le résultat obtenu. Il reste lisible sans fonction interactive.
Partie documentée: Rassembler les bilans de santé.
Les cellules envoient leurs bilans signés.
Recevoir et regrouper l’état des cellules sans collecter le contenu des appels.
La supervision obtient une vue limitée et cohérente de chaque cellule.
Comment lire ce trajet: avancez avec les flèches du clavier ou parcourez les étapes dans l’ordre. Les contrats exacts restent dans la « Vue architecte ».
Étape 1 sur 3: Les cellules envoient leurs bilans signés.
Impact utile: La supervision obtient une vue limitée et cohérente de chaque cellule.
En cas de panne: La supervision perd une source d’état; aucun contenu d’appel ne doit être utilisé comme solution de repli.
Responsable: Responsable de la collecte de santé. Autorité de décision: Responsable supervision téléphonie.
Reconnaître ce qui se passe, protéger le service et prévenir le bon responsable sans improviser.
La supervision perd une source d’état; aucun contenu d’appel ne doit être utilisé comme solution de repli.
Vérifier l’heure du dernier état et les étapes juste avant et après. Un silence de supervision ne signifie jamais que tout va bien.
L’équipe vérifie manuellement les étapes voisines. Les appels continuent seulement si leur chemin est indépendant; aucune notification humaine ne doit être supposée.
Responsable de la collecte de santé. Autorité de décision: Responsable supervision téléphonie. La procédure de production reste à créer et valider avant la mise en service. Ouvrir la fiche d’architecture et de preuve du domaine.
Décision actuelle: mise en service interdite pour l’instant. Des essais limités sur une machine ont réussi. Ils ne prouvent pas que le service fonctionne dans un hébergement réel, sur le réseau téléphonique public ou en production. Ce qui reste à faire: Il reste à le déployer, à tester de vraies pannes, à mesurer sa fiabilité et à vérifier les services externes.Décision actuelle: promotion NO-GO, pas de mise en production. Une preuve locale bornée existe. Elle ne vaut ni déploiement cloud, ni preuve carrier/PSTN, ni qualification de production. Blockers: Déploiement, exercice de panne réel, SLO et interopérabilité externe restent des gates.
SQLite est un journal local candidat, pas un backend HA ni une rétention de production.
| Mécanisme | Borne | Preuve | Limite |
|---|---|---|---|
| Idempotence | SHA-256 canonique unique | Retry identique accepté 200 sans seconde ligne | Aucune réplication |
| Rétention | 256 enveloppes par cellule, fichier 0600 | 270 ajouts successifs restent plafonnés | Politique légale à définir |
| Ordre | Rétention ordonnée par réception; un ancien rapport ne remonte pas l’état courant | Injection hors ordre et reprise immédiate après une horloge future | Pas de consensus multi-nœud |
| Sorties | snapshot.json, alerts.json, metrics.prom | Modes 0600 et formes exactes | Aucun backend ni dashboard |
Sources dépôt: infra/telephony/edge-health-collector/collector.py, unité systemd, config candidate, README et collector-lab. Preuve consolidée: registre des preuves.
Modes de panne connus, comportement de reprise et signaux à mesurer avant toute mise en service.
| Modes de panne | Reprise après incident | Signaux à mesurer |
|---|---|---|
| Le journal SQLite local est candidat, borné à 256 enveloppes par cellule, sans réplication ni sauvegarde prouvée: une perte du fichier est définitive. Aucune action humaine de restauration n’est définie. Le collector-lab et le runtime-lab 12/12 exercent pertes et reprise de deux collecteurs; la restauration après perte du stockage n’est pas prouvée. | Existent: sorties snapshot.json, alerts.json et metrics.prom en modes 0600, cinq règles fixes et le runtime-lab 12/12. N’existent pas: backend, dashboard ni SLO. Avant promotion, mesurer taux d’acceptation, refus d’identité, rétention effective, charge supportée et corrélation au retrait A/B. |
Entrée: enveloppes de l’exporter. Sorties: GET /metrics, snapshot et alertes locales vers Prometheus A/B, exercés ensemble dans le runtime-lab 12/12. Le collecteur affirme notificationDeliveryConfigured=false: il ne contacte lui-même aucune astreinte; les codes et labels restent fermés.
edge-telemetry-missing après 90 s et edge-not-ready sur le dernier état frais.
edge-restart-increase reste actif 90 s; edge-clock-skew signale un écart supérieur à 45 s.
edge-both-unavailable exige qu’aucune cellule ne soit à la fois fraîche et ready. Il ne retire encore aucune route carrier.
Frontière de confiance: Ingress privée sur le plan management: le collecteur n’accepte qu’un POST borné sur /v1/edge-health en mTLS, avec certificat client obligatoire, SAN de cellule exact et sources limitées à huit CIDR RFC1918. Il termine TLS et valide l’identité; rien de public n’entre et aucun contenu d’appel ne passe.
Owner: SRE edge. Non-rôle: le serveur n’est ni proxy SIP, ni contrôleur de drain, ni dépendance du runtime. Il n’accepte qu’un POST borné sur /v1/edge-health.
TLS 1.2 minimum, certificat client obligatoire et CA séparée des domaines carrier et cellule.
edge-a.telemetry.navy.invalid ou edge-b.telemetry.navy.invalid doit être l’unique SAN et correspondre à l’enveloppe.
Bind privé exact, liste limitée à huit CIDR RFC1918, TCP/9443 seulement au niveau systemd.
File 16, huit workers et handshake TLS de deux secondes. Un client lent ne bloque pas un export nominal concurrent.
Le lab ferme les ambiguïtés locales mais ne transforme pas le candidat en service exploité.
| Acquis | Non acquis | ||
|---|---|---|---|
| Exporter réel vers collecteur réel sur mTLS, certificats A/B, déduplication, corps et méthodes hostiles, SAN ambigu, symlink SQLite, ordre, rétention et cinq règles; deux collecteurs sont exercés avec pertes et reprise dans le runtime-lab 12/12. | Instance souveraine EU, IP/VPN réels, PKI production, réplication persistante, sauvegarde/restauration, notification humaine et SLO. | ||
systemd-analyze verify sur Debian et snapshot APT épinglés, DynamicUser, LoadCredential, restrictions réseau et bind. | Qualification de charge, chaos du collecteur, bascule HA, carrier/PSTN et corrélation au retrait A/B. | ||
| Données et souveraineté UE | Les données sont des enveloppes de santé content-free: aucun contenu d’appel n’est collecté. Elles vivent dans un SQLite local sur la machine du collecteur. Aucune sortie vers un tiers n’existe; l’instance souveraine UE, les adresses réelles et la politique de rétention légale restent à prouver. | ||