Aller au contenu principal

Observabilité - Stack Grafana

Datadog facture à l'hôte. New Relic facture à l'ingestion. Les deux envoient vos métriques et vos logs aux États-Unis. France Nuage héberge une stack Grafana complète - Grafana, Prometheus, Loki, Alertmanager - entièrement managée. Vos données d'observabilité restent en France, et la facture reste lisible.

Pourquoi la Stack Grafana ?

Grafana est la plateforme de visualisation open source la plus utilisée au monde. Couplée à Prometheus pour les métriques et Loki pour les logs, elle forme une stack d'observabilité complète qui rivalise avec les solutions propriétaires.

  • Open source : Grafana (Apache 2.0), Prometheus (Apache 2.0), Loki (AGPLv3). Code auditable, pas de boîte noire
  • Métriques avec Prometheus : collecte, stockage et requêtes PromQL sur toutes vos métriques applicatives et infrastructure
  • Logs avec Loki : agrégation de logs légère et efficace, pensée pour Kubernetes. Adieu la complexité d'un cluster Elasticsearch
  • Alertes avec Alertmanager : routage intelligent des alertes vers Slack, email, PagerDuty ou OpsGenie
  • Dashboards pré-configurés : monitoring Kubernetes prêt à l'emploi dès le déploiement

Comparatif

CritèreFrance NuageDatadogNew RelicElastic StackUptrace
Open sourceOui (Apache 2.0)NonNonPartiellement (SSPL)Oui (BSL)
Hébergement souverainOui (France)Non (USA)Non (USA)Selon vousSelon vous
MétriquesPrometheus (PromQL)PropriétairePropriétaireElasticsearchClickHouse
LogsLoki (LogQL)PropriétairePropriétaireElasticsearchClickHouse
AlertingAlertmanagerPropriétairePropriétaireWatcherIntégré
Dashboards customIllimitésIllimitésIllimitésKibanaIntégrés
API RESTOuiOuiOuiOuiOui
Coût prévisible30 EUR HT/moisPar hôte + ingestionPar Go ingéréServeur + tempsAbonnement
Coût opsZéroZéroZéroTemps + serveurTemps + serveur

Concrètement

La facturation Datadog est notoirement imprévisible. Un pic de trafic un vendredi soir, et la facture du mois double. Avec France Nuage, le tarif est fixe : 30 EUR HT/mois pour toute la stack.

Prometheus et Loki utilisent des langages de requête ouverts (PromQL et LogQL). Pas de vendor lock-in sur le format de vos métriques ou de vos logs. Les dashboards Grafana s'exportent en JSON et se réimportent n'importe où.

Les données ne quittent pas la France. Pour les secteurs réglementés (santé, finance, secteur public), ce n'est pas un bonus - c'est une obligation.

Portabilité

  • Export JSON de tous les dashboards via l'interface ou l'API REST
  • Métriques au format Prometheus standard : compatible avec n'importe quelle instance Prometheus
  • Logs au format standard : migrez vers n'importe quel collecteur
  • Si vous quittez France Nuage, réinstallez Grafana + Prometheus + Loki sur votre propre cluster et réimportez vos dashboards
  • Licences open source : le code reste libre, les projets ne peuvent pas devenir propriétaires

France Nuage vs auto-hébergement

Vous pourriez installer la stack Grafana vous-même. Voilà ce que ça implique concrètement :

AspectAuto-hébergementFrance Nuage
Rétention métriquesÀ configurer30 jours inclus
Rétention logsÀ configurer15 jours inclus
Base GrafanaPostgreSQL à gérerCNPG managé
Dashboards KubernetesÀ importerPré-configurés
AlertmanagerÀ configurerPré-configuré
Haute disponibilitéÀ votre chargeGarantie
SauvegardesÀ configurerAutomatiques
Mises à jour sécuritéÀ surveillerAppliquées
NetworkPoliciesÀ configurerAppliquées
Monitoring 24/7Ironique, non ?Inclus

Le point critique de l'auto-hébergement, c'est le monitoring du monitoring. Qui surveille Prometheus quand Prometheus tombe ? Chez France Nuage, la stack d'observabilité est elle-même supervisée par une boucle de monitoring indépendante.

Démarrage rapide

1. Déployer depuis la console

  1. Rendez-vous sur console.france-nuage.fr
  2. Créez votre compte ou connectez-vous
  3. Déployez la Stack Grafana depuis le catalogue de services
  4. Quelques minutes plus tard, Grafana, Prometheus, Loki et Alertmanager sont prêts

2. Accéder à Grafana

Une fois le déploiement terminé, accédez à votre instance Grafana via l'URL fournie dans la console. Les identifiants d'administration sont disponibles dans les détails du service.

3. Premiers dashboards

Des dashboards Kubernetes sont pré-configurés. Dès le déploiement, vous pouvez explorer :

  • Kubernetes / Cluster : vue d'ensemble CPU, mémoire, réseau du cluster
  • Kubernetes / Pods : consommation par pod, restarts, statuts
  • Prometheus / Targets : état de santé des endpoints monitorés
  • Loki / Logs : recherche et filtrage de vos logs applicatifs

Aller plus loin

Ajouter une source de données

Grafana supporte nativement de nombreuses sources de données en plus de Prometheus et Loki. Pour en ajouter une, rendez-vous dans les paramètres de Grafana :

  1. Allez dans Configuration > Data Sources
  2. Cliquez sur Add data source
  3. Choisissez parmi les sources disponibles : InfluxDB, PostgreSQL, MySQL, Elasticsearch, et bien d'autres

Créer un dashboard personnalisé

Pour créer un dashboard adapté à vos besoins :

  1. Cliquez sur + > New Dashboard
  2. Ajoutez un panneau avec Add visualization
  3. Sélectionnez votre source de données (Prometheus pour les métriques, Loki pour les logs)
  4. Écrivez votre requête PromQL ou LogQL
  5. Enregistrez

Un exemple de requête PromQL pour suivre le taux d'erreurs HTTP 5xx de vos services :

sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))

Configurer les alertes

Alertmanager est pré-configuré. Pour créer une alerte, vous pouvez passer par l'interface Grafana :

  1. Ouvrez un panneau de dashboard existant
  2. Cliquez sur Alert > Create alert rule
  3. Définissez la condition (par exemple : CPU > 80% pendant 5 minutes)
  4. Configurez le canal de notification (Slack, email, PagerDuty, OpsGenie)
  5. Enregistrez

API REST Grafana

Tous les dashboards sont gérables via l'API REST. Voici comment exporter un dashboard :

# Récupérer un dashboard par son UID
curl -H "Authorization: Bearer VOTRE_TOKEN_API" \
"https://votre-instance.france-nuage.fr/api/dashboards/uid/MON_DASHBOARD_UID"

Et pour importer un dashboard depuis la communauté Grafana :

# Importer un dashboard JSON
curl -X POST \
-H "Authorization: Bearer VOTRE_TOKEN_API" \
-H "Content-Type: application/json" \
-d @dashboard.json \
"https://votre-instance.france-nuage.fr/api/dashboards/db"

Envoyer des logs applicatifs vers Loki

Pour envoyer les logs de vos applications vers Loki, utilisez Promtail ou le client HTTP natif. Voici un exemple avec la commande curl pour tester l'envoi :

# Envoyer un log de test vers Loki
curl -X POST \
-H "Content-Type: application/json" \
"https://votre-loki.france-nuage.fr/loki/api/v1/push" \
-d '{
"streams": [{
"stream": { "app": "mon-service", "env": "production" },
"values": [["'"$(date +%s)000000000"'", "Démarrage du service OK"]]
}]
}'

En production, Promtail (ou Grafana Agent) collecte automatiquement les logs de vos pods Kubernetes sans configuration manuelle.

Bonnes pratiques

  • Utilisez des labels Prometheus cohérents (app, env, team) pour faciliter les requêtes PromQL
  • Limitez la cardinalité des labels : trop de valeurs distinctes dégrade les performances de Prometheus
  • Structurez vos logs en JSON pour exploiter pleinement LogQL dans Loki
  • Créez des alertes sur les symptômes (latence, taux d'erreur) plutôt que sur les causes (CPU, mémoire)
  • Exportez vos dashboards en JSON et versionnez-les dans Git
  • Utilisez les dossiers Grafana pour organiser vos dashboards par équipe ou par service

Références