Overview/Readme
Verspätung is a small utility which aims to help identify delay of Kafka consumers.
Verspätung monitors the topics and their latest offsets by talking to Kafka, it will also keep track of how far along consumers are by monitoring the offsets that they have committed to Zookeeper. Using both of these pieces of information, Verspätung computs the delta for each of the consumer groups and reports it to statsd.
Using
% java -jar verspaetung-*-all.jar --help usage: verspaetung -d,--delay <DELAY> Seconds to delay between reporting metrics to the metrics receiver (defaults: 5s) -H,--statsd-host <STATSD> Hostname for a statsd instance (defaults to localhost) -n,--dry-run Disable reporting to a statsd host -p,--statsd-port <PORT> Port for the statsd instance (defaults to 8125) --prefix <PREFIX> Prefix all metrics with PREFIX before they're reported (e.g. PREFIX.verspaetung.mytopic) -s,--storm Watch Storm KafkaSpout offsets (under /kafka_spout) -x,--exclude <EXCLUDES> Regular expression for consumer groups to exclude from reporting (can be declared multiple times) -z,--zookeeper <HOSTS> Comma separated list of Zookeeper hosts (e.g. localhost:2181)
Running Verspätung is rather easy, by default the daemon will monitor the
standard Kafka high-level consumer offset path of /consumers
and start
reporting deltas automatically.
Developing
Useful links
Hacking Verspätung
Verspätung is a Groovy-based application which is built with Gradle. As such, if you are already familiar with these tools you should be able to find your way around the project with relative ease.
A quick primer on what tasks are available:
-
Running tests:
./gradlew check
-
Running the app locally:
./gradlew run -PzookeeperHosts=localhost:2181
-
Building the app for distribution:
./gradlew assemble
Releasing Verspätung
Note
|
This is mostly meant for the developer team. |
Currently releases can be produced by simply pushing a Git tag to this GitHub repository. This will cause Travis CI to build and test the tag, which if it is successful, will automatically publish to Bintray.