Files
kafkaex-lag-exporter/README.md
2024-04-16 08:09:41 +02:00

1.9 KiB

KafkaExLagExporter

This project will collect Kafka consumer lag and provide them via Prometheus.

Metrics

Prometheus is a standard way to represent metrics in a modern cross-platform manner. KafkaExLagExporter exposes several metrics as an HTTP endpoint that can be readily scraped by Prometheus.

kafka_consumergroup_group_topic_sum_lag

Labels: cluster_name, group, topic, consumer_id, member_host

The sum of the difference between the last produced offset and the last consumed offset of all partitions in this topic for this group.

kafka_consumergroup_group_lag

Labels: cluster_name, group, partition, topic, member_host, consumer_id

The difference between the last produced offset and the last consumed offset for this partition in this topic partition for this group.

Start

docker run -ti --net="host" -e KAFKA_BROKERS=localhost:9093,localhost:9094,localhost:9095 -p 4000:4000 \
  lechindianer/kafkaex_lag_exporter:0.2.0

Now you can check the exposed metrics at http://localhost:4000.

Developing

To start the project locally:

KAFKA_BROKERS="localhost:9092" iex -S mix 

There is also a docker-compose file included which will start Kafka, serve Kowl (Web UI for Kafka) and start KafkaexLagExporter:

docker-compose up --build

Kowl is served at http://localhost:8080.

Tests

MIX_ENV=test mix test --no-start

Code style

Don't forget to check credo for code violations:

mix credo

This project also leverages the use of typespecs in order to provide static code checking:

mix dialyzer

Source is on Gitlab.

The initial project Kafka Lag Exporter was a huge inspiration for me creating my first real Elixir project. Thank you!