Graphite
| Fiche express | |
|---|---|
| Domaine | Stockage et visualisation de métriques temporelles |
| Composants | Carbon (ingestion), Whisper (stockage RRD-like), graphite-web (rendu) |
| Collecte typique | StatsD |
| Voir aussi | Opentsdb · Hadoop |
Graphite est un outil de stockage et de visualisation de séries temporelles (métriques applicatives et système : temps de réponse, nombre de requêtes, charge CPU...), historiquement l'un des standards de fait de la métrologie open source.
Graphite se compose de trois éléments distincts :
- Carbon — démon qui reçoit les métriques en écriture (typiquement via le protocole
texte simple plaintext sur le port 2003, ou pickle pour du batch).
- Whisper — moteur de stockage sur disque de type round-robin (à la manière de RRDtool) :
taille fixe, avec agrégation/dégradation de la résolution des données anciennes pour maîtriser l'espace disque.
- graphite-web — interface web historique de rendu de graphiques à partir des données
Whisper (largement remplacée aujourd'hui par Grafana comme frontal de visualisation, Graphite continuant à servir de backend de stockage/requêtage via son API).
Alimenter Graphite
Les métriques arrivent rarement directement de l'application : StatsD est l'agrégateur réseau le plus courant en frontal de Carbon — il reçoit des métriques simples (compteurs, timers, gauges) par UDP depuis le code applicatif, les agrège sur une courte fenêtre de temps, puis les pousse vers Carbon.
Positionnement face à OpenTSDB
Graphite et Opentsdb répondent au même besoin (stocker des séries temporelles) avec des architectures très différentes : Whisper est un stockage à taille fixe par métrique, simple à opérer mais qui passe mal à l'échelle avec un très grand nombre de métriques distinctes (cardinalité), tandis qu'Opentsdb s'appuie sur HBase pour un stockage distribué taillé pour un volume de métriques bien plus important.