DD2-monitor/doc/storages.tex
2019-02-26 11:18:46 +01:00

112 lines
2.9 KiB
TeX

% ============================================
%
% Various storages systems
%
% ============================================
\section{RRDB} \label{rrdb}
Première tentative d'utilisation le lendemain du premier apéro 2019
du Tetalab\footnote{Jean-Yves, je vous demande de vous calmer !}.
Je suis parti sur quelques scripts shell, pour créer, mettre à jour et
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}
Une fois la base créée, il faut bien la remplir.
Dans cet exemple, nous allons utiliser le \textit{load}
de notre Linux.
\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}
Nous allons essayer d'exploiter les données dûrement acquises
pendant les heures qui précèdent\dots
\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}
Il semble bien que l'utilisation de \texttt{fetch} ne soit pas
vraiment prévue pour ça, donc j'en arrive à la conclusion que
quelque chose m'échappe.
On va laisser ça en suspens pour le moment.
% -------------------------------------------------------------------
\section{InfluxDB} \label{influxdb}
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
Au programme : écriture d'un injecteur en Perl\index{Perl}, en suivant
plus ou moins l'exemple de rrdb..
Ceci dit, en Debian stable, on n'a que la version 1.0, qui ne
correspond plus trop à l'actualité. Et la \textit{current} semble
trop fatiguante à compiler pour ce soir, ni même pour ce week-end.
% -------------------------------------------------------------------
\section{Gnocchi} \label{gnocchi} \index{Gnocchi}
\texttt{pip install gnocchi[postgresql,ceph,keystone]}, finalement,
çe ne me donne pas trop envie. C'est du genre \textit{usinagaz}.
% -------------------------------------------------------------------
\section{Sqlite} \index{sqlite} \label{sqlite}
\textsf{À regarder de près}
Est-il possible de traiter des \textit{time series} en SQL\index{SQL} ?
Peut-on utiliser Sqlite depuis un programme en Perl\index{Perl} ?
Faut-il commencer à trouver un \textit{usecase} crédible ?
NodeJs\index{nodejs} peut-il lire du Sqlite ?