Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 de pattern 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 retentionré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.06.02

La précision livrée par défaut depuis la 02.06.02 est la suivante:

Code Block
themeEmacs
[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).

Info
titleLa précision est définie à la création d'un métrique

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.06.02

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

Par exemple:

Code Block
themeEmacs
[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 7jours7 jours
  • un point toutes les 5min, sur 30jours30 jours
  • un point par heure, sur 6mois6 mois
  • un point par jour, sur 2 ans

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

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


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

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


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

Info
titleLa précision est définie à la création d'un métrique

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.


Info
titleLa précision n'est pas modifiée lors d'une mise à jour

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


Précision spécifique à un hôte

Il est possible de modifier la précision spécifiquement à un ou plusieurs hôtes.


Il faut ajouter un bloc dans le fichier storage-schemas.conf 

Code Block
themeEmacs
[specifique]
pattern = b6f742865f074584a605d31116833f3d.*.*
retentions = 1m:1h,5m:2h,1h:30d,1d:1y,8640m:3y


Le paramètre pattern est découpé comme suit : ID HOTE.ID CHECK.NOM DU METRIQUE


Warning

Le pattern doit être l'ID créé par Shinken


Dans notre exemple, tous les checks et tous les métriques de checks de l'hôte "shinken" (ID : b6f742865f074584a605d31116833f3d) obtiennent la rétention "specifique"

Info
titleLa précision est définie à la création d'un métrique

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 de ce dernier. Un changement de la configuration de Graphite ne va pas redimensionner tous les métriques présents, mais seulement les nouveaux fichiers créés.


Une fois le fichier créé, pour avoir confirmation de la bonne prise en compte de ce nouveau bloc, dans le fichier /opt/graphite/storage/log/carbon-cache/carbon-cache-a/creates.log vous aurez les lignes suivantes :

Code Block
29/06/2021 16:41:44 :: new metric b6f742865f074584a605d31116833f3d.92182da3c28c5193c0e36b4a68b5e896.connexion_time matched schema specifique
29/06/2021 16:41:44 :: new metric b6f742865f074584a605d31116833f3d.92182da3c28c5193c0e36b4a68b5e896.connexion_time matched aggregation schema default_average
29/06/2021 16:41:44 :: creating database file /opt/graphite/storage/whisper/b6f742865f074584a605d31116833f3d/92182da3c28c5193c0e36b4a68b5e896/connexion_time.wsp (archive=[(60, 60), (300, 24), (3600, 720), (86400, 365), (518400, 182)] xff=0.01 agg=average)


En cas d'erreur

Si vous avez cette erreur au redémarrage de carbon-cache c'est que la configuration d'un fichier n'est pas bonne :

Code Block
/etc/init.d/carbon-cache restart
Stopping carbon-cache...                                   [FAILED]
Starting carbon-cache...Traceback (most recent call last):
  File "/opt/graphite/bin/carbon-cache.py", line 30, in <module>
    run_twistd_plugin(__file__)
  File "/opt/graphite/lib/carbon/util.py", line 92, in run_twistd_plugin
    runApp(config)
  File "/usr/lib64/python2.7/site-packages/twisted/scripts/twistd.py", line 23, in runApp
    _SomeApplicationRunner(config).run()
  File "/usr/lib64/python2.7/site-packages/twisted/application/app.py", line 411, in run
    self.application = self.createOrGetApplication()
  File "/usr/lib64/python2.7/site-packages/twisted/application/app.py", line 489, in createOrGetApplication
    ser = plg.makeService(self.config.subOptions)
  File "/opt/graphite/lib/twisted/plugins/carbon_cache_plugin.py", line 21, in makeService
    return service.createCacheService(options)
  File "/opt/graphite/lib/carbon/service.py", line 127, in createCacheService
    from carbon.writer import WriterService
  File "/opt/graphite/lib/carbon/writer.py", line 34, in <module>
    schemas = loadStorageSchemas()
  File "/opt/graphite/lib/carbon/storage.py", line 139, in loadStorageSchemas
    except InvalidConfiguration, e:
NameError: global name 'InvalidConfiguration' is not defined