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.

A noter que chaque métrique (par exemple cpu_idle sur le check Cpu de l'hôte serveur-1) aura sont propre fichier .wsp présent dans /opt/graphite/storage/whisper (dans un sous répertoire HOST-UUID/CHECK-UUID).

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:

  • pattern: une règle d'expression régulière d'application du bloc.
    • 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
  • priority: une priorité d'application du bloc, plus la valeur est haute, moins il est prioritaire
  • retentions: une règle de rétention: 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.


Précision livrée par défaut à partir de la v02.07.00

La précision livrée par défaut avant la 02.06.02 était la suivante:

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


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

  • un point toutes les 60s, sur 7 jours
  • un point toutes les 5min, sur 30 jours (
  • un point par 30min, sur 3 mois
  • un point par jour, sur 1 an et demi

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

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


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

  • 60s:7d:
    • nombres de points: 7 j * 86400s / 60s = 10080 points
    • taille= 12o * 10080 = 120ko
  • 300s:30d:
    • nombre de points : 30 j*86400 / 300s = 8640 points
    • taille = 12o * 8640 = 101Ko
  • 1800s:180d:
    • nombre de points : 180 j * 86400 / 1800s = 8640points
    • taille = 12o * 8640 = 101Ko
  • 86400s:547d
    • nombre de points : 547 j * 86400 / 86400s = 547 points
    • taille = 12o * 547 = 6Ko


Soit une Taille totale = 328Ko, par métrique pressente sur le disque (le fichier .wsp).

Attention: il est important de noter que la précision d'un fichier de métrique est prise en compte à la création du fichier.

Ainsi, un changement de la configuration de Graphite ne va pas redimensionner tous les métriques présents, mais seulement les nouveaux fichiers créés.


Précision livrée par défaut AVANT la v02.07.00

La précision livrée par défaut avant la 02.07.00 était la suivante:

[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 7 jours
  • un point toutes les 5min, sur 30 jours (
  • un point par heure, sur 6 mois
  • un point par jour, sur 2 ans

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

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


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

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


Soit une Taille totale = 283Ko, par métrique pressente sur le disque (le fichier .wsp).

Attention: il est important de noter que la précision d'un fichier de métrique est prise en compte à la création du fichier.

Ainsi, un changement de la configuration de Graphite ne va pas redimensionner tous les métriques présents, mais seulement les nouveaux fichiers créés.


Attention: il est important de noter que la précision n'est pas modifiée lors d'une mise à jour de Shinken Enterprise.