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.
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 #
- Créer un compte sur grafana.com puis une stack (choisir la région la plus proche).
- Dans le portail : Details de chaque service (Prometheus, Loki, Tempo) pour récupérer l'URL et l'identifiant (user ID).
- Administration > Cloud access policies : créer une politique avec les scopes
metrics:write,logs:write,traces:write,profiles:write, puis un token. - 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.