To the extent possible under law, Novaquark has waived all copyright and related or neighboring rights to this work.
- 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.
- slf4j-api for logging.
- metrics-core, to provide, if you use InfluxdbReporter.
dependencies { compile 'com.github.davidb:metrics-influxdb:0.9.3' }
repositories { maven { url "https://jitpack.io" } } dependencies { compile 'com.github.davidb:metrics-influxdb:-SNAPSHOT' }
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(new HttpInfluxdbProtocol("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
final InfluxdbReporter reporter = InfluxdbReporter .forRegistry(registry) .protocol(new HttpInfluxdbProtocol("influxdb-server", 8086, "admin", "53CR3TP455W0RD", "metrics")) .v08() .build(); ...