112 lines
2.9 KiB
TeX
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 ?
|
||
|
|