Autorité telemetry
TLS 1.2 minimum, certificat client obligatoire et CA séparée des domaines carrier et cellule.
Supervision privée
Réception mTLS A/B, idempotence, stockage borné et alertes content-free, sans autorité sur les appels.
NO-GO et blockers: le collecteur telemetry est exercé avec l’exporter local, mais il n’est ni répliqué ni déployé. Il ne livre aucune notification et ne contrôle jamais directement le carrier.
Le point de réception privé qui consolide les bulletins de santé des cellules A et B.
Un serveur privé qui reçoit des enveloppes de santé, les déduplique et calcule cinq alertes locales.
Pour disposer d’une vue bornée des deux cellules sans stocker de contenu d’appel ni dépendre du runtime téléphonique.
L’équipe SRE, qui obtient un état structuré prêt à être scruté par Prometheus.
Un retry de la même enveloppe renvoie 200 sans créer une seconde ligne; un ancien rapport ne remplace pas l’état courant.
L’export distant devient indisponible, mais les appels et l’admission locale continuent. Aucun réplica cloud ne reprend aujourd’hui.
Code, lab mTLS A/B et systemd-analyze verts; aucune Instance, HA, sauvegarde ou astreinte.
Telemetry: données techniques de santé, ici strictement bornées.Déduplication: évite de stocker deux fois le même rapport.RFC1918: plages d’adresses IP privées.
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 flux montre ce qui arrive au composant, ce qu’il fait et à qui il transmet. Tout reste lisible sans JavaScript.
Exporters via VIP privée TCP/9443.
Un export mTLS signé pour la cellule A est accepté par les deux collecteurs, mais une identité croisée est refusée.
GET /metrics privé pour Prometheus A/B.
Légende: Avant = dépendance amont, centre = responsabilité de cette fiche, Après = consommateur aval. Le focus clavier surligne l’étape sans masquer les autres.
Étape 1 sur 3: dépendance amont.
Impact métier: Donner une vue bornée A/B sans mélanger les données d’appel ou le média. L’exploitation et Prometheus, qui obtiennent un état agrégé content-free.
Conséquence d’une panne: Ne livre aucune alerte humaine et ne pilote pas le carrier. Le mode dégradé détaillé reste visible dans le profil Opérations.
Statut: Une preuve locale bornée existe. Elle ne vaut ni déploiement cloud, ni preuve carrier/PSTN, ni qualification de production. Promotion NO-GO.
Collecteur: service qui agrège des mesures. Déduplication: suppression des copies identiques. Content-free: sans contenu d’appel.
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.
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.
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. |