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