1. Qu'est-ce que Grafana Alloy ?
Comprendre le passage de l'Agent statique à Alloy.
L'évolution de l'Agent Grafana

Grafana Alloy représente la nouvelle génération de collecteur de télémétrie de Grafana Labs. Il succède à Grafana Agent (qui a été déprécié) en adoptant une approche beaucoup plus flexible. Contrairement à un agent statique fonctionnant avec un fichier YAML monolithique et rigide, Alloy agit comme une véritable distribution OpenTelemetry hautement configurable. Il est conçu pour être le point d'entrée unique de vos données, capable de collecter, transformer et router vos métriques (Prometheus), logs (Loki), traces (Tempo/OTLP) et profils (Phlare) avec une agilité inédite.
2. Le concept de "Programmable Pipelines"
Introduction à la syntaxe déclarative.
Des pipelines dynamiques
Alloy abandonne le YAML au profit de pipelines programmables grâce à son propre langage de configuration : River (très similaire au HCL de Terraform). Vous ne vous contentez plus de déclarer des listes statiques de cibles ; vous instanciez des composants et construisez de véritables flux de données où la sortie d'un composant est référencée comme l'entrée d'un autre.
// Exemple de configuration River
prometheus.scrape "app_scraper" {
targets = [{"__address__" = "localhost:8080"}]
forward_to = [prometheus.remote_write.mimir.receiver]
}
prometheus.remote_write "mimir" {
endpoint {
url = "http://mimir:9009/api/v1/push"
}
}Cette approche déclarative permet des transformations complexes, du routage conditionnel (par exemple, envoyer les logs de debug uniquement en dev) et une modularité exceptionnelle.
3. Architecture interne
Les composants, les services et le graphe de dépendances (DAG).
Le DAG au cœur du système

L'architecture interne d'Alloy repose sur un Directed Acyclic Graph (DAG), ou Graphe Orienté Acyclique. Chaque bloc de configuration (découverte Kubernetes, scraping Prometheus, filtrage des logs, expédition OTLP) agit comme un composant indépendant, un nœud dans ce graphe. Alloy évalue ces références et détermine automatiquement l'ordre d'exécution. Mieux encore : Alloy intègre une interface Web locale (sur le port 12345 par défaut) qui permet de visualiser ce DAG en temps réel et de déboguer l'état de chaque composant !
Bonne Pratique : Privilégiez la séparation de vos configurations en plusieurs petits fichiers River. Alloy peut charger un répertoire complet, ce qui facilite l'organisation par domaine.
Erreur Courante : Redémarrer manuellement le service (systemctl restart alloy) à chaque modification de configuration. Utilisez plutôt l'API de rechargement à chaud.# Besoin : Organiser la configuration en modules (par équipe ou environnement) sans tout mettre dans un fichier géant.
# Avantage : Alloy fusionne automatiquement tous les fichiers River en un seul DAG cohérent.
alloy run /etc/alloy/config.d/
# Besoin : Appliquer les modifications de configuration sans interrompre la collecte en cours.
# Avantage : Zéro temps d'arrêt (Zero downtime), garantissant qu'aucune métrique ou log n'est perdu durant l'opération.
curl -X POST http://localhost:12345/-/reload
4. Installation
Déploiement sur Linux, Docker et Kubernetes.
Options de déploiement
Alloy est conçu pour s'adapter à n'importe quel environnement et se substitue parfaitement aux anciens agents. Voici comment l'installer :
- Linux (Systemd) : S'installe via les dépôts APT/YUM. Idéal pour monitorer des VMs ou du Bare-Metal.
- Docker : Déploiement instantané avec le montage du fichier de configuration.
Besoin : Tester Alloy localement ou dans un environnement de CI sans polluer le système hôte.
Avantage : Isolation parfaite et environnement éphémère facilement reproductible.# Exécution d'Alloy en montant la configuration locale docker run -p 12345:12345 \n -v /path/to/config.river:/etc/alloy/config.river \n grafana/alloy:latest run --server.http.listen-addr=0.0.0.0:12345 /etc/alloy/config.river - Kubernetes (via Helm) : L'approche la plus robuste pour le Cloud-Native. Vous pouvez déployer Alloy en mode DaemonSet (pour collecter les logs des nœuds) ou en mode Cluster/Deployment.
Besoin : Déployer et maintenir Alloy sur un cluster à grande échelle.
Avantage : Helm gère automatiquement la complexité du RBAC, des configmaps et assure des mises à niveau (upgrades) sans friction.# Besoin : Récupérer le catalogue officiel des paquets Grafana helm repo add grafana https://grafana.github.io/helm-charts # Besoin : Installer l'agent dans un espace de nom dédié # Avantage : Déploiement standardisé et création automatique du namespace si inexistant helm install my-alloy grafana/alloy -n observability --create-namespace
5. Foire Aux Questions (FAQ)
Questions courantes autour de Grafana Alloy.
Quelle est la différence entre Grafana Alloy et Grafana Agent ?
Grafana Alloy est le successeur officiel de Grafana Agent. Là où l'Agent utilisait une configuration statique (souvent YAML complexe), Alloy introduit des pipelines programmables en langage River, offrant une flexibilité totale, un rechargement à chaud natif et une UI de débogage sous forme de graphe (DAG).
6. Allez plus loin : Formations et Maillage
Passez de la théorie à la pratique.
Transformez l'essai
Si ce tutoriel vous a aidé à comprendre les bases, notre Formation Grafana Alloy vous emmènera bien plus loin (Labs pratiques sur Kubernetes, transformations complexes, debug avancé).