InfluxDB

From air
Jump to navigation Jump to search

http://influxdb.com/

https://github.com/influxdb/influxdb

open-source distributed time series database with no external dependencies.

(metrics, events, and analytics)

developped in Go language

Voir https://speakerdeck.com/pauldix/introducing-influxdb-an-open-source-distributed-time-series-database

Demo sur http://play.influxdb.com/ (source code)

InfluxDB @ AIR

Installation

http://influxdb.com/download/

On OS X

brew update
brew install influxdb

Démarrage

influxdb -config=/usr/local/etc/influxdb.conf

Naviguez sur http://localhost:8083/ username : root & password : root

Pensez à changer ces valeurs quand vous mettez influxdb en production

Premiers Pas

Via l'interface Web

Depuis l'interface web, Créez une base : mydb

Depuis Database > Explore Data

Depuis write point, Ajoutez un point dans la série temporelle log_lines

{ "line":"here's some useful log info from paul@influx.com", "like":1, "star": 5 }

puis un autre

{ "line":"here's another useful log info from paul@influx.com", "like":2, "star": 4 }

puis un autre

{ "line":"here's some useful log info from didier@donsez.com", "like":1, "star": 5 }

Exécutez les requêtes suivantes depuis read point:


La liste des séries temporelles

list series
select * from /.*/ limit 1


Les points de la série log_lines

select line from log_lines
select like, star from log_lines


Les deux points les plus récents

select * from log_lines limit 2;

Les points de la série log_lines dont la colonne line contient paul@influx.com

select line from log_lines where line =~ /paul@influx.com/

Les points de la série log_lines dont la colonne like est supérieure à 1

select line from log_lines where like > 1

Les points de la série log_lines des 24 dernières heures

select * from log_lines
where time > now() - 24h


Agrégat temporel

select sum(like) as number_of_likes, mean(star) as mean_of_star from log_lines 
group by time(1m)
where time > now() - 1d


Attention, cette requête n'est pas un produit cartésien (SQL)

select * from log_lines, log_cpu;

Supprimez les points de toutes les séries temporelles dont la date est antérieure de 24 heures.

delete from /.*/ where time < now() - 24h

Via l'interface REST

curl -G 'http://localhost:8086/db/mydb/series?u=root&p=root&pretty=true' --data-urlencode "q=select * from log_lines"

Avec Grafana

http://influxdb.com/docs/v0.7/ui/grafana.html

Téléchargez Grafana

Modifiez config.example.js avec

datasources: {
  'eu-metrics': {
    type: 'influxdb',
    url: 'http://localhost:8086/db/mydb',
    username: 'test',
    password: 'test',
  },
  'grafana': {
    type: 'influxdb',
    url: 'http://localhost:8086/db/grafana',
    username: 'test',
    password: 'test',
    grafanaDB: true
  },
},

et Sauvegardez dans config.js

Ouvrez index.html

Premières Requêtes

Node.js

Node-RED