1. À quoi sert l'UI de Grafana Alloy ?
Grafana Alloy intègre un serveur HTTP local qui expose une interface utilisateur (UI) riche. Cette interface est l'outil indispensable pour tout administrateur ou développeur travaillant sur des pipelines d'observabilité.
Les fonctionnalités principales
L'interface web d'Alloy répond à plusieurs besoins critiques :
- Visualisation du Graphe (DAG) : Alloy transforme votre code déclaratif (River) en un graphe de dépendances (Directed Acyclic Graph). L'UI permet de visualiser graphiquement comment les composants sont interconnectés.
- Débogage des composants : Vous pouvez inspecter l'état de chaque composant en temps réel, voir ses entrées (Arguments), ses sorties (Exports) et ses données de débogage internes.
- Surveillance de la santé : L'UI affiche immédiatement quels composants sont en erreur (Unhealthy) avec le message d'erreur associé.
- Gestion du Clustering : Si le mode clustering est activé, une page dédiée permet de voir l'état des différents pairs (peers) du cluster.
2. Comment activer et exposer l'UI ?
Par défaut, Grafana Alloy démarre son serveur HTTP sur le port 12345, mais uniquement sur l'interface de bouclage locale (localhost).
Accès local par défaut
Si vous êtes connecté en SSH sur la machine ou si vous exécutez Alloy en local, l'UI est immédiatement accessible à l'adresse : http://127.0.0.1:12345.
Exposer l'UI sur le réseau
Pour accéder à l'UI depuis une autre machine (par exemple depuis votre navigateur web vers un serveur distant), vous devez modifier l'adresse d'écoute du serveur HTTP au lancement d'Alloy.
// Lancement via ligne de commande
alloy run --server.http.listen-addr=0.0.0.0:12345 config.riverSi vous utilisez Alloy via systemd (Linux), modifiez le fichier d'environnement (généralement /etc/default/alloy) pour ajouter ce paramètre aux arguments de démarrage :
ALLOY_ARGS="run --server.http.listen-addr=0.0.0.0:12345 /etc/alloy/config.river"
3. Comprendre les informations affichées
L'interface est divisée en plusieurs onglets clés qui vous aident à naviguer dans votre configuration.
L'onglet "Graph"
Il affiche la topologie de votre pipeline. Chaque composant est un nœud, et les flèches représentent le flux de données (les dépendances). Un nœud vert indique que le composant est sain (Healthy), un nœud rouge signale une erreur. C'est idéal pour vérifier si un composant d'expédition (comme loki.write) est bien relié à votre source (comme loki.source.file).
L'onglet "Components"
C'est ici que s'effectue le vrai débogage. En cliquant sur un composant, vous verrez :
- Arguments : Ce que le composant a reçu (la configuration évaluée).
- Exports : Ce que le composant rend disponible aux autres (très utile pour vérifier ce qu'un composant
discoverya réellement trouvé). - Debug Info : Informations de contexte spécifiques au composant (ex: les cibles actuellement scrapées par
prometheus.scrape).
4. L'accès à "/metrics" et au profilage
Le serveur HTTP d'Alloy ne sert pas qu'à afficher une interface graphique. Il expose également des endpoints vitaux pour l'auto-supervision (self-monitoring).
L'endpoint /metrics
Accessible via http://<ip>:12345/metrics, cet endpoint expose toutes les métriques de santé, de performance et d'état du processus Alloy lui-même, au format Prometheus. Bien qu'il soit consultable dans un navigateur, il est conçu pour être scrapé par un composant prometheus.scrape afin d'alimenter vos tableaux de bord Grafana.
Le profilage via /debug/pprof
Pour les problèmes de performance complexes (fuite de mémoire, utilisation CPU anormale), Alloy expose les endpoints standards de profilage Go (pprof) sous /debug/pprof/. Ces données peuvent être récupérées et envoyées vers Grafana Pyroscope à l'aide du composant pyroscope.scrape pour une analyse continue du code en exécution.
5. Sécurité et Bonnes Pratiques
L'exposition de l'UI et des métriques vient avec des responsabilités en matière de sécurité.
Ne jamais exposer l'UI publiquement
L'interface de Grafana Alloy n'intègre pas nativement de système d'authentification (login/mot de passe). Si vous exposez le port 12345 sur Internet (0.0.0.0), n'importe qui pourra visualiser votre architecture interne, vos configurations, et potentiellement des secrets évalués dans les arguments des composants.
RECOMMANDATION : Si un accès distant est nécessaire, placez Grafana Alloy derrière un reverse proxy (comme Traefik ou Nginx) ou un tunnel sécurisé (comme Cloudflare Tunnels ou Tailscale) avec une authentification forte (Basic Auth, OAuth).