% ============================================
%
%	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 ?

