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).
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:
La précision livrée par défaut depuis la 02.06.02 est 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:
A noter qu'un point coûte 12 octets:
Ici un fichier créé avec cette rétention aura donc la taille:
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. |
La précision livrée par défaut avant la 02.06.02 é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:
A noter qu'un point coûte 12 octets:
Ici un fichier créé avec cette rétention aura donc la taille:
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. |
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
[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
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"
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 ou un lancement de la commande whisper-resize.py 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. |
Pour la prise en compte du nouveau paramètre :
Une fois le fichier créé ou regénéré, 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 :
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) |
Si vous avez cette erreur au redémarrage de carbon-cache c'est que la configuration d'un fichier n'est pas bonne :
/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 |