rrdb : improving doc and code

This commit is contained in:
tth 2019-01-03 17:05:55 +01:00
parent 8fd8381fc3
commit 5aa3f73daa
2 changed files with 70 additions and 6 deletions

View File

@ -68,7 +68,7 @@ par exemple si des algues\footnote{ou des pleurotes.} tentent de s'échapper.
Pour entreposer toutes ces valeurs numériques, il existe plusieurs Pour entreposer toutes ces valeurs numériques, il existe plusieurs
choix, et nous allons en évaluer quelques uns : choix, et nous allons en évaluer quelques uns :
\texttt{rrdb}\index{rrdb}, \texttt{rrdb}\index{rrdb} (page \pageref{rrdb}),
\texttt{influxdb}\index{influxdb} (page \pageref{influxdb}), \texttt{influxdb}\index{influxdb} (page \pageref{influxdb}),
\texttt{gnocchi}\index{gnocchi}... \texttt{gnocchi}\index{gnocchi}...
@ -100,6 +100,8 @@ de bonne efficacité.
Promis, on va en mettre ! Dès que ça marche\dots Promis, on va en mettre ! Dès que ça marche\dots
Premier exemple avec rrdb en page \pageref{rrdb}.
\subsection{Analyses} \subsection{Analyses}
Bla bla bla\dots Corrélations, toussa\dots Bla bla bla\dots Corrélations, toussa\dots
@ -114,7 +116,62 @@ Première tentative d'utilisation le lendemain du premier apéro 2019
du Tetalab\footnote{Jean-Yves, je vous demande de vous calmer !}. du Tetalab\footnote{Jean-Yves, je vous demande de vous calmer !}.
Je suis parti sur trois scripts shell, pour créer, mettre à jour et Je suis parti sur trois scripts shell, pour créer, mettre à jour et
exploiter l'enregistrement d'une valeur de type \textsc{gauge}. analyser les enregistrements d'une valeur de type \textsc{gauge}.
\subsection{Create}
\begin{lstlisting}
#!/bin/bash
source ./commun.sh
starttime=$(date +'%s')
echo creating $RRDB at ${starttime}s since epoch
rrdtool create $RRDB \
--start $starttime \
--step 60 \
DS:value:GAUGE:150:0:10 \
RRA:AVERAGE:0.5:1:60
\end{lstlisting}
\subsection{Update}
\index{rrdtool}
\begin{lstlisting}
#!/bin/bash
source ./commun.sh
ctime=$(date +'%s')
value=$(cut -d ' ' -f 1 /proc/loadavg)
# inject value in the rrdb file
rrdtool update $RRDB ${ctime}:${value}
\end{lstlisting}
\subsection{Analyze}
\begin{lstlisting}
#!/bin/bash
source ./commun.sh
tmpf="somevalues.dat"
rrdtool fetch $RRDB LAST |
tr -d ':' |
awk '
(!/nan/ && NF==2) { print $1, $2 }
' \
> ${tmpf}
# as an example, we are gnuploting our datas
gnuplot << __EOC__
set term png size 800,600
set output "graphe.png"
set grid
plot "${tmpf}" with lines
__EOC__
rm ${tmpf}
\end{lstlisting}
% ------------------------------------------------------------------- % -------------------------------------------------------------------
@ -123,7 +180,8 @@ exploiter l'enregistrement d'une valeur de type \textsc{gauge}.
La communication avec la bédédé se fait \textit{over HTTP}, un peu La communication avec la bédédé se fait \textit{over HTTP}, un peu
comme tous ces trucs de d'jeunz d'aujourd'hui\dots comme tous ces trucs de d'jeunz d'aujourd'hui\dots
Au programme : écriture d'un injecteur en Perl\index{Perl}. Au programme : écriture d'un injecteur en Perl\index{Perl}, en suivant
plus ou moins l'exemple de rrdb..
% ------------------------------------------------------------------- % -------------------------------------------------------------------

View File

@ -2,18 +2,24 @@
source ./commun.sh source ./commun.sh
tmpf="somevalues.dat"
rrdtool fetch $RRDB LAST | rrdtool fetch $RRDB LAST |
tr -d ':' | tr -d ':' |
awk ' awk '
(!/nan/ && NF==2) { print $1, $2 } (!/nan/ && NF==2) { print $1, $2 }
' \ ' \
> toto > ${tmpf}
#
# as an example, we are gnuploting our datas
#
gnuplot << __EOC__ gnuplot << __EOC__
set term png size 800,600 set term png size 800,600
set output "graphe.png" set output "graphe.png"
plot "toto" with lines set grid
plot "${tmpf}" with lines
__EOC__ __EOC__
rm toto rm ${tmpf}