Influxdb: le métrologie facile¶
la métrologie consiste à prélever de façon régulière dans le temps une information. L’enjeux cruciale est d’avoir :
- une base de donnée qui puisse traiter de gros volume de donnée, donnée qui reste simple (clé/valeur par temps)
- un outil de visualisation
Il existe pour cela un module nommé influxdb sponsorisé par google.
Installation de influxdb¶
Warning
il n’existe pas de code compiler pour windows
Pour une machine en 64-bit
# for 64-bit systems
wget http://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb
dpkg -i influxdb_latest_amd64.deb
Pour une machine en 32-bit
# for 32-bit systems
wget http://s3.amazonaws.com/influxdb/influxdb_latest_i386.deb
dpkg -i influxdb_latest_i386.deb
Puis on démarre le service
/etc/init.d/influxdb start
On peut maintenant ce rendre sur l’interface web http://127.0.0.1:8083/ afin de créer, d’administrer notre nouvelle base de donnée métrique
Note
par défaut le login est root et le password root
HTTP API fonctionne sur le port 8086.
Api Python influxdb-python¶
Ce module permet notament d’intégrer des valeurs dans notre base influxdb
apt-get install python-pip
pip install influxdb
exemple d’utilisation
from influxdb import client as influxdb
import time
import math
db = influxdb.InfluxDBClient(host='127.0.0.1',
port=8086,
username='root',
password='root',
database='test')
i = 0
while True:
data = [
{"points":[[math.cos(math.radians(i)),math.sin(math.radians(i))]],
"name":"math",
"columns":["cos", "sin"]
}
]
db.write_points(data)
i = i +1
print(i)
time.sleep(1)
avec ce programme nous créons la table math contenant par unités de temps 2 informations:
- cos
- sin
Comme on peut le voir on intègre pas la notion de temps, elle correspond par défaut au moment de l’écriture.
Dans l’interface graphique on peut visualier les résultats ainsi
select * from math
select sin from math
avec un regroupement et une notion de moyenne
select mean(sin) from math
group by time(30s) where time > now() - 1d
Utilisation de Grafana¶
Grafana est un outil web qui permet simplement de visualiser les données métriques
l’installation est assez simple
apt-get install apache2
wget http://grafanarel.s3.amazonaws.com/grafana-1.9.1-rc1.tar.gz
tar xzvf grafana-1.9.1-rc1.tar.gz
mv grafana-1.9.1-rc1 grafana
cd grafana
mv config.sample.js config.js
placer dans votre fichier config.js
datasources: {
influxdb: {
type: 'influxdb',
url: "http://192.168.65.133:8086/db/test",
username: 'root',
password: 'root',
},
grafana: {
type: 'influxdb',
url: "http://192.168.65.133:8086/db/grafana",
username: 'root',
password: 'root',
grafanaDB: true
},
},
Note
dans notre cas notre base s’appelle test
Warning
par défaut la zone de configuration des sources est commentée
Vous pouvez maintenant aller sur http://127.0.0.1/graphana pour utiliser l’outil et générer un magnifique tableau de bord