ShijunK / metrics-influxdb

A reporter for metrics which announces measurements to an InfluxDB server.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CC0
To the extent possible under law, Novaquark has waived all copyright and related or neighboring rights to this work.

Build Status Bitdeli Badge

The library provide :

  • a lighter client than influxdb-java to push only series to an InfluxDB server.
  • A reporter for metrics which announces measurements.

The library provide a lighter client than influxdb-java to push only metrics.

Dependencies :

  • slf4j-api for logging.
  • metrics-core, to provide, if you use InfluxdbReporter.

Install:

 repositories {
        maven { url "https://jitpack.io" }
 }
 dependencies {
	        compile 'com.github.davidb:metrics-influxdb:-SNAPSHOT'
 }

Usage :

Using the Builder API and its defaults, it is easy to use InfluxdbReporter:

ScheduledReporter reporter = InfluxdbReporter.forRegistry(registry).build();
reporter.start(10, TimeUnit.SECONDS);

With the previous simple configuration, all defaults will be used, mainly:

  • protocol: HTTP
  • server: 127.0.0.1
  • port: 8086
  • authentication: none
  • database name: metrics
  • rates: converted to TimeUnit.SECONDS
  • duration: converted to TimeUnit.MILLISECONDS
  • idle metrics: do not report
  • influxdb protocol: v09 line protocol
  • ...

But you are free of course to define all settings by yourself :

final ScheduledReporter reporter = InfluxdbReporter.forRegistry(registry)
    .protocol(InfluxdbProtocols.http("influxdb-server", 8086, "admin", "53CR3TP455W0RD", "metrics"))
    .convertRatesTo(TimeUnit.SECONDS)
    .convertDurationsTo(TimeUnit.MILLISECONDS)
    .filter(MetricFilter.ALL)
    .skipIdleMetrics(false)
    .tag("cluster", "CL01")
    .tag("client", "OurImportantClient")
    .tag("server", serverIP)
    .transformer(new CategoriesMetricMeasurementTransformer("module", "artifact"))
    .build();
reporter.start(10, TimeUnit.SECONDS);

And if you are still using v08 influxdb you can use the deprecated old syntax as before

final InfluxdbHttp influxdb = new InfluxdbHttp("127.0.0.1", 8086, "dev", "u0", "u0PWD");
final InfluxdbReporter reporter = InfluxdbReporter
    .forRegistry(registry)
    .build(influxdb);
...

or the new one

final InfluxdbHttp influxdb = new InfluxdbHttp("127.0.0.1", 8086, "dev", "u0", "u0PWD");
final InfluxdbReporter reporter = InfluxdbReporter
    .forRegistry(registry)
    .v08(influxdb)
    .build();
...

About

A reporter for metrics which announces measurements to an InfluxDB server.

License:Creative Commons Zero v1.0 Universal


Languages

Language:Java 100.0%