tadata
← Retour à l'accueil

Stratégie d'Observabilité : Du Monitoring à la Compréhension des Systèmes

#observability#monitoring#devops#sre#cloud

L'observabilité n'est pas du monitoring rebaptisé. Le monitoring dit quand quelque chose est cassé ; l'observabilité aide à comprendre pourquoi. À mesure que les systèmes distribués gagnent en complexité, une stratégie d'observabilité délibérée fait la différence entre le mode pompier et l'ingénierie de la résilience.

Les Quatre Piliers

Les classiques "trois piliers" se sont élargis. Le profiling est désormais un signal de première classe.

tadata
  • Métriques — numériques, agrégées, séries temporelles
    • RED : Rate, Errors, Duration (services)
    • USE : Utilization, Saturation, Errors (ressources)
  • Logs — événements discrets, structurés ou non
    • Logs applicatifs
    • Logs d'audit
    • Logs d'accès
  • Traces — chemins de requêtes distribués
    • Spans
    • Propagation de contexte
    • Stratégies d'échantillonnage
  • Profils — profiling continu
    • Flame graphs CPU
    • Allocation mémoire
    • Contention de verrous

Observabilité vs Monitoring

DimensionMonitoringObservabilité
Question"Ça marche ?""Pourquoi ça ne marche pas ?"
Modèle de donnéesDashboards prédéfinis, seuilsHaute cardinalité, données explorables
ApprocheInconnus connus (alertes sur pannes attendues)Inconnus inconnus (investigation ad-hoc)
InstrumentationBasée sur agents, centrée métriquesBasée sur SDK, tracés + événements structurés
Facteur de coûtNombre d'hôtes/servicesVolume de données (événements, spans)
CulturePortée par les OpsResponsabilité partagée par l'ingénierie
tadata
  • otlp receiver 4317/4318
    • → memory_limiter
      • → k8sattributes (pod, namespace)
        • → batch
          • traces: otlphttp → trace backend
          • logs: kafka → SIEM
      • → redaction / transform
        • → batch (see above)
  • filelog receiver (/var/log/pods)
    • → memory_limiter (see above)
Deux pipelines dans un même Collector. L'ordre des processors compte : memory_limiter en premier (refuser des données avant de manquer de mémoire), la rédaction avant tout export, batch en dernier (compresser de nombreux enregistrements par requête). Déployez-le deux fois : un petit agent par nœud (DaemonSet : logs des conteneurs, métriques de l'hôte, OTLP local, métadonnées des pods, buffer disque) et une gateway mise à l'échelle (3+ réplicas : tail sampling, rédaction, mapping OCSF, seul endroit détenant les identifiants des backends).

Extrait de la fiche « Observability and Security Telemetry Pipelines » · Demander la fiche complète

Modèle de Maturité

NiveauNomCaractéristiques
0RéactifAucun monitoring. SSH pour lire les logs.
1Monitoring BasiqueChecks de disponibilité, alertes CPU/mémoire, logs non structurés.
2Monitoring StructuréLogs centralisés, APM, dashboards basiques, runbooks.
3ObservabilitéTracing distribué, logs structurés, SLOs, astreintes.
4Observabilité ProactiveProfiling continu, détection d'anomalies, chaos engineering.
5AdaptiveAIOps, remédiation automatisée, pipelines de télémétrie optimisés en coût.

Décisions Stratégiques

Éditeur vs OSS : Une stack Grafana (Prometheus + Loki + Tempo + Pyroscope) offre zéro lock-in mais nécessite de l'ingénierie plateforme dédiée. Datadog ou Dynatrace réduit la charge opérationnelle mais crée une exposition significative aux coûts à grande échelle.

Stratégie d'instrumentation : Adoptez OpenTelemetry comme couche d'instrumentation unique. OTel est CNCF graduated, neutre vis-à-vis des éditeurs, et supporté par tous les backends majeurs.

Échantillonnage et maîtrise des coûts : À grande échelle, on ne peut pas stocker chaque tracé. Implémentez un échantillonnage tail-based dans le Collector OTel pour capturer 100% des erreurs et requêtes lentes tout en échantillonnant le trafic normal.

SLOs plutôt qu'alertes : Définissez des SLOs avec des budgets d'erreur. Alertez sur le burn rate, pas sur des seuils bruts. Cela réduit la fatigue d'alerte et concentre l'effort sur l'impact utilisateur.

tadata
QuantityFormulaExample (SLO 99.9 %, 30 days)
Error budgetB = 1 - SLO0.1 % of requests, ≈ 43 min of full outage
Burn rater = e / Be = 1.44 % errors → r = 14.4
Budget used in a periodu = r × Δ t / T14.4 × 1 h / 720 h = 2 %
Pager ≥ 14.4 over 1 h and 5 min2 % of the monthly budget in one hour
Pager ≥ 6 over 6 h and 30 min5 % of the budget in six hours
Ticketr ≥ 1 over 3 d and 6 h10 % of the budget in three days
Error budget et alerting sur le burn rate (pattern multi-fenêtres du Google SRE workbook)

Extrait de la fiche « System and Serving KPIs » · Demander la fiche complète

Ressources

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.