Aller au contenu

Comparaison des solutions d'observabilité

Cette page alimente un ADR (Architecture Decision Record) pour le choix de la stack d'observabilité.

Grille de comparaison

Critère LGTM (Prometheus + Grafana + Loki + Tempo) Datadog ELK (Elasticsearch + Logstash + Kibana) VictoriaMetrics + Grafana
Licence AGPL 3.0 (Grafana), Apache 2.0 (Prometheus) Proprietaire (SaaS) SSPL (Elastic) / Apache 2.0 (OpenSearch) Apache 2.0
Modèle de coût Open source, auto-heberge SaaS, facturation par hôte + volume ingere Open source ou Elastic Cloud (SaaS) Open source, auto-heberge
Coût estime (100 nœuds) Infrastructure uniquement (~500 EUR/mois) ~5 000-15 000 EUR/mois Infrastructure ou Elastic Cloud (~2 000 EUR/mois) Infrastructure uniquement (~300 EUR/mois)
Metriques Prometheus / Mimir Natif (agent Datadog) Metricbeat (limite) VictoriaMetrics (natif)
Logs Loki (LogQL) Natif (Log Explorer) Elasticsearch (KQL / Lucene) Non natif (intégrer Loki)
Traces Tempo (TraceQL) Natif (APM) Elastic APM Non natif (intégrer Tempo/Jaeger)
Langage de requête PromQL + LogQL + TraceQL Proprietary query language KQL / Lucene / ESQL MetricsQL (compatible PromQL)
Scalabilité Horizontale (Mimir, Loki, Tempo) Illimitée (gérée par Datadog) Horizontale (cluster Elasticsearch) Horizontale (clustering natif)
Empreinte ressources Moyenne (Go + stockage objet) Aucune (SaaS) Haute (JVM Elasticsearch, RAM intensive) Faible (Go, optimise mémoire)
Ecosysteme CNCF, exporters Prometheus tres large 700+ integrations Beats, Logstash, large ecosysteme Compatible Prometheus ecosystem
Cardinalite Bonne (Mimir), Loki indexe les labels uniquement Haute (gérée) Bonne (index inverses) Excellente (optimise haute cardinalite)
Auto-heberge / Manage Auto-heberge ou Grafana Cloud SaaS uniquement Auto-heberge ou Elastic Cloud Auto-heberge
Correlation piliers Grafana unifie les 3 piliers Native et excellente Elastic APM correle les 3 Partielle (via Grafana)

Analyse détaillée

LGTM — Recommande

La stack LGTM (Loki, Grafana, Tempo, Mimir) représente l'ecosysteme Grafana Labs complet :

Forces

  • Coût maîtrise : open source, pas de licence par hôte ou par volume
  • Ecosysteme standard : compatible OpenTelemetry, Prometheus exporters, Grafana dashboards communautaires
  • Scalabilité prouvee : architecture micro-services (Mimir, Loki, Tempo) avec stockage objet (S3/MinIO)
  • Correlation native dans Grafana entre metriques, logs et traces
  • Alloy comme collecteur unifie remplace Prometheus + Promtail + OTel Collector

Faiblesses

  • Complexité operationnelle : plusieurs composants a déployer et maintenir
  • LogQL moins puissant que KQL pour l'analyse de logs complexes
  • Pas de SIEM natif (compléter avec un outil dedie si besoin)

Datadog — Si SaaS accepte

Forces

  • Expérience unifiee : un seul outil pour metriques, logs, traces, APM, sécurité, synthetics
  • Zero maintenance infrastructure : SaaS entierement gère
  • 700+ integrations preconfigurees
  • Machine learning natif (anomaly detection, forecasting)

Faiblesses

  • Coût eleve et difficile a prevoir (facturation par volume ingere + hôtes + APM + logs)
  • Vendor lock-in : données hebergees chez Datadog, migration coûteuse
  • Données sensibles chez un tiers (problème de classification Confidentiel)
  • Latence d'ingestion potentielle (SaaS)

Classification et SaaS

Si les metriques et logs sont classes Confidentiel, l'hebergement chez un tiers SaaS doit etre valide par le RSSI. Vérifier la localisation des données (UE), les certifications du fournisseur et les clauses contractuelles.

ELK — Pour l'analyse de logs avancee

Forces

  • KQL/Lucene : langage de requête tres puissant pour l'analyse de logs (full-text search, aggregations complexes)
  • Elastic SIEM : capacites de sécurité intégrées (detection de menaces, correlation d'événements)
  • Elastic APM : traces distribuees intégrées
  • Maturité et documentation abondante

Faiblesses

  • Empreinte ressources elevee : Elasticsearch est gourmand en RAM (JVM, heaps importants)
  • Licence SSPL (Elastic) vs Apache 2.0 (OpenSearch) : choisir sa variante
  • Metriques : Metricbeat moins complet que Prometheus
  • Coût de stockage : les index Elasticsearch sont volumineux

VictoriaMetrics — Pour la haute cardinalite

Forces

  • Performance exceptionnelle : compression aggressive, faible consommation mémoire
  • MetricsQL : surensemble de PromQL avec des fonctions supplémentaires
  • Haute cardinalite : gère des millions de series temporelles sans dégradation
  • Compatible Prometheus : remplacement transparent (remote write, Grafana datasource)

Faiblesses

  • Metriques uniquement : necesssite Loki pour les logs, Tempo pour les traces
  • Communauté plus petite que Prometheus
  • Fonctionnalités enterprise (clustering, downsampling) dans la version payante

Comparaison des langages de requête

Le choix du langage de requête impacte fortement la courbe d'apprentissage et les capacites d'analyse :

Langage Stack Forces Limites
PromQL Prometheus/Mimir Standard de facto pour les metriques, large documentation Metriques uniquement
LogQL Loki Syntaxe proche de PromQL, leger, derivation de metriques depuis les logs Moins puissant que KQL pour le full-text search
TraceQL Tempo Requêtes structurelles sur les spans, filtrage par attributs Jeune, fonctionnalités en évolution
KQL Elasticsearch/Kibana Full-text search puissant, aggregations complexes, sous-requêtes Spécifique a Elastic, courbe d'apprentissage
MetricsQL VictoriaMetrics Surensemble de PromQL (rollup automatique, fonctions supplémentaires) Spécifique a VictoriaMetrics
# PromQL — taux d'erreur par service
sum by(service) (rate(http_requests_total{status=~"5.."}[5m]))
/
sum by(service) (rate(http_requests_total[5m]))
# LogQL — logs d'erreur avec extraction de champs JSON
{service="catalog"} | json | level="error" | line_format "{{.timestamp}} {{.message}}"
# KQL — recherche full-text avec aggregation
service: "catalog" AND level: "error" AND message: "timeout"

Complexité operationnelle comparée

Tâche LGTM Datadog ELK VictoriaMetrics
Installation initiale Moyenne (4-5 composants) Triviale (agent) Moyenne (3 composants) Faible (1 binaire)
Mise à jour Composant par composant, Helm Automatique (SaaS) Rolling update cluster Binaire unique
Scaling horizontal Natif (Mimir, Loki, Tempo) Automatique Cluster Elasticsearch Cluster VictoriaMetrics
Backup / DR Stockage objet + config GitOps Gère par Datadog Snapshots Elasticsearch Snapshots + vmbackup
Monitoring du monitoring Meta-monitoring Alloy Dashboard SaaS Monitoring cluster ES vmagent self-monitoring
Compétences requises PromQL, LogQL, Kubernetes Interface web, DSL proprietaire KQL, administration JVM/cluster PromQL, administration système

Matrice de decision

Besoin Solution recommandee
Stack complète, open source, coût maîtrise LGTM
Zero maintenance, budget disponible, SaaS accepte Datadog
Analyse de logs avancee, SIEM integre ELK / OpenSearch
Tres haute cardinalite metriques, budget limite VictoriaMetrics + Grafana + Loki
Petite équipe, peu d'expertise ops Datadog ou Grafana Cloud (SaaS)
Conformite stricte, données en interne obligatoire LGTM ou VictoriaMetrics (auto-heberge)

Decision recommandee

Pour une DSI orientee développement avec des exigences de maîtrise des coûts et de classification Confidentiel :

Decision : Stack LGTM (Prometheus/Mimir + Loki + Tempo + Grafana) avec Alloy comme collecteur unifie. VictoriaMetrics en alternative si la cardinalite metriques depasse les capacites de Mimir.

Justification :

  • Open source : pas de coût de licence, pas de vendor lock-in
  • Données hebergees en interne : compatible classification Confidentiel
  • Ecosysteme standard : OpenTelemetry, Prometheus exporters, dashboards communautaires
  • Scalabilité prouvee : stockage objet (S3/MinIO) pour la retention longue
  • Correlation native des 3 piliers dans Grafana