Outils pour utilisateurs

Outils du site


brouillon_rrd

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
brouillon_rrd [2008/08/16 23:54] thierrybrouillon_rrd [2008/08/17 23:18] (Version actuelle) thierry
Ligne 3: Ligne 3:
   *http://tobi.oetiker.ch/   *http://tobi.oetiker.ch/
   *http://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html   *http://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html
 +  *http://reseau.univ-aix.fr/doctech/rrdtool.pdf
  
  
Ligne 23: Ligne 24:
  
 ===== Exemple ===== ===== Exemple =====
 +
  
  
Ligne 40: Ligne 42:
   $ ls -lart   $ ls -lart
   -rw-r--r-- 1 thierry thierry 1008 aoû 16 14:51 test.rrd   -rw-r--r-- 1 thierry thierry 1008 aoû 16 14:51 test.rrd
 +
 +La data "--start" est facultative ! A defaut, c'est la date actuelle.
  
 === DS === === DS ===
Ligne 120: Ligne 124:
      920805000: 4.0000000000e-02      920805000: 4.0000000000e-02
    
 +
  
  
Ligne 211: Ligne 216:
 {{:speed4.png|}}\\ {{:speed4.png|}}\\
 Mouai ... Mouai ...
 +
 +
 +
 +
 +===== du concret =====
 +
 +
 +Je voudrais stocker des températures sur +2 ans...
 +
 +On va prendre un "heartbeat" de 5 minutes... donc, on garantie d'avoir une nouvelle valeur au moins toutes les 5 minutes !
 +
 +  5 * 60 => 300 secondes
 +
 +Ce qui donne comme paramètre:
 +  DS:temp:GAUGE:300:-80:+80
 +
 +Je pose des limites minimum/maximum. (Parce que le capteur n'est pas a l'abri d'un bug!)
 +
 +
 +==== Quelques heures ====
 +
 +On veut garder les valeurs sur 2 jours au moins... Donc:
 +
 +  2 jours => 172800 secondes 
 +En "heartbeat" ca donne:
 +  172800 / 300 => 576 
 +Soyons un peu plus généreux, et on arrondi a:
 +  600 ( => (600*300)/(24*60*60) ) => 2 jours et 2 heures )
 +
 +Ce qui nous donne un premier paramètre "RRA" comme cela:
 +  RRA:AVERAGE:0.5:1:600
 +
 +  - Donc, on créé une "table" pour recevoir **''600 valeurs''**.\\
 +  - On prétend pour fournir au moins 1 information toutes les 5 minutes.\\
 +  - S'il y en a plusieurs, une moyenne est faite entre elle.\\
 +  - S'il n'y en a aucune sur les 5 minutes, la "valeur" est marqué "unknown".
 +
 +En conséquence: 600 * 300 => 2 jours et 2 heures.
 +
 +
 +==== Quelques jours ====
 +
 +On veut garder les valeurs sur 14 jours au moins, mais avec un peu moins de precisions.\\
 +Donc:
 +  14 jours => 1209600 secondes
 +En "heartbeat" ca devient:
 +  1209600 / 300 => 4032
 +
 +Mais c'est beaucoup trop de valeurs a stocker... On va essayer de s'approcher des "600" valeurs stockable.\\
 +  1209600 / 600 => 2016 secondes
 +Donc, 1 information devrait être la moyenne (average) d'une periode de "2016 secondes".\\
 +Convertit en "heartbeat", cela devient:
 +  2016 / 300 => 6.72
 +On arrondit a **''6''**
 +
 +Finalement, on a besoin de **''6''** informations pour constituer une valeur stockable.\\
 +  6 * 300 => 30 minutes
 +On fera donc la moyenne sur 6 informations, c'est a dire une période de temps de 30 minutes.
 +
 +C'est acceptable pour garder 14 jours de valeurs.... Enfin, un peu plus maintenant:\\
 +Pour 14 jours, on a besoin de :
 +  1209600 / ( 6 * 300 ) => 672 valeurs
 +
 +On va encore arrondir a **''700''** , soit:
 +  300 * 6 * 700 => 1260000 => 14.5 jours
 +
 +Bien. Cela devient comme parametre:
 +
 +  RRA:AVERAGE:0.5:6:700
 +
 +  -On a 700 valeurs
 +  -Chaque valeur couvre 6*300 secondes, soit 30 minutes
 +  -la "table" couvre 14.5 jours ( 300 * 6 * 700 )
 +
 +
 +
 +
 +==== Quelques semaines ====
 +
 +C'est bien, mais on veut garder au moins 2 mois, soit 8 semaines.
 +
 +Donc:
 +  8 semaines => 60 jours
 +Ce qui donne:
 +  5184000 secondes
 +Convertissons de suite en "600 valeurs":
 +  5184000 / 600 => 8640 secondes
 +Donc, chaque valeur stocké couvrira une période de **''8640 secondes''** soit **''2 heure et 24 minutes''**.
 +
 +Ca serait plus fun d'arrondir la période à **''2 heures''** ;-) \\
 +On y va:
 +  2 * 60 => 7200 secondes
 +Finalement, on a besoin que de "720" valeurs pour couvrir la période... effectivement:
 +  3974400 / 7200 => 720
 +
 +En "heartbeat" cela devient:
 +  7200 / 300 => 24
 +On a donc besoin de **''24''** echantillons.
 +
 + 300 * 24 * 720 => 5184000 secondes => 60 jours
 +
 +Pile !
 +Allez, j'ajoute 2 jours: 744 valeurs
 +
 +Bien. Cela devient comme parametre:
 +
 +  RRA:AVERAGE:0.5:24:744
 +
 +  -On a 744 valeurs
 +  -Chaque valeur couvre 24*300 secondes, soit 2 heures
 +  -la "table" couvre 62 jours ( 300 * 24 * 744 secondes )
 +
 +
 +
 +==== Plusieurs mois ====
 +
 +=== 6 mois ===
 +
 +Pour 6 mois => soit environ 183 jours
 +  183 jours => 15811200 secondes
 +
 +On va jouer avec des périodes de 6 heures.\\
 +Donc:
 +  6 heures => 21600 secondes
 +En "heartbeat" cela devient:
 +  21600 / 300 => 72
 +
 +Pour couvrir 183 jours, il faudra donc:
 +  15811200 / ( 300 * 72 ) => 732
 +
 +Bien. Cela devient comme parametre:
 +
 +  RRA:AVERAGE:0.5:72:732
 +
 +=== 24 mois ===
 +
 +Là, on va taper dans 1 valeur par jour ! parce 24 mois, ca fait 730 jours (environ).
 +
 +Donc, c'est trés simple:
 +
 +En "heartbeat" ca donne:
 +  24 heures => 86400 secondes
 +  86400 / 300 => 288
 +
 +  RRA:AVERAGE:0.5:288:730
 +
 +C'est émouvant.
 +
 +
 +==== En action ====
 +
 +  $ rrdtool create poubelle.rrd DS:temp:GAUGE:300:-80:+80 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:744 RRA:AVERAGE:0.5:72:732 RRA:AVERAGE:0.5:288:730
 +
 +  $ ls -la
 +  -rw-r--r-- 1 thierry thierry 29360 2008-08-17 23:59 poubelle.rrd
  
brouillon_rrd.1218930870.txt.gz · Dernière modification : 2008/08/16 23:54 de thierry