1. Discovery
Auto-détection des cibles via Kubernetes, Consul ou fichiers statiques.
Trouver dynamiquement les cibles
Dans les environnements modernes, les adresses IP et les ports des services changent constamment. Alloy intègre des composants de découverte (Service Discovery) issus de Prometheus. Que ce soit via discovery.kubernetes, discovery.consul, ou de simples fichiers statiques, Alloy identifie automatiquement les cibles à interroger, avec tous leurs labels associés.
2. Scraping
Configuration du composant prometheus.scrape.
Collecter les métriques
Une fois les cibles identifiées, le composant prometheus.scrape entre en jeu. Il se connecte régulièrement aux endpoints /metrics des cibles, récupère les données au format Prometheus, applique d'éventuelles règles de relabeling (pour filtrer ou modifier les labels avant l'ingestion) et transmet les séries temporelles au composant d'expédition.
3. Remote Write
Envoi des données vers Grafana Cloud ou une instance locale.
L'expédition des métriques
Le composant prometheus.remote_write prend les métriques scrappées et les pousse vers une base de données de séries temporelles compatible, comme Grafana Mimir, Prometheus (avec remote_write activé), ou Grafana Cloud. Il gère l'authentification (Basic Auth, Bearer Token), la mise en mémoire tampon (WAL) pour éviter les pertes de données en cas de coupure réseau, et la compression.
Bonne Pratique : Configurez toujours le composant wal (Write-Ahead Log) pour vos expéditeurs. Cela garantit qu'en cas d'indisponibilité de votre base de données, Alloy met en cache les métriques sur le disque et les réexpédie automatiquement dès que la connexion est rétablie.Erreur Courante : Scraper des métriques avec une forte cardinalité (ex: inclure unuser_idou unesession_iddans les labels d'une métrique Prometheus) sans utiliser les composants derelabelpour les filtrer. Cela va entraîner une explosion de la cardinalité et saturer votre backend.
prometheus.remote_write "default" {
endpoint {
url = "https://prometheus-prod.grafana.net/api/prom/push"
}
wal {
truncate_frequency = "2h"
max_keepalive_time = "5m"
}
}
4. Interopérabilité OTLP
Recevoir et transformer des métriques OpenTelemetry.
Le pont entre Prometheus et OTLP
Alloy brille par sa capacité à unifier les écosystèmes. Avec les composants otelcol, Alloy peut agir comme un collecteur OpenTelemetry, recevant des métriques au format OTLP envoyées directement par vos applications instrumentées, les convertir à la volée, et les intégrer dans votre pipeline d'expédition Prometheus existant.