Qu'est-ce que l'observabilité ?

L'observabilité, c'est comprendre un système grâce à ses logs, métriques et traces. Fonctionnement, différence avec la supervision, erreurs courantes.

Qu'est-ce que l'observabilité ?

L'observabilité (observability) mesure dans quelle mesure vous pouvez comprendre ce qui se passe à l'intérieur d'un système à partir des données qu'il émet. OpenTelemetry la décrit comme la capacité de comprendre un système de l'extérieur, sans connaître son fonctionnement interne, pour poser de nouvelles questions sur un problème sans déployer de nouveau code. En pratique, ces données sont des logs, des métriques et des traces, reliés entre eux pour passer de l'un à l'autre.

Les trois signaux : logs, métriques, traces

  • Logs : messages horodatés émis par les services et d'autres composants. Seuls, ils manquent souvent de contexte, et sont donc plus utiles avec un identifiant de trace ou de span.
  • Métriques : agrégations de données numériques sur une période, comme le taux d'erreurs ou l'utilisation du CPU. Elles sont peu coûteuses à stocker et rapides à afficher, mais masquent les requêtes individuelles.
  • Traces : le chemin suivi par une requête à travers vos services. Une trace est composée de spans, et chaque span est une unité de travail avec un nom, des durées et des métadonnées.

Comment cela fonctionne

Vous instrumentez votre code, généralement avec un SDK OpenTelemetry, pour qu'il émette ces signaux. La propagation de contexte transporte un identifiant de trace d'un service à l'autre : par défaut, OpenTelemetry utilise l'en-tête traceparent du standard W3C Trace Context, ce qui permet de corréler les signaux de services différents. Les données arrivent dans un backend où vous les interrogez.

Stocker toutes les traces coûte cher, on procède donc par échantillonnage. Avec le head sampling, la décision est prise au début de la trace. Avec le tail sampling, on attend d'avoir vu l'essentiel de la trace, ce qui permet de garder celles qui contiennent des erreurs ou une latence élevée (échantillonnage OpenTelemetry).

Observabilité et supervision

  • La supervision répond à des questions définies à l'avance : le endpoint est-il disponible, le taux d'erreurs est-il sous le seuil, le p95 respecte-t-il le budget ? Elle alimente tableaux de bord et alertes pour les pannes prévisibles.
  • L'observabilité permet de poser après coup des questions imprévues : quels clients ont subi des paiements lents, et quel appel en aval en était la cause ?

La supervision vous dit que quelque chose ne va pas. L'observabilité aide à comprendre pourquoi. Une production saine a besoin des deux.

Exemple

Un moniteur d'API signale que la latence du paiement a dépassé son seuil. Un graphique de métriques montre le p95 de /checkout en hausse depuis le dernier déploiement. Vous ouvrez une trace lente et constatez qu'un seul span, l'appel au prestataire de paiement, occupe l'essentiel du temps. Les logs portant le même identifiant de trace montrent des timeouts répétés. Vous revenez en arrière, et l'incident est compris en quelques minutes plutôt qu'en plusieurs heures. L'alerte est venue de la supervision, le diagnostic de l'observabilité.

Erreurs courantes

  • Écrire des logs sans identifiant de trace, si bien qu'une ligne ne peut pas être rattachée à une requête.
  • Ajouter des valeurs non bornées, comme des identifiants d'utilisateur ou de requête, en étiquettes de métriques. Chaque valeur crée une nouvelle série temporelle et augmente le coût. Ces valeurs relèvent des traces et des logs.
  • Construire des tableaux de bord pour tout et des alertes pour rien, ou l'inverse.
  • Tout conserver au niveau de détail maximal, sans budget ni politique d'échantillonnage.
  • N'ajouter l'instrumentation qu'après un incident.
  • Voir l'observabilité comme un outil qu'on achète plutôt que comme l'habitude d'instrumenter et de poser des questions.

Observabilité, supervision et tests de charge

LoadFocus n'est pas une plateforme d'observabilité. L'outil couvre la vue extérieure : la surveillance d'API lance des contrôles sur vos endpoints depuis plusieurs régions, vérifie le code de statut, le corps, les en-têtes et le temps de réponse, et vous alerte via des canaux comme Slack, Microsoft Teams, PagerDuty et les webhooks. Les contrôles gratuits s'exécutent toutes les 5 minutes. C'est de la surveillance synthétique : elle indique que quelque chose est cassé et où. Vos propres traces et logs disent pourquoi.

Les deux se complètent aussi pendant un test de charge. Lancez un test sur un environnement de préproduction instrumenté : vos tableaux de bord habituels montrent quel endpoint a ralenti en premier et quelle requête a expiré. Surveillez les percentiles : voir latence. Les tests longs sont traités dans notre guide du soak testing. Pour les outils et la pratique, lisez outils de supervision des performances applicatives et bonnes pratiques de supervision. Quand un incident survient, voir la réponse aux incidents.

Questions fréquentes

Quels sont les trois piliers de l'observabilité ?

Les logs, les métriques et les traces. Les logs enregistrent des événements, les métriques agrègent des nombres dans le temps et les traces suivent une requête à travers plusieurs services. OpenTelemetry les appelle des signaux.

Quelle différence entre observabilité et supervision ?

La supervision vérifie des conditions définies à l'avance et alerte. L'observabilité fournit assez de données pour enquêter sur des problèmes que personne n'attendait. On a généralement besoin des deux.

Faut-il OpenTelemetry pour être observable ?

Non, mais c'est une façon neutre vis-à-vis des fournisseurs d'instrumenter le code et d'exporter logs, métriques et traces vers le backend de votre choix. Beaucoup d'équipes commencent par là.

LoadFocus est-il un outil d'observabilité ?

Non. LoadFocus propose la surveillance d'API, les tests de charge et la surveillance de la vitesse des pages, qui montrent le comportement de votre système vu de l'extérieur. Il ne remplace pas le tracing ni l'analyse de logs à l'intérieur de vos services.

Pourquoi échantillonne-t-on les traces ?

Stocker toutes les traces coûte cher. OpenTelemetry décrit l'échantillonnage comme l'un des moyens les plus efficaces de réduire le coût de l'observabilité sans perdre en visibilité.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.