Skip to content

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

License

Notifications You must be signed in to change notification settings

hsqlu/metrics-influxdb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Build Status Bitdeli Badge Download

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:

Released

 dependencies {
	compile 'com.github.davidb:metrics-influxdb:0.8.2'
 }

Dev

 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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%