Browse Source

rrdb : first working code

master
tth 2 years ago
parent
commit
4447ed460e
8 changed files with 86 additions and 6 deletions
  1. +3
    -1
      .gitignore
  2. +5
    -4
      gnocchi/README.md
  3. +4
    -1
      influxdb/README.md
  4. +14
    -0
      rrdb/README.md
  5. +6
    -0
      rrdb/commun.sh
  6. +21
    -0
      rrdb/create.sh
  7. +19
    -0
      rrdb/getvalues.sh
  8. +14
    -0
      rrdb/insert.sh

+ 3
- 1
.gitignore View File

@ -12,7 +12,9 @@ doc/*.idx
doc/*.ilg
doc/*.ind
*/foo.dat
*/*.dat
rrdb/*.png

+ 5
- 4
gnocchi/README.md View File

@ -2,10 +2,11 @@
## 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
but also are dynamic and potentially multi-tenant.
Gnocchi takes all of that into account._
Bref, il faut essayer ce truc. Un de ces jours...

+ 4
- 1
influxdb/README.md View File

@ -12,7 +12,10 @@ purpose-built platform that InfluxData provides._
# 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.
Projet ambitieux ? Non, la suite sera bien pire.


+ 14
- 0
rrdb/README.md View File

@ -6,11 +6,25 @@ loin d'être évidente pour les newbies.
La lecture de la manpage `rrdtutorial` est indispensable.
https://oss.oetiker.ch/rrdtool/tut/rrd-beginners.en.html
## 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 ?
Trouver une interface en C pour faciliter la vie des gens.


+ 6
- 0
rrdb/commun.sh View File

@ -0,0 +1,6 @@
#
# commun definitions for rrdb tests
#
export RRDB=$HOME/TMP/tests.rrd

+ 21
- 0
rrdb/create.sh View 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
- 0
rrdb/getvalues.sh View 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
- 0
rrdb/insert.sh View 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…
Cancel
Save