RousselTMLEARNING

Observabilité

Grafana Cloud : démarrer avec la plateforme managée (Mimir, Loki, Tempo, Alloy)

Découvrir Grafana Cloud : création d'une stack, offre gratuite, envoi de métriques, logs et traces avec Alloy, jetons d'accès, alertes, OnCall et bonnes pratiques de coûts.

1. Qu'est-ce que Grafana Cloud ? #

Grafana et son écosystème en SaaS.

Les composants managés #

Grafana Cloud propose, sans rien installer, Grafana, Mimir (métriques compatibles Prometheus), Loki (logs), Tempo (traces), Pyroscope (profils) et des fonctions avancées : alerting, OnCall, SLO, Synthetic Monitoring, Application Observability, Kubernetes Monitoring.

Architecture de Grafana Cloud
Le plan de données est managé ; seul le collecteur reste chez vous.
Offre : Une offre gratuite (free tier) permet de démarrer avec des volumes limités de métriques, logs et traces et quelques utilisateurs : idéale pour les TP. Vérifiez les quotas actuels sur grafana.com/pricing.

2. Créer sa stack et récupérer ses identifiants #

Quelques clics.

Étapes #

  1. Créer un compte sur grafana.com puis une stack (choisir la région la plus proche).
  2. Dans le portail : Details de chaque service (Prometheus, Loki, Tempo) pour récupérer l'URL et l'identifiant (user ID).
  3. Administration > Cloud access policies : créer une politique avec les scopes metrics:write, logs:write, traces:write, profiles:write, puis un token.
  4. Stocker le token dans un coffre ou une variable d'environnement, jamais dans Git.
export GC_PROM_URL="https://prometheus-prod-01-eu-west-0.grafana.net/api/prom/push"
export GC_PROM_USER="123456"
export GC_LOKI_URL="https://logs-prod-eu-west-0.grafana.net/loki/api/v1/push"
export GC_LOKI_USER="654321"
export GC_TOKEN="glc_eyJ..."      # token d'une access policy

# Tester l'authentification
curl -u "$GC_PROM_USER:$GC_TOKEN" "https://prometheus-prod-01-eu-west-0.grafana.net/api/prom/api/v1/labels" 

3. Envoyer ses données avec Alloy #

Une configuration pour les trois signaux.

Configuration Alloy #

// config.alloy
prometheus.exporter.unix "host" { }

prometheus.scrape "host" {
  targets    = prometheus.exporter.unix.host.targets
  forward_to = [prometheus.remote_write.cloud.receiver]
}

prometheus.remote_write "cloud" {
  endpoint {
    url = sys.env("GC_PROM_URL")
    basic_auth {
      username = sys.env("GC_PROM_USER")
      password = sys.env("GC_TOKEN")
    }
  }
}

local.file_match "syslog" {
  path_targets = [{"__path__" = "/var/log/syslog", "job" = "syslog"}]
}

loki.source.file "syslog" {
  targets    = local.file_match.syslog.targets
  forward_to = [loki.write.cloud.receiver]
}

loki.write "cloud" {
  endpoint {
    url = sys.env("GC_LOKI_URL")
    basic_auth {
      username = sys.env("GC_LOKI_USER")
      password = sys.env("GC_TOKEN")
    }
  }
}
docker run -d --name alloy -p 12345:12345 --env-file .env \
  -v "$PWD/config.alloy:/etc/alloy/config.alloy" \
  grafana/alloy:latest run --server.http.listen-addr=0.0.0.0:12345 /etc/alloy/config.alloy

# Vérifier dans Grafana Cloud > Explore :   up   et   {job="syslog"}

4. Alerter, gérer les coûts et la sécurité #

Exploiter durablement.

Alertes et OnCall #

  • Créer des alertes dans Alerting > Alert rules avec les mêmes requêtes que vos panneaux.
  • Configurer des contact points (e-mail, Slack, webhook) et des notification policies (routage par labels).
  • Utiliser Grafana OnCall pour les rotations d'astreinte et l'escalade.

Maîtriser la facture #

# Dans Prometheus/Mimir : trouver les métriques les plus coûteuses (séries actives)
topk(10, count by (__name__) ({__name__=~".+"}))

# Supprimer à la source avec Alloy ce qui ne sert pas
prometheus.relabel "reduce" {
  forward_to = [prometheus.remote_write.cloud.receiver]
  rule { source_labels = ["__name__"]  regex = "go_gc_.*|promhttp_.*"  action = "drop" }
}
Bonne Pratique : Surveillez l'onglet Usage & billing et posez des alertes sur les séries actives et le volume de logs ingérés : la cardinalité est le premier poste de coût.
Erreur Courante : Un token trop permissif (scope admin) copié dans un dépôt public est une compromission complète de votre stack : un token par usage, avec expiration.

Articles liés

Grafana : maîtriser les requêtes (PromQL, LogQL, SQL et expressions)

Construire des requêtes efficaces dans Grafana : éditeur de requêtes, Query Inspector, PromQL, LogQL, SQL, Mi…

Bonnes pratiques Grafana : dashboards, provisioning, performances et sécurité

Bonnes pratiques Grafana : conception de dashboards lisibles, variables, dashboards as code, provisioning, do…

Grafana Assistant : L'IA au service de l'observabilité

Découvrez Grafana Assistant, l'intelligence artificielle intégrée à Grafana Cloud. Apprenez comment cet outil…

Pour aller plus loin