Pourquoi le monitoring traditionnel ne suffit plus face aux microservices
Mettre en place l'observabilité des systèmes distribués modernes soulève de vrais défis. Les solutions de monitoring héritées, conçues pour surveiller quelques serveurs et des seuils connus d'avance, ne fournissent pas une visibilité suffisante sur les dépendances entre microservices, les files de messages, les fonctions serverless et les appels à des API tierces qui composent une architecture actuelle. Une requête utilisateur traverse couramment des dizaines de services : quand elle échoue, aucun tableau de bord statique ne dit lequel est en cause.
La question devient alors : comment collecter les données pertinentes sans exploser les coûts, les visualiser de manière exploitable et les corréler pour remonter à la cause d'un incident ? C'est précisément le rôle des patterns d'observabilité, des techniques éprouvées, aujourd'hui standardisées autour d'OpenTelemetry, pour instrumenter, agréger et analyser les signaux d'un système distribué.
S'ajoute un défi économique que peu d'équipes anticipent : les données de télémétrie croissent plus vite que le trafic qu'elles décrivent, et il n'est pas rare qu'une plateforme d'observabilité mal calibrée finisse par coûter plus cher que l'infrastructure qu'elle surveille. Les patterns présentés ici ne répondent donc pas seulement à une question de visibilité, mais aussi à une question de maîtrise : décider quoi collecter, à quelle granularité, pour quelle durée de rétention et, surtout, pour répondre à quelles questions.
Ce qu'est un pattern d'observabilité et ce qu'il apporte
L'observabilité se définit comme la capacité à comprendre l'état interne d'un système à partir de ses sorties : enregistrements d'activité, mesures numériques, traces d'exécution, horodatages et métadonnées associées. Un pattern d'observabilité désigne une technique précise pour collecter et exploiter ces sorties de façon cohérente à travers des dizaines de services hétérogènes.
Du monitoring à l'observabilité : des pannes connues aux pannes inconnues
La distinction avec le monitoring classique tient en une phrase : le monitoring répond à des questions posées d'avance, le CPU dépasse-t-il 80 % ?, l'observabilité permet de poser des questions nouvelles face à un incident inédit. Ses bénéfices sont concrets : un dépannage nourri d'informations corrélées, la détection proactive des dégradations avant qu'elles ne touchent les utilisateurs, et des données vitales pour la décision métier, taux de conversion, latence perçue, coût par transaction.
Les quatre signaux se complètent plus qu'ils ne se concurrencent : la métrique détecte qu'un problème existe, la trace localise le service en cause, le log explique ce qui s'y est passé et le profil désigne le code responsable. Un incident se résout d'autant plus vite que l'on peut naviguer de l'un à l'autre sans changer d'outil ni perdre le contexte, c'est tout l'enjeu de la corrélation entre signaux, et la raison pour laquelle des conventions communes de nommage et d'identifiants comptent davantage que le choix de tel ou tel backend.
L'agrégation de logs structurés, socle de l'analyse
Un log est un enregistrement horodaté des événements qui surviennent lorsqu'une application s'exécute. Le standard actuel est le log structuré au format JSON, enrichi d'identifiants de corrélation, trace ID, identifiant de requête, tenant, qui permettent de relier chaque ligne aux autres signaux. C'est le pattern le plus simple à mettre en place, et pourtant le plus souvent mal exploité : des logs en texte libre, sans structure ni contexte, ne valent guère mieux que pas de logs du tout.
La discipline compte ici autant que l'outillage : des niveaux de log cohérents entre services, des messages qui décrivent l'événement plutôt que l'humeur du développeur, et l'interdiction stricte d'y écrire des données personnelles ou des secrets. Un échantillonnage des messages répétitifs à la source évite par ailleurs qu'une boucle d'erreur ne génère à elle seule des téraoctets ininterprétables, et une facture à l'avenant en sortie de mois.
Traiter les logs comme des flux d'événements
L'approche recommandée consiste à traiter les logs comme des événements : collectés par l'OpenTelemetry Collector ou transportés par Kafka, ils alimentent à la fois le dépannage et l'intelligence métier. Côté stockage, les bases orientées colonnes comme ClickHouse et les index à labels comme Loki ont remplacé les index texte intégral coûteux, avec une rétention étagée, stockage chaud pour l'investigation récente, stockage objet froid pour la conformité, qui divise les coûts sans sacrifier l'historique.

Les métriques applicatives et le défi de la cardinalité
Les métriques sont des mesures numériques agrégées sur des intervalles de temps : disponibilité, charge, usage CPU et mémoire, taux d'erreurs. Prometheus et son langage PromQL restent le standard de fait pour les collecter et les interroger, avec des backends longue durée comme Mimir ou Thanos pour l'échelle multi-clusters. Depuis Prometheus 3, le serveur ingère nativement les données OTLP, ce qui simplifie les architectures où les deux écosystèmes coexistent.
Des métriques système aux métriques métier
On distingue trois catégories complémentaires : les métriques système (saturation des hôtes et des processus), les métriques de ressources (mémoire, disque, quotas cloud) et les métriques métier (erreurs d'API, temps de traitement, fréquence des requêtes). Les cadres RED, requêtes, erreurs, durée, pour les services et USE, utilisation, saturation, erreurs, pour les ressources donnent une grille de lecture immédiate : quatre ou cinq métriques bien choisies par service suffisent à détecter la plupart des dégradations.
Maîtriser la cardinalité sans perdre le signal
Le principal défi reste la cardinalité : chaque combinaison de labels crée une série temporelle distincte, et un label mal choisi, identifiant utilisateur, URL complète, peut multiplier les coûts par cent. La parade est une discipline de labels revue en continu, l'agrégation à la collecte des dimensions inutiles et, pour les cas où le détail compte, le report vers les traces ou les événements larges plutôt que vers les métriques.
Les exemplars font le pont entre ces mondes : attachés aux points de mesure, ils relient un pic de latence visible sur un graphique Prometheus aux traces précises qui l'ont provoqué. Ce chaînage transforme l'investigation, on passe du symptôme agrégé au cas concret en un clic, au lieu de reconstruire la corrélation à la main entre deux outils, deux fenêtres et deux échelles de temps.
Le tracing distribué, fil conducteur des requêtes
Le tracing consiste à suivre le parcours de bout en bout d'une requête à travers le système : chaque service traversé produit des spans horodatés, reliés par un contexte propagé selon le standard W3C Trace Context. La trace révèle les services impliqués, les chemins d'erreur et les segments les plus lents, souvent une dépendance externe ou une requête N+1 que ni les logs ni les métriques ne montraient. L'instrumentation automatique fournie par OpenTelemetry pour les frameworks courants couvre l'essentiel sans modifier le code applicatif.
Au-delà du diagnostic ponctuel, les traces agrégées dessinent la carte vivante du système : le graphe de services révèle les dépendances réelles, souvent différentes de l'architecture documentée, les chemins critiques et les couplages insoupçonnés entre domaines. Cette cartographie sert bien au-delà de l'incident : revue d'architecture, analyse d'impact avant une migration, identification des services orphelins que plus personne n'appelle.
Échantillonnage : head-based ou tail-based
Tracer chaque requête d'un système à fort trafic coûterait plus cher que l'infrastructure qu'il observe. L'échantillonnage head-based décide dès l'entrée, un pourcentage fixe des requêtes, simple mais aveugle. L'échantillonnage tail-based décide après coup, dans le Collector, et conserve systématiquement les traces en erreur ou anormalement lentes : on garde le signal utile en écartant le trafic nominal redondant. Combiné aux métriques RED et à des alertes fondées sur les SLO, le tracing devient un outil de diagnostic proactif plutôt qu'une archive coûteuse.

OpenTelemetry, profiling continu et observabilité augmentée par l'IA
OpenTelemetry, projet gradué de la CNCF, s'est imposé comme le standard unique d'instrumentation : un SDK, un protocole (OTLP) et des conventions sémantiques communes pour les traces, les métriques et les logs, tous trois stables. Ce socle libère du verrouillage propriétaire : on instrumente une fois, puis on choisit, et on change, librement de backend d'analyse. Le Collector, déployé en agent local ou en passerelle centrale, concentre la réception, la transformation, l'échantillonnage et l'export des signaux : c'est le point de contrôle unique où s'appliquent les règles de filtrage, d'enrichissement et de routage de toute la télémétrie.
Le profiling continu, quatrième signal
Le quatrième signal arrive : les profils, en alpha public depuis mars 2026 avec une disponibilité générale visée au troisième trimestre 2026, capturent en continu la consommation CPU et mémoire au niveau des fonctions, via des agents eBPF sans instrumentation applicative. Là où la trace montre quel service est lent, le profil montre quelle ligne de code brûle les ressources.
Reste à exploiter cette masse de données : c'est là que l'IA change la pratique. Les plateformes corrèlent automatiquement les signaux autour d'un incident, regroupent les alertes redondantes et proposent des hypothèses de cause racine ; des agents de triage préparent le contexte avant même qu'un humain n'ouvre le tableau de bord. L'alerting glisse des seuils statiques vers les budgets d'erreur : on alerte quand l'expérience utilisateur promise est menacée, pas quand un CPU frémit. L'humain reste l'arbitre : l'IA prépare le diagnostic et raccourcit l'investigation, mais elle ne remplace ni la compréhension du système ni la décision d'agir.

Mettre en œuvre ces patterns avec Adservio
Avant les systèmes distribués, un simple fichier de log suffisait à diagnostiquer un problème. Le cloud a changé la donne : des centaines de services répartis sur plusieurs environnements génèrent des volumes massifs de données, et le risque n'est plus de manquer d'information mais de s'y noyer, ou de payer pour la stocker sans jamais l'exploiter. Le bon point de départ n'est jamais l'outil mais les questions auxquelles l'équipe doit pouvoir répondre en trois minutes au milieu de la nuit : quel service est en cause, depuis quand, pour quels utilisateurs et à cause de quel changement.
Chez Adservio, nous aidons les organisations à mettre en œuvre ces patterns d'observabilité dans le bon ordre : instrumentation OpenTelemetry, discipline de cardinalité, échantillonnage adapté au trafic réel et alerting fondé sur les SLO, en évitant les pièges coûteux, cardinalité subie, rétention par défaut, alertes ignorées, qui transforment tant de projets d'observabilité en centres de coûts.
RÉCUPÉRER CET ARTICLE
Téléchargez l'article complet en PDF pour le lire hors ligne ou le partager.
RESTER INFORMÉ
Recevez nos prochaines analyses et retours d'expérience directement dans votre boîte mail.




