metrics-influxdb

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

License

License

Categories

Categories

Metrics Application Testing & Monitoring Monitoring
GroupId

GroupId

com.github.davidb
ArtifactId

ArtifactId

metrics-influxdb
Last Version

Last Version

1.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

metrics-influxdb
A reporter for metrics which announces measurements to an InfluxDB server.
Project URL

Project URL

https://github.com/davidB/metrics-influxdb
Source Code Management

Source Code Management

https://github.com/davidB/metrics-influxdb/

Download metrics-influxdb

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.davidb/metrics-influxdb/ -->
<dependency>
    <groupId>com.github.davidb</groupId>
    <artifactId>metrics-influxdb</artifactId>
    <version>1.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.davidb/metrics-influxdb/
implementation 'com.github.davidb:metrics-influxdb:1.1.0'
// https://jarcasting.com/artifacts/com.github.davidb/metrics-influxdb/
implementation ("com.github.davidb:metrics-influxdb:1.1.0")
'com.github.davidb:metrics-influxdb:jar:1.1.0'
<dependency org="com.github.davidb" name="metrics-influxdb" rev="1.1.0">
  <artifact name="metrics-influxdb" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.davidb', module='metrics-influxdb', version='1.1.0')
)
libraryDependencies += "com.github.davidb" % "metrics-influxdb" % "1.1.0"
[com.github.davidb/metrics-influxdb "1.1.0"]

Dependencies

runtime (2)

Group / Artifact Type Version
io.dropwizard.metrics : metrics-core jar 4.0.5
org.slf4j : slf4j-api jar 1.7.7

Project Modules

There are no modules declared in this project.

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.9.3'
 }

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(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();
...

Versions

Version
1.1.0
0.9.3
0.9.1
0.9.0
0.8.2