Monitoring streaming video : logs, métriques et supervision en OTT/IPTV
Une infrastructure de streaming qui fonctionne sans monitoring sérieux fonctionne à l’aveugle. On finit toujours par le découvrir au pire moment : pendant un événement live, quand le rebuffering grimpe chez un opérateur précis, ou quand le CDN renvoie des 5xx depuis vingt minutes sans que personne ne l’ait remarqué avant que le support ne déborde.
Le monitoring streaming video n’est pas un sujet secondaire. C’est le socle qui permet à une équipe d’exploitation de comprendre ce qui se passe réellement entre l’origin, les edges CDN et les players déployés chez les utilisateurs. Sans cette visibilité, pas de diagnostic fiable. Pas d’amélioration continue. Seulement de la réaction tardive et des post-mortems douloureux.
Ce guide décrit comment nous abordons la supervision d’une architecture OTT/IPTV en production : quels logs collecter, comment les interpréter, quelles métriques surveiller, et comment construire un pipeline d’alerting qui serve réellement les équipes au quotidien.

Pourquoi le monitoring est critique en streaming ?
En streaming vidéo, la qualité perçue dépend d’une chaîne complète : origin, packaging, CDN, réseau opérateur, player. Chaque maillon introduit sa propre latence et ses propres modes de défaillance. Le problème, c’est que la majorité de ces défaillances sont silencieuses.
Un taux de cache MISS qui passe de 15 % à 40 % ne déclenche aucune alarme visible côté utilisateur pendant les premières minutes. Un TTFB qui se dégrade de 30 ms à 250 ms sur un PoP spécifique n’est pas immédiatement perceptible. Mais cumulés, ces signaux dégradent l’expérience de façon mesurable : le startup time augmente, le player bascule sur des profils ABR inférieurs, et le rebuffering finit par apparaître.
L’observabilité d’une infrastructure OTT repose sur la capacité à détecter ces dérives avant qu’elles ne deviennent des incidents visibles. C’est la différence entre une équipe qui subit et une équipe qui anticipe.
En contexte B2B — quand l’infrastructure sert des opérateurs IPTV ou des plateformes tierces — les exigences montent d’un cran. Les SLA imposent des seuils de disponibilité et de performance mesurables. Sans monitoring structuré, impossible de les respecter. Encore moins de les prouver. La QoS et la QoE ne se mesurent pas avec des impressions subjectives : il faut des données, des percentiles et des seuils documentés.
Quels logs analyser en OTT ?
Une architecture de streaming produit un volume considérable de logs. Tout collecter sans tri est contre-productif. Voici les quatre sources qui couvrent l’essentiel de la supervision.
Logs CDN
Ce sont les logs les plus immédiats et les plus volumineux. Chaque requête HTTP traitée par un edge CDN génère une ligne contenant : le code de réponse HTTP, le statut de cache (HIT, MISS, EXPIRED, STALE), le TTFB, la taille de l’objet servi, le PoP de sortie et l’IP du client.
L’analyse des logs CDN permet de répondre aux questions critiques : le cache fonctionne-t-il ? Quels PoP présentent des latences anormales ? Y a-t-il une montée d’erreurs HTTP sur une zone géographique ? En production, ces logs sont poussés en quasi-temps réel vers un pipeline d’ingestion (Logstash, Fluentd ou Vector) pour alimenter un cluster Elasticsearch ou Loki. La bonne interprétation de ces logs est directement liée à la qualité de la diffusion CDN mise en place.
Logs origin
L’origin — le cluster qui héberge le contenu source et exécute le packaging dynamique — produit des logs différents. On y trouve les temps de réponse du packager (millisecondes pour assembler un segment HLS ou DASH), la charge CPU/mémoire, les erreurs de lecture sur le stockage sous-jacent, et les requêtes CDN entrantes correspondant aux cache MISS.
Ces logs sont indispensables pour distinguer un problème CDN d’un problème origin. Si le TTFB se dégrade sur tous les PoP simultanément, le problème est côté origin, pas côté réseau.
Player metrics
Les métriques remontées par le player vidéo côté client constituent la troisième couche d’observabilité. Les données essentielles : startup time (temps avant le premier frame), taux de rebuffering, bitrate effectif consommé, nombre de changements de profil ABR, erreurs de téléchargement de segments.
Ces métriques transitent généralement par un SDK de quality-of-experience (Conviva, Mux Data, NPAW, ou solution interne). Ce sont les seules données qui reflètent ce que l’utilisateur vit réellement. Quand le rebuffering s’installe, c’est souvent dans ces métriques qu’on le détecte en premier — bien avant que le CDN ne signale quoi que ce soit. Pour une approche complète, consultez notre guide sur les causes concrètes de freezes en IPTV.
HTTP 4xx / 5xx
Les codes d’erreur HTTP méritent une surveillance dédiée en streaming. Une 404 sur un segment .ts ou .m4s signifie que le player ne trouvera pas le morceau attendu — interruption immédiate. Une 503 indique que l’edge ou l’origin est saturé. Une 403 peut signaler un problème de token d’authentification ou de DRM.
Le taux d’erreurs 4xx et 5xx doit être monitoré en continu, segmenté par PoP, par type de contenu (live vs VOD) et par code précis. Un pic de 404 sur un flux live a des causes très différentes d’un pic de 503 sur de la VOD.
Cache HIT / MISS : ce que ça révèle vraiment
Le ratio cache HIT/MISS est l’un des indicateurs les plus révélateurs de la santé d’un CDN de streaming. Et l’un des plus mal interprétés.
En VOD, un taux de cache HIT supérieur à 85-90 % est attendu sur les contenus populaires. Si le ratio tombe sous 70 %, il y a un problème. Les causes les plus fréquentes :
- TTL trop court — force des revalidations inutiles vers l’origin.
- Clé de cache polluée — des query strings dynamiques (tokens, timestamps) empêchent le CDN de reconnaître des requêtes identiques.
- Contenu trop fragmenté — trop de profils ABR, trop de langues audio, trop de variantes qui diluent le cache.
- PoP sous-dimensionné — pas assez de stockage cache local, le contenu est évincé trop vite.
En live, les segments récents (les 2 à 4 derniers) auront mécaniquement un taux de MISS plus élevé : ils n’ont pas encore été demandés par suffisamment de clients pour remplir le cache sur tous les PoP. C’est attendu. Ce qui ne l’est pas, c’est un taux de MISS élevé sur des segments live vieux de plus de 10 secondes — signe d’un problème de propagation ou de dimensionnement cache.
Le statut STALE (contenu expiré mais encore servi en attendant la revalidation) est un signal supplémentaire. Un pic de STALE indique souvent que l’origin est lent à répondre aux requêtes de revalidation. En live, cela peut signifier que les viewers reçoivent des segments en retard par rapport à la tête de lecture réelle.
TTFB et latence : interprétation réelle
Le Time To First Byte mesure le temps entre l’envoi de la requête HTTP et la réception du premier octet de la réponse. En monitoring streaming video, c’est un indicateur direct de la réactivité de l’infrastructure.
Sur un edge CDN bien configuré, les seuils de référence sont les suivants :
| TTFB edge (cache HIT) | Interprétation |
|---|---|
| < 50 ms | Bon. Objectif nominal pour un PoP correctement dimensionné. |
| 50 – 150 ms | Acceptable. Variable selon la géographie et le peering. |
| 150 – 300 ms | Dégradé. Investigation nécessaire : saturation PoP, peering, routing. |
| > 300 ms | Critique. Impact probable sur le startup time et le rebuffering. |
Il faut toujours distinguer le TTFB edge du TTFB origin. Le TTFB origin inclut le packaging dynamique et la lecture depuis le stockage. Si l’origin met 400 ms à répondre, un edge ne descendra jamais sous ce seuil en cas de cache MISS.
En production, on surveille le TTFB en percentiles — P50, P95, P99 — et jamais en moyenne seule. La moyenne masque les queues de distribution. Un P50 à 40 ms avec un P99 à 800 ms signifie qu’un utilisateur sur cent subit une latence inacceptable. Ce sont souvent ceux qui décrochent.
Monitoring Edge vs Monitoring Origin
Traiter le monitoring d’une infrastructure de streaming comme un bloc unique est une erreur classique. Edge et origin sont deux domaines de supervision distincts, avec des métriques, des causes et des remédiations différentes.
Côté edge, on surveille :
- Ratio HIT/MISS par PoP
- TTFB par percentile et par PoP
- Taux d’erreurs HTTP (4xx, 5xx) par région
- Bande passante sortante par zone géographique
- Distribution des requêtes entre les PoP (routing sanity check)
Côté origin, on surveille :
- Temps de réponse du packager (HLS, DASH)
- Charge CPU / mémoire du cluster d’origin
- I/O sur le stockage (object storage, NFS)
- Taux de requêtes entrantes (correspondant aux cache MISS du CDN)
- Erreurs internes (timeout packager, segment introuvable)
Lors d’un incident, la première question à poser : le problème est-il localisé sur certains PoP edge, ou global ? Si localisé, c’est probablement un problème edge ou réseau. Si global sur tous les PoP, c’est probablement l’origin.
Sans dashboards séparés pour edge et origin, les équipes perdent un temps considérable à chercher au mauvais endroit. Cette séparation n’est pas un luxe — c’est la base du diagnostic.

Alerting intelligent (et erreurs fréquentes)
L’alerting est la partie du monitoring qui transforme les données en actions. Mal configuré, il produit plus de bruit que de valeur.
L’erreur la plus répandue : créer des alertes sur des seuils absolus trop sensibles. Alerter dès que le taux d’erreurs 5xx dépasse 0,1 % provoque des faux positifs constants, parce que des micro-pics sont normaux en production. À l’inverse, alerter uniquement au-delà de 5 % fait rater les dégradations progressives.
Une approche plus robuste combine deux mécanismes :
- Seuils statiques raisonnables — par exemple, 1 % d’erreurs 5xx sur une fenêtre glissante de 5 minutes.
- Détection d’anomalies relative — comparaison avec les mêmes heures des jours précédents. Si le taux d’erreurs est deux fois supérieur à la normale pour ce créneau, c’est un signal, même si la valeur absolue semble faible.
En streaming, certaines alertes doivent déclencher une notification immédiate :
- Taux de 5xx > 2 % sur un flux live
- TTFB P95 > 500 ms sur un PoP majeur
- Chute brutale du nombre de sessions actives (signal de panne en amont)
- Ratio HIT/MISS qui s’inverse brusquement sur un PoP
D’autres métriques peuvent attendre le prochain cycle de revue : dérive progressive du ratio HIT/MISS, PoP qui sert légèrement plus de bande passante que prévu, startup time en hausse lente.
Exemple concret d’architecture de supervision
Voici une architecture de supervision réaliste pour une plateforme OTT de taille moyenne — quelques dizaines de milliers de sessions concurrentes. Pas un schéma théorique : un pipeline qui tourne en production.
1. Collecte des logs CDN. Les logs d’accès (Cloudflare, Akamai, Fastly ou CDN interne) sont poussés en temps réel via syslog ou API de streaming de logs vers un agent Vector ou Logstash. Chaque ligne est parsée pour extraire : timestamp, PoP, code HTTP, statut cache, TTFB, URI, taille de la réponse.
2. Collecte des logs origin. Les logs applicatifs de l’origin (Nginx, packager Unified Streaming ou Wowza) sont collectés par Filebeat et routés vers le même pipeline Logstash. Les métriques système (CPU, RAM, I/O disque) sont collectées par Prometheus via node_exporter.
3. Collecte des métriques player. Le SDK player remonte les événements (startup, rebuffering, erreur, changement ABR) vers un endpoint d’ingestion dédié (API REST ou collecteur Kafka). Ces données alimentent un index séparé dans Elasticsearch.
4. Stockage et indexation. Elasticsearch stocke les logs CDN et origin avec une rétention de 15 à 30 jours. Les volumes sont importants : plusieurs centaines de Go par jour pour un CDN actif. Les métriques Prometheus sont conservées plus longtemps (90 jours), car plus compactes.
5. Dashboards. Kibana ou Grafana affiche trois vues principales :
- Dashboard edge — ratio HIT/MISS par PoP, TTFB en P50/P95/P99, erreurs HTTP par code et par région.
- Dashboard origin — temps de réponse packager, charge serveur, requêtes entrantes, erreurs internes.
- Dashboard player — startup time, rebuffering rate, sessions actives, distribution bitrate.
6. Alerting. Les alertes sont configurées dans Grafana Alerting ou ElastAlert. Alertes critiques vers Slack et PagerDuty. Avertissements vers un canal dédié, moins urgent.
7. Workflow d’incident. Quand une alerte critique se déclenche, l’ingénieur d’astreinte consulte d’abord le dashboard edge pour localiser (PoP spécifique ou global ?). Si global, il bascule sur le dashboard origin. Les métriques player confirment ou infirment l’impact utilisateur. Le diagnostic suit un runbook documenté par l’équipe. L’ensemble des solutions disponibles dans le hub couvre les différents composants de cette chaîne.
Erreurs fréquentes en supervision OTT
Après plusieurs années à construire et opérer des pipelines de monitoring, certaines erreurs reviennent systématiquement.
Monitorer la moyenne au lieu des percentiles. La moyenne du TTFB ou du startup time masque les cas extrêmes. Le P95 et le P99 sont les seuls indicateurs qui révèlent ce que subissent les utilisateurs les moins bien servis — et ce sont souvent ceux qui abandonnent en premier.
Ne pas segmenter par PoP. Un dashboard global qui agrège tous les PoP CDN rend impossible la détection d’un problème localisé. Chaque PoP doit être visible individuellement.
Ignorer les métriques player. Beaucoup d’équipes infra ne surveillent que le CDN et l’origin, en supposant que si ces deux couches sont vertes, tout va bien. C’est faux. Le player peut souffrir de problèmes invisibles côté serveur : un ABR mal calibré, un manifest trop long à parser, un DRM qui ajoute 2 secondes au startup.
Alerter sur tout. Trop d’alertes tuent l’alerting. Si l’équipe reçoit 50 notifications par jour, elle finit par toutes les ignorer. Chaque alerte doit correspondre à une action concrète possible.
Confondre corrélation et causalité. Un pic de cache MISS simultané à un pic de latence ne signifie pas forcément que les MISS causent la latence. Les deux peuvent être causés par un troisième facteur : un déploiement CDN, un changement de routing BGP, un pic de trafic inattendu.
Ne pas documenter les seuils. Les seuils d’alerte doivent être écrits, versionnés et révisés. Un seuil défini pour 10 000 sessions concurrentes n’a plus de sens à 100 000.
Bonnes pratiques B2B
En contexte B2B, quand l’infrastructure sert des clients opérateurs, des chaînes TV ou des plateformes tierces, le monitoring prend une dimension contractuelle.
Mesurer ce que les SLA promettent. Chaque SLA doit être mesurable par le pipeline de supervision. Si le contrat garantit 99,95 % de disponibilité et un TTFB P95 inférieur à 100 ms, le monitoring doit produire ces chiffres automatiquement, sur la période contractuelle, avec une granularité suffisante pour identifier les incidents.
Produire des rapports réguliers. Rapports hebdomadaires ou mensuels pour les clients. Contenu type : disponibilité mesurée, incidents survenus (durée, impact), métriques de performance (TTFB, ratio HIT/MISS, erreurs HTTP), tendances.
Offrir un accès dashboard en lecture seule. Certains clients B2B demandent un accès direct à Grafana ou Kibana, filtré sur leur propre trafic. C’est réalisable avec des index Elasticsearch séparés par tenant ou des filtres Grafana dédiés. C’est un élément de confiance concret.
Segmenter par tenant. En multitenancy, l’absence de segmentation par client dans le monitoring est un risque opérationnel et commercial. Un incident affectant un seul client doit être détectable sans noyer le signal dans le trafic global.
Aligner la rétention des logs sur les obligations contractuelles. Si un client peut contester un SLA sur les trois derniers mois, il faut au minimum trois mois de données exploitables.
FAQ technique
Quels logs sont prioritaires pour le monitoring streaming video en OTT ?
Les logs CDN edge (cache HIT/MISS, TTFB, codes HTTP), les logs origin (temps de réponse, charge CPU/RAM), et les métriques player (rebuffering, startup time, bitrate effectif). Ces trois couches couvrent l’essentiel de l’observabilité d’une infrastructure de streaming.
Comment interpréter un taux élevé de cache MISS sur un CDN de streaming ?
Un taux de MISS supérieur à 20-30 % sur du contenu VOD indique un problème de configuration : TTL trop court, clé de cache polluée par des query strings dynamiques, ou contenu trop fragmenté. En live, un MISS élevé est attendu sur les segments récents, mais il doit chuter rapidement à mesure que les segments sont demandés par d’autres viewers.
Quel est un TTFB acceptable en streaming OTT ?
En edge sur un cache HIT, viser moins de 50 ms. Entre 50 et 150 ms reste acceptable selon la distance géographique. Au-delà de 200 ms, il faut investiguer : saturation du PoP, peering dégradé, ou origin trop lent sur les MISS.
Faut-il séparer le monitoring edge du monitoring origin ?
Oui, systématiquement. Un problème edge (latence élevée, MISS excessifs sur un PoP) n’a pas la même cause qu’un problème origin (packaging lent, stockage saturé). Confondre les deux retarde le diagnostic. Deux dashboards distincts, deux sets d’alertes.
Quelle stack utiliser pour centraliser les logs d’une infrastructure OTT ?
La stack ELK (Elasticsearch, Logstash, Kibana) est la plus répandue. Grafana + Loki est une alternative plus légère. L’essentiel est de centraliser CDN, origin et player dans un même pipeline pour corréler les événements lors des incidents. Prometheus couvre bien les métriques système en complément.
