Générer un graphique des statistiques réseau adhérent·e FDN

Il est possible aux adhérent·e·s FDN de télécharger un fichier rrd contenant les statistiques d'une ligne.
Ce fichier est disponible dans l'espace adhérent·e, section "Statistiques réseau" du menu "Informations techniques".

On peut à partir de ce fichier générer un graphique grâce à l'outil RRDtool.

La commande utilisée par le SI FDN

Le SI FDN utilise un script Perl pour générer ce graphique, dont les sources sont disponibles ici :

https://git.fdn.fr/adminsys/si/-/blob/main/cgi/adh/adh-statimg.cgi?ref_type=heads#L333

En bash, la commande pour générer un graphique similaire est la suivante (ici le nom de fichier en entrée est 'fichier.rrd', penser à adapter cette valeur) :

rrdtool graph out.png --imgformat=PNG  --start=-604800 --end=-1800  --title='Traffic' --rigid  --base=1000  \
--height=240  --width=1000  --alt-autoscale-max  --lower-limit=0  --vertical-label='bits par secondes' \
DEF:i1='fichier.rrd':traffic_in:AVERAGE \
DEF:o1='fichier.rrd':traffic_out:AVERAGE \
CDEF:cdefa=i1,8,* \
CDEF:cdefe=o1,8,* \
CDEF:mx=0,0,EXC,i1,UN,0,i1,IF,+,EXC,o1,UN,0,o1,IF,+,MAX,8,* \
VDEF:pct=mx,95,PERCENT \
AREA:cdefa#00CF00:'Entrée' \
GPRINT:cdefa:LAST:' Courant\:%8.2lf %s' \
GPRINT:cdefa:AVERAGE:'Moyenne\:%8.2lf %s' \
GPRINT:cdefa:MAX:'Maximum\:%8.2lf %s' \
LINE1:cdefe#002A97:'Sortie' \
GPRINT:cdefe:LAST:'Courant\:%8.2lf %s' \
GPRINT:cdefe:AVERAGE:'Moyenne\:%8.2lf %s' \
GPRINT:cdefe:MAX:'Maximum\:%8.2lf %s' \
LINE1:pct#FF0000:'95e    ' \
GPRINT:pct:'95e centile\:%8.2lf %s'

Cette commande génère un fichier png "out.png" de ~240x1000 pixels, dans l'interval temporel -604800 secondes (une semaine dans le passé) à -1800 (30 minutes dans le passé).

Les paramètres sur lesquels on voudra éventuellement jouer pour personnaliser/améliorer le graphique résultant sont les suivants :

Bornes d'intervals usuels

Les bornes d'intervals suivantes sont utilisées par le script du SI :

* quotidien : -86400, -300 
* hebdomadaire : -604800, -1800
* mensuel : -2678400, -7200
* annuel : -33053184, -86400

Le calcul est simple, on multiplie les secondes par le nombre de minutes, heures, jour, etc. Exemple pour 4 jours : 60s * 60m * 24h * 4j qui donne 345600 secondes.

Ne pas oublier le signe mathématique '-' (moins) devant le nombre (on regarde dans le passé dans la plupart des cas).