Graphite to influxdb, prototype of a proxy handling graphite input (TCP for now, with http api later), to insert them in a influxdb database.
You can add a yml config file to extract column from the graphite string.
It's a work in progress.
graphite sample :
do-vm123.cassandra.mykeyspace.mycolumnfamily.read_latency 5 1418286022
Conf yml :
patterns:
cassandra:
patterns:
- "^car[^.]+.cassandra.[^.]+.[^.]+.read_latency$"
columns:
ColumnFamily: 2
Keyspace: 3
The graphite string is exploded as an array and then included as columns.
The simple way :
go build -v
With docker :
docker run --rm -v "$(pwd)":/go/src/github.com/jbdalido/gtoi -w /go/src/github.com/jbdalido/gtoi golang:1.3 ls -alih /go/src/github.com/jbdalido/gtoi/
$ gtoi start --help
NAME:
start - Start daemon
USAGE:
command start [command options] [arguments...]
OPTIONS:
--host, -H '127.0.0.1:8086' Influxdb endpoint [$GTOI_HOST]
--user, -u 'root' Influxdb user [$GTOI_USER]
--password, -p 'root' Influxdb password [$GTOI_PASSWORD]
--db, -d 'testing' Influxdb DB [$GTOI_DB]
--listen, -l '0.0.0.0:9666' Listening interface and port [$GTOI_LISTEN]
--config, -c '/etc/gtoi/gtoi.yml' Pattern config file [$GTOI_PATTERNS]
--workers, -w '5' Number of connections to InfluxDB [$GTOI_WORKERS]
--pool '5000' TCP pool size [$GTOI_POOL]