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