Contrat:mTLS 9443SAN lié à A/B256 enveloppes/cellule5 alertes fixesNO-GO

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.

En bref: comprendre en 60 secondes

Le point de réception privé qui consolide les bulletins de santé des cellules A et B.

Ce qu’il faut retenir
Ce que c’est

Un serveur privé qui reçoit des enveloppes de santé, les déduplique et calcule cinq alertes locales.

Pourquoi il existe

Pour disposer d’une vue bornée des deux cellules sans stocker de contenu d’appel ni dépendre du runtime téléphonique.

Qui en bénéficie

L’équipe SRE, qui obtient un état structuré prêt à être scruté par Prometheus.

Exemple concret

Un retry de la même enveloppe renvoie 200 sans créer une seconde ligne; un ancien rapport ne remplace pas l’état courant.

S’il tombe

L’export distant devient indisponible, mais les appels et l’admission locale continuent. Aucun réplica cloud ne reprend aujourd’hui.

Statut réel

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.

Ingress privé et identité

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.

mTLS

Autorité telemetry

TLS 1.2 minimum, certificat client obligatoire et CA séparée des domaines carrier et cellule.

Identité

SAN exact

edge-a.telemetry.navy.invalid ou edge-b.telemetry.navy.invalid doit être l’unique SAN et correspondre à l’enveloppe.

Réseau

RFC1918 allowlisté

Bind privé exact, liste limitée à huit CIDR RFC1918, TCP/9443 seulement au niveau systemd.

DoS borné

Accept et handshake séparés

File 16, huit workers et handshake TLS de deux secondes. Un client lent ne bloque pas un export nominal concurrent.

Lecture métier et trajet simple

Le flux montre ce qui arrive au composant, ce qu’il fait et à qui il transmet. Tout reste lisible sans JavaScript.

Suivre le flux

  1. Exporters via VIP privée TCP/9443.

  2. Un export mTLS signé pour la cellule A est accepté par les deux collecteurs, mais une identité croisée est refusée.

  3. 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.

Mini-glossaire contextuel

Collecteur: service qui agrège des mesures. Déduplication: suppression des copies identiques. Content-free: sans contenu d’appel.

État, déduplication et vie privée

SQLite est un journal local candidat, pas un backend HA ni une rétention de production.

MécanismeBornePreuveLimite
IdempotenceSHA-256 canonique uniqueRetry identique accepté 200 sans seconde ligneAucune réplication
Rétention256 enveloppes par cellule, fichier 0600270 ajouts successifs restent plafonnésPolitique légale à définir
OrdreRétention ordonnée par réception; un ancien rapport ne remonte pas l’état courantInjection hors ordre et reprise immédiate après une horloge futurePas de consensus multi-nœud
Sortiessnapshot.json, alerts.json, metrics.promModes 0600 et formes exactesAucun 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.

Cinq règles calculées, aucune notification humaine directe

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.

Critique

Fraîcheur et readiness

edge-telemetry-missing après 90 s et edge-not-ready sur le dernier état frais.

Warning

Dérives locales

edge-restart-increase reste actif 90 s; edge-clock-skew signale un écart supérieur à 45 s.

Critique global

A et B indisponibles

edge-both-unavailable exige qu’aucune cellule ne soit à la fois fraîche et ready. Il ne retire encore aucune route carrier.

Déploiement, preuves et gates

Le lab ferme les ambiguïtés locales mais ne transforme pas le candidat en service exploité.

AcquisNon 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.