RRDTool – Round Robin Database

rrdtool

Bonjour à tous !!

Aujourd’hui petit article sur l’outil RRDTool.

Présentation

Le RRDTool est un petit utilitaire qui permet de gérer des données de façon cyclique. Vous allez me dire, mais pour quoi faire ? Et bien, pour stocker des données immédiates sur un période courte, en faire une moyenne, stocker le résultat dans une période plus grande et recommencer.

Ce n’est pas très clair… ok je l’avoue. Alors voici un petit schéma pour visualiser le principe.

Schéma RRD

 

 

 

 

 

 

 

Utilisation

Un peu de pratique pour bien assimiler.

Dans mon cas, j’utilise cette solution pour le suivi de trois sondes. (une pour l’humiditée et deux pour la température)

Je relève les mesures toutes les 5 mins que je place dans une première « table » qui garde les données pendant 3 heures. Ensuite une moyenne est faite qui est stockée dans une seconde table qui garde pendant 24 heures, puis 48 heures, une semaine, un mois, 3 mois et une année.

Voici le script pour créer les « tables »


#!/usr/bin/env bash

rrdtool create temperatures.rrd \
--start N \
--step 300 \
DS:tempext:GAUGE:1200:-40:50 \
DS:tempint:GAUGE:1200:-40:50 \
DS:humiint:GAUGE:1200:0:100 \
RRA:AVERAGE:0.5:1:2880 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:144:1500 \
RRA:AVERAGE:0.5:288:2000 \
RRA:MIN:0.5:1:600 \
RRA:MIN:0.5:6:700 \
RRA:MIN:0.5:24:775 \
RRA:MIN:0.5:144:1500 \
RRA:MIN:0.5:288:2000 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:144:1500 \
RRA:MAX:0.5:288:2000 \

Je ne vais pas détailler tout le script mais on peut voir les trois valeurs que je vais stocker ‘tempint’ ‘tempext’ et ‘humiint’. Avec pour valeur minimum -40 pour les températures, 0 pour l’humidité et pour valeur maximum 50 pour les températures et 100 pour l’humidité.

Après l’execution du script vous aurez un fichier temperatures.rrd qui sera votre base de données. Donc attention à ne pas le supprimer.

Graphique

Maintenant que nous avons des données, c’est bien mais on en fait quoi ? Et bien l’intérêt de RRDTool est sa création de graph.

Pour se faire une petite ligne de commande, que l’on pourra mettre dans un cron pour un rafraichissement auto.


rrdtool graph /home/pi/StationMeteo/temperature3h.png -a PNG\
--start now-3h --title="Temperature 3h" \
--vertical-label "Deg C" \
'DEF:probe1=/home/pi/StationMeteo/temperatures.rrd:tempext:AVERAGE' \
'LINE1:probe1#ff0000:Temperature Exterieur' \
'GPRINT:probe1:LAST:Temperature \:%2.1lf C'

Petite explication : On appelle la fonction ‘graph’ de RRDTool qui va créer un fichier png appelé temperature3h.png qui prendra les valeurs des 3 dernières heures de la sonde ‘tempext’.

Résultat :

RRDTool graph

 

 

 

 

Et voilà !!

Il existe d’autre solution pour avoir des graphique plus ‘jolie’ 😉 comme ceci StationMeteo

Je ferais un article complet sur cette petit station prochainement.

Laisser un commentaire