Browse Source

rrdb : first working code

tth 1 year 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
12 12
 doc/*.ilg
13 13
 doc/*.ind
14 14
 
15
-*/foo.dat
15
+*/*.dat
16
+
17
+rrdb/*.png
16 18
 
17 19
 
18 20
 

+ 5
- 4
gnocchi/README.md View File

@@ -2,10 +2,11 @@
2 2
 
3 3
 ## blabla commercial
4 4
 
5
-
6
-
7
-_The problem that [Gnocchi](https://gnocchi.xyz/) solves is the storage and indexing of
8
-time series data and resources at a large scale.
5
+_The problem that [Gnocchi](https://gnocchi.xyz/) solves is the storage and
6
+indexing of time series data and resources at a large scale.
9 7
 This is useful in modern cloud platforms which are not only huge
10 8
 but also are dynamic and potentially multi-tenant.
11 9
 Gnocchi takes all of that into account._
10
+
11
+Bref, il faut essayer ce truc. Un de ces jours...
12
+

+ 4
- 1
influxdb/README.md View File

@@ -12,7 +12,10 @@ purpose-built platform that InfluxData provides._
12 12
 
13 13
 # On essaye ?
14 14
 
15
-Ok, c'est parti. On va écrire un injecteur en Perl. Puis enchainer sur
15
+Ok, c'est parti. Premier souci, la documentation est assez légère.
16
+
17
+
18
+On va tenter d'écrire un injecteur en Perl. Puis enchainer sur
16 19
 une visualisation dynamique des données en lancer de rayon.
17 20
 Projet ambitieux ? Non, la suite sera bien pire.
18 21
 

+ 14
- 0
rrdb/README.md View File

@@ -6,11 +6,25 @@ loin d'être évidente pour les newbies.
6 6
 
7 7
 La lecture de la manpage `rrdtutorial` est indispensable.
8 8
 
9
+https://oss.oetiker.ch/rrdtool/tut/rrd-beginners.en.html
10
+
9 11
 ## premier exemple
10 12
 
13
+Un petit peu de code fabriqué à la rache.
14
+
15
+- `create.sh`
16
+- `update.sh`
17
+- `getvalues.sh`
18
+
19
+Suffisant pour comprendre le principe général, mais très flou
20
+sur les détails.
11 21
 
12 22
 ## et après ?
13 23
 
24
+Trouver une interface en C pour faciliter la vie des gens.
25
+
26
+
27
+
14 28
 
15 29
 
16 30
 

+ 6
- 0
rrdb/commun.sh View File

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

+ 21
- 0
rrdb/create.sh View File

@@ -0,0 +1,21 @@
1
+#!/bin/bash
2
+
3
+#
4
+#	creating the test database
5
+#
6
+
7
+source ./commun.sh
8
+
9
+starttime=$(date +'%s')
10
+
11
+echo creating $RRDB at ${starttime}s since epoch
12
+
13
+rrdtool	create $RRDB			\
14
+	--start $starttime		\
15
+	--step 60			\
16
+	DS:value:GAUGE:150:0:10		\
17
+	RRA:AVERAGE:0.5:1:60
18
+
19
+
20
+
21
+		

+ 19
- 0
rrdb/getvalues.sh View File

@@ -0,0 +1,19 @@
1
+#!/bin/bash
2
+
3
+source ./commun.sh
4
+
5
+rrdtool fetch $RRDB LAST			|
6
+tr -d ':'					|
7
+awk	'
8
+	(!/nan/ && NF==2) { print $1, $2 }
9
+	' 					\
10
+			> toto
11
+
12
+gnuplot << __EOC__
13
+set term png size 800,600
14
+set output "graphe.png"
15
+plot "toto" with lines
16
+__EOC__
17
+
18
+rm toto
19
+

+ 14
- 0
rrdb/insert.sh View File

@@ -0,0 +1,14 @@
1
+#!/bin/bash
2
+
3
+source ./commun.sh
4
+
5
+ctime=$(date +'%s')
6
+value=$(cut -d ' ' -f 1 /proc/loadavg)
7
+
8
+# write value to a file
9
+echo ${ctime} ${value} | tee -a bar.dat
10
+
11
+# inject value in the rrdb file 
12
+rrdtool	update $RRDB ${ctime}:${value}
13
+
14
+

Loading…
Cancel
Save