Les Trois Piliers de l'Observabilité Expliqués
observabilite monitoring systemes-distribues

Les Trois Piliers de l'Observabilité Expliqués

Publié le 8 mars 2026 · par PerfBlog Team

Au-delà du Monitoring : Comprendre l’Observabilité

Le monitoring vous dit quand quelque chose ne va pas. L’observabilité vous dit pourquoi.

Dans un monde de microservices et de systèmes distribués, vous avez besoin de la capacité à poser des questions arbitraires sur le comportement de votre système sans déployer de nouveau code. C’est ça, l’observabilité.

Pilier 1 : Les Logs

Les logs sont des événements horodatés et discrets qui enregistrent ce qui s’est passé dans votre système.

Bonnes Pratiques de Logging Structuré

{
  "timestamp": "2026-03-08T14:30:00Z",
  "level": "ERROR",
  "service": "payment-service",
  "trace_id": "abc123def456",
  "span_id": "span789",
  "user_id": "user_42",
  "message": "Échec du traitement du paiement",
  "error": "fonds_insuffisants",
  "amount": 99.99,
  "currency": "EUR",
  "duration_ms": 234
}

Pratiques Essentielles

  • Utilisez toujours le logging structuré (JSON) plutôt que du texte brut
  • Incluez les trace IDs pour la corrélation entre services
  • Utilisez des niveaux de log appropriés (DEBUG, INFO, WARN, ERROR)
  • Ajoutez du contexte métier (ID utilisateur, ID commande, montants)
  • Centralisez les logs avec des outils comme ELK Stack ou Grafana Loki

Pilier 2 : Les Métriques

Les métriques sont des valeurs numériques mesurées dans le temps, agrégées en données de séries temporelles.

La Méthode RED (pour les services)

  • Rate : Nombre de requêtes par seconde
  • Errors : Nombre de requêtes échouées par seconde
  • Duration : Distribution des temps de réponse

La Méthode USE (pour les ressources)

  • Utilization : Temps moyen d’utilisation de la ressource
  • Saturation : Quantité de travail en file d’attente
  • Errors : Nombre d’événements d’erreur

Exemple : Métriques Prometheus

from prometheus_client import Counter, Histogram

REQUEST_COUNT = Counter(
    'http_requests_total',
    'Total des requêtes HTTP',
    ['method', 'endpoint', 'status']
)

REQUEST_DURATION = Histogram(
    'http_request_duration_seconds',
    'Durée des requêtes HTTP en secondes',
    ['method', 'endpoint'],
    buckets=[.005, .01, .025, .05, .1, .25, .5, 1, 2.5, 5]
)

Pilier 3 : Les Traces

Les traces distribuées suivent le parcours d’une requête à travers plusieurs services.

Anatomie d’une Trace

Une trace est composée de spans - des opérations nommées et chronométrées représentant une unité de travail :

[Trace: commande-checkout]
├── [Span: API Gateway] 2ms
│   ├── [Span: Service Auth] 5ms
│   └── [Span: Service Commande] 150ms
│       ├── [Span: Vérification Stock] 30ms
│       ├── [Span: Service Paiement] 80ms
│       │   └── [Span: API Paiement Externe] 60ms
│       └── [Span: Service Notification] 20ms

Connecter les Trois Piliers

La vraie puissance vient de la corrélation des trois signaux :

  1. Une alerte métrique se déclenche : latence p99 > 500ms
  2. Les traces révèlent le span lent : requête base de données du payment-service
  3. Les logs de ce span montrent : “Pool de connexions épuisé, en attente d’une connexion disponible”

Cette corrélation nécessite un trace ID partagé qui circule à travers les trois signaux.

Construire votre Stack d’Observabilité

ComposantOpen SourceCommercial
MétriquesPrometheus + GrafanaDatadog, New Relic
LogsGrafana Loki, ELK StackSplunk, Datadog
TracesJaeger, ZipkinDatadog, Honeycomb
Tout-en-unStack GrafanaDatadog, Dynatrace

Conclusion

L’observabilité n’est pas un produit que vous achetez - c’est une propriété de votre système que vous construisez. Commencez par instrumenter vos services les plus critiques avec les trois piliers, puis étendez progressivement la couverture.