Les précisions de stockages

Graphite, comme toute les bases de métrologie, stocke ses données avec diverses précisions: plus les données sont éloignées, moins elles sont précises, et ce afin de gagner en performance et surtout espace disque.

Définition des précisions de stockage

La définition des différentes précisions se font via le fichier /opt/graphite/conf/storage-schemas.conf.

Il va s'organiser en bloc. Chacun va avoir:

  • une règle de pattern d'application. Attention: vu que les métriques sont stockés sous forme de uuid dans Graphite, seuls les noms de métriques seront utilisables ici, pas les noms d'hôtes ou de checks
  • une priorité, plus la valeur est haute, moins il est prioritaire
  • une règle de retention: suite de couple précision:durée, qui donne la précision d'un point, et la durée de stockage pour cette précision

Par exemple:


[ma_precision]
pattern = .*
retentions = 60s:7d,300s:30d,3600s:180d,86400s:650d


Va appliquer pour tous les métriques la règle de stockage suivante:

  • un point toutes les 60s, sur 7jours
  • un point toutes les 5min, sur 30jours
  • un point par heure, sur 6mois
  • un point par jour, sur 2 ans

A noter qu'un point coûte 12octets:

  • 4 pour la date (taille d'un int32)
  • 8 pour la valeur (taille d'un double64)

Ici un fichier créé avec cette retention aura donc la taille:

  • 60s:7d:
    • nombres de points: 7j*86400s / 60s = 10080 points
    • taille= 12o *10080 = 120ko
  • 300s:30d:
    • nombre de points : 30j*86400 / 300s = 8640 points
    • taille = 12o * 8640 = 103Ko
  • 3600s:180d:
    • nombre de points : 180j*86400 / 3600s = 4320points
    • taille = 12o * 4320 = 52Ko
  • 86400s:650d
    • nombre de points : 650j*86400 / 86400s = 650 points
    • taille = 12o * 650 = 8Ko
  • Taille totale = 283Ko

Attention: il est important de noter que la précision d'un métrique est prise en compte à la création de ce dernier. Un changement de la configuration de Graphite ne va pas redimensionner tous les métriques présents, mais seulement les nouveaux.