17.08.2016

INFLUXDB INTEGRATION

InfluxDB integration

InfluxDB is a very fast time series database written in Go language.

To start with this guide, please install InfluxDB from these binary packages.

Then we should enable graphite protocol emulation in configuration file: /etc/opt/influxdb/influxdb.conf As well enable batch for avoid metric loss under load, and add templates for converting graphite metrics to InfluxDB measurements, with its proper tags.

[[graphite]]
  enabled = true
  bind-address = ":2003"
  protocol = "tcp"
  consistency-level = "one"
  separator = "."

  batch-size = 5000 # will flush if this many points get buffered
  batch-timeout = "1s" # will flush at least this often even if we haven't hit buffer limit

  templates = [
    "fastnetmon.hosts.* app.measurement.cidr.direction.function.resource",
    "fastnetmon.networks.* app.measurement.cidr.direction.resource",
    "fastnetmon.total.* app.measurement.direction.resource"
  ]

And disable Graphite daemons if you use they before:

systemctl stop carbon-cache

And start InfluxDB:

systemctl restart influxdb

You will got web frontend on 8083 port and query API interface on 8086.

Then we need to enable metrics export in /etc/fastnetmon.conf configuration file:

graphite = on
graphite_host = 127.0.0.1
graphite_port = 2003
graphite_prefix = fastnetmon

And apply changes to configuration file:

systemctl restart fastnetmon

Finally you could query data from InfluxDB with CLI tool /opt/influxdb/influx:

Connected to http://localhost:8086 version 0.9.3-nightly-c2dbf16
InfluxDB shell 0.9.3-nightly-c2dbf16
> use graphite
Using database graphite
> show measurements
name: measurements
------------------
hosts
networks
total

>
> select mean(value) from networks where direction = 'incoming' and resource = 'bps' group by *
name: networks
tags: app=fastnetmon, cidr=10.20.30.40_24, direction=incoming, resource=bps
time      mean
----      ----
1970-01-01T00:00:00Z  408540.85148584365

Then you could install Grafana and try our nice predefined dashboards for FastNetMon