rrdb : first working code
This commit is contained in:
parent
2a2f7c735f
commit
4447ed460e
4
.gitignore
vendored
4
.gitignore
vendored
@ -12,7 +12,9 @@ doc/*.idx
|
|||||||
doc/*.ilg
|
doc/*.ilg
|
||||||
doc/*.ind
|
doc/*.ind
|
||||||
|
|
||||||
*/foo.dat
|
*/*.dat
|
||||||
|
|
||||||
|
rrdb/*.png
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
## blabla commercial
|
## blabla commercial
|
||||||
|
|
||||||
|
_The problem that [Gnocchi](https://gnocchi.xyz/) solves is the storage and
|
||||||
|
indexing of time series data and resources at a large scale.
|
||||||
_The problem that [Gnocchi](https://gnocchi.xyz/) solves is the storage and indexing of
|
|
||||||
time series data and resources at a large scale.
|
|
||||||
This is useful in modern cloud platforms which are not only huge
|
This is useful in modern cloud platforms which are not only huge
|
||||||
but also are dynamic and potentially multi-tenant.
|
but also are dynamic and potentially multi-tenant.
|
||||||
Gnocchi takes all of that into account._
|
Gnocchi takes all of that into account._
|
||||||
|
|
||||||
|
Bref, il faut essayer ce truc. Un de ces jours...
|
||||||
|
|
||||||
|
@ -12,7 +12,10 @@ purpose-built platform that InfluxData provides._
|
|||||||
|
|
||||||
# On essaye ?
|
# On essaye ?
|
||||||
|
|
||||||
Ok, c'est parti. On va écrire un injecteur en Perl. Puis enchainer sur
|
Ok, c'est parti. Premier souci, la documentation est assez légère.
|
||||||
|
|
||||||
|
|
||||||
|
On va tenter d'écrire un injecteur en Perl. Puis enchainer sur
|
||||||
une visualisation dynamique des données en lancer de rayon.
|
une visualisation dynamique des données en lancer de rayon.
|
||||||
Projet ambitieux ? Non, la suite sera bien pire.
|
Projet ambitieux ? Non, la suite sera bien pire.
|
||||||
|
|
||||||
|
@ -6,11 +6,25 @@ loin d'être évidente pour les newbies.
|
|||||||
|
|
||||||
La lecture de la manpage `rrdtutorial` est indispensable.
|
La lecture de la manpage `rrdtutorial` est indispensable.
|
||||||
|
|
||||||
|
https://oss.oetiker.ch/rrdtool/tut/rrd-beginners.en.html
|
||||||
|
|
||||||
## premier exemple
|
## premier exemple
|
||||||
|
|
||||||
|
Un petit peu de code fabriqué à la rache.
|
||||||
|
|
||||||
|
- `create.sh`
|
||||||
|
- `update.sh`
|
||||||
|
- `getvalues.sh`
|
||||||
|
|
||||||
|
Suffisant pour comprendre le principe général, mais très flou
|
||||||
|
sur les détails.
|
||||||
|
|
||||||
## et après ?
|
## et après ?
|
||||||
|
|
||||||
|
Trouver une interface en C pour faciliter la vie des gens.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
6
rrdb/commun.sh
Normal file
6
rrdb/commun.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#
|
||||||
|
# commun definitions for rrdb tests
|
||||||
|
#
|
||||||
|
|
||||||
|
export RRDB=$HOME/TMP/tests.rrd
|
||||||
|
|
21
rrdb/create.sh
Executable file
21
rrdb/create.sh
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# creating the test database
|
||||||
|
#
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
19
rrdb/getvalues.sh
Executable file
19
rrdb/getvalues.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./commun.sh
|
||||||
|
|
||||||
|
rrdtool fetch $RRDB LAST |
|
||||||
|
tr -d ':' |
|
||||||
|
awk '
|
||||||
|
(!/nan/ && NF==2) { print $1, $2 }
|
||||||
|
' \
|
||||||
|
> toto
|
||||||
|
|
||||||
|
gnuplot << __EOC__
|
||||||
|
set term png size 800,600
|
||||||
|
set output "graphe.png"
|
||||||
|
plot "toto" with lines
|
||||||
|
__EOC__
|
||||||
|
|
||||||
|
rm toto
|
||||||
|
|
14
rrdb/insert.sh
Executable file
14
rrdb/insert.sh
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./commun.sh
|
||||||
|
|
||||||
|
ctime=$(date +'%s')
|
||||||
|
value=$(cut -d ' ' -f 1 /proc/loadavg)
|
||||||
|
|
||||||
|
# write value to a file
|
||||||
|
echo ${ctime} ${value} | tee -a bar.dat
|
||||||
|
|
||||||
|
# inject value in the rrdb file
|
||||||
|
rrdtool update $RRDB ${ctime}:${value}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user