#kafka #cli #topic #metrics #analyzer #content #getting

app kafka-topic-analyzer

An analyzer for getting metrics about the contents of a Apache Kafka topic

5 releases (3 breaking)

Uses old Rust 2015

0.4.0 Nov 2, 2018
0.3.1 Apr 25, 2018
0.3.0 Apr 21, 2018
0.2.0 Apr 14, 2018
0.1.0 Apr 14, 2018

#19 in #getting

21 downloads per month

MIT license

275KB
698 lines

Kafka Topic Analyzer

Build Status Current version on crates.io

A CLI tool that gathers statistics about a Apache Kafka topic by reading it from beginning to end and counting various metrics.

Usage

$> ./kafka-topic-analyzer -h
     Kafka Topic Analyzer

     USAGE:
         kafka-topic-analyzer [FLAGS] --bootstrap-server <BOOTSTRAP_SERVER> --topic <TOPIC>

     FLAGS:
         -c, --count-alive-keys    Counts the effective number of alive keys in a log compacted topic by saving the state for
                                   each key in a local file and counting the result at the end of the read operation.A key is
                                   'alive' when it is present and has a non-null value in it's latest-offset version
         -h, --help                Prints help information
         -V, --version             Prints version information

     OPTIONS:
         -b, --bootstrap-server <BOOTSTRAP_SERVER>    Bootstrap server(s) to work with, comma separated
         -t, --topic <TOPIC>                          The topic to analyze

Example output

Screenshot from a terminal that shows an example of the output

Installation

By now, the only way of installing it is building it from source or via cargo install kafka-topic-analyzer. In both cases you need to have the rust toolchain installed via http://rustup.rs/.

Dependencies

librdkafka

When installed from source, the binary can build librdkafka as part of the dependency resolution process. Please see the rdkafka-rust dependency documentation for the detailed requirements.

The rdkafka-rust dependency exports a feature flag, which enables dynamic linking of the librdkafa dependency.

You can compile this project with cargo build --features "dynamic_linking" in order to use the shared library instead of building it with the dependencies.

Dependencies

~22–32MB
~417K SLoC