Graphite reporter for Kafka Offset Monitor.
Scala
Latest commit b5a96c6 Sep 23, 2015 @adamdubiel adamdubiel Merge pull request #3 from pulsepointinc/graphitereporter-reconnect
bump dropwizard to 3.1.2 to avoid connection loss issues

README.md

kafka-offset-monitor-graphite

Plugin to KafkaOffsetMonitor tool reporting offset data to graphite via dropwizard metrics.

Building It

Currently KafkaOffsetMonitor is not available via public artifact repository, so before we build the plugin we need to build KafkaOffsetMonitor and publish it to maven local repo:

sbt publishM2

Now we can build the plugin:

sbt assembly

Running It

Check how to run KafkaOffsetMonitor and modify the command by adding a plugin assembly jar file to the classpath, and put graphite configuration properties into a pluginsArgs argument.

See original KafkaOffsetMonitor example command modified with graphite reporter plugin usage:

java -cp "KafkaOffsetMonitor-assembly-0.3.0-SNAPSHOT.jar:kafka-offset-monitor-graphite-assembly-0.1.0-SNAPSHOT.jar" \
     com.quantifind.kafka.offsetapp.OffsetGetterWeb \
     --zk zk-server1,zk-server2 \
     --port 8080 \
     --refresh 10.seconds \
     --retain 2.days \
     --pluginsArgs graphiteHost=graphite.host,graphitePort=2003,graphitePrefix=stats.kafka.offset_monitor

The pluginArgs used by kafka-offset-monitor-graphite are:

  • graphiteHost Graphite host (default localhost)
  • graphitePort Graphite reporting port (default 2003)
  • graphitePrefix Metrics prefix (default stats.kafka.offset.monitor)
  • graphiteReportPeriod Reporting period in seconds (default 30)
  • metricsCacheExpireSeconds Metrics cache TTL in mires (default 600). Offset metrics are stored in expiring cache and reported to Graphite periodically. If metrics are not updated they will be removed.