InfluxDB: Difference between revisions
| Line 186: | Line 186: | ||
==Dashboard avec Influga== |
==Dashboard avec Influga== |
||
Installez |
Installez influga |
||
<pre> |
<pre> |
||
sudo npm install -g influga |
sudo npm install -g influga |
||
</pre> |
</pre> |
||
Editez la configuration dans influga-config.json |
|||
<pre> |
|||
{ |
|||
"dashboardDbPath": "./db/influga.db", |
|||
"host": "localhost", |
|||
"port": 8086, |
|||
"database": "mydb", |
|||
"username": "root", |
|||
"password": "root" |
|||
} |
|||
</pre> |
|||
Lancez le service |
|||
<pre> |
|||
influga start -c influga-config.json |
|||
</pre> |
|||
Naviguez sur http://localhost:8089/ et configurez le panel avec |
|||
<pre> |
|||
select star, like from log_lines |
|||
</pre> |
|||
==Dashboard avec [[Grafana]]== |
==Dashboard avec [[Grafana]]== |
||
Revision as of 21:12, 30 October 2014
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
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 (les fonctions d'agrégat sont : count(), min(), max(), mean(), mode(), median(), distinct(), percentile(), histogram(), derivative(), sum(), stddev(), first(), last()).
select sum(like) as number_of_likes, mean(star) as mean_of_star from log_lines group by time(1m) where time > now() - 1d
select star, sum(like) as number_of_likes from log_lines group by star, time(1m) where time > now() - 1d
Remplissage des intervalles vides de points (avec fill())
select count(like) from events group by time(1h) fill(0) where time > now() - 24h
Fusion (merge) de séries
select count(type) from user_events merge admin_events group by time(10m)
Attention, cette requête n'est pas un produit cartésien (SQL)
select * from log_lines, log_cpu;
Jointure entre 2 séries
select errors_per_minute.value / page_views_per_minute.value as error_rate_per_minute. from errors_per_minute inner join page_views_per_minute
Création d'un Requêtes continues
select count(star) from log_lines group by time(10m), star into log_lines.count_per_star.10m
select * from log_lines.count_per_star.10m
drop continuous query <id>
Supprimez les points de toutes les séries temporelles dont la date est antérieure de 24 heures.
delete from /.*/ where time < now() - 24h select * from /.*/
Suppression d'une série
drop series log_lines
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"
Administration
create a database
curl -X POST 'http://localhost:8086/db?u=root&p=root' -d '{"name": "site_development"}'
drop a database
curl -X DELETE 'http://localhost:8086/db/site_development?u=root&p=root'
Autre : http://influxdb.com/docs/v0.8/api/administration.html
Dashboard avec Influga
Installez influga
sudo npm install -g influga
Editez la configuration dans influga-config.json
{
"dashboardDbPath": "./db/influga.db",
"host": "localhost",
"port": 8086,
"database": "mydb",
"username": "root",
"password": "root"
}
Lancez le service
influga start -c influga-config.json
Naviguez sur http://localhost:8089/ et configurez le panel avec
select star, like from log_lines
Dashboard 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