linkedin / linkedin/Burrow

Detecting stopped low throughput (Kafka Streams) consumer in reasonable time

Open
#535 1 comment 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
4k
Forks
818
Avg merge
1h 14m
Merged PRs (30d)
1

Description

Detecting a stopped consumer that is not commiting regularly in a reasonable time is problematic. This is particularly problematic in Kafka Streams applications with low/spiky throughput input topics. Kafka Streams Applications do not allow configuring `enable.auto.commit` on the consumer to `true` in order to provide their transactional guarantees ([src](https://github.com/apache/kafka/blob/2.2.0/streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java#L115-L118)). That means there is no trivial way to guarantee regular commit intervals apart from explicitly generating more events in the input topics (read keepalive).

This has already been discussed in #303 and there has been a fix for false positives but nothing addressing false negatives. A possible solution would be updating consumer lag status based on the broker offset instead of the consumer group offset would be really helpful in monitoring Streams applications.

Is there anything planned in this direction? Would a PR implementing this (behind a config toggle) potentially be merged or are there other suggestions how to fix this problem?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the discussion in #303 and the linked Kafka StreamsConfig source to understand the existing false-positive fix and commit constraints. The issue does not identify a Burrow file, test, or entry point; first clarify whether broker-offset lag detection is the accepted direction, then define the configuration toggle and how successful detection of stopped low-throughput consumers will be verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kafka
Domain
observability, stream-processing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.