Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Status

Current state: Under Discussion Voting in progress

Discussion thread: https://lists.apache.org/thread/z4o5093zqxmc18nzb74vyhvb1hb399v4

Vote thread: https://lists.apache.org/thread/jxf789v0kdpvsb9wsosghh57odkksxt7

JIRA:

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyKAFKA-18088

...

Metric NameTypeDescription
paused-partitionsGauge (Integer)The current number of partitions that have been paused by the user via Consumer.pause() .
paused-partitions-rateRateThe per-second rate of Consumer.pause()  calls.
paused-partitions-totalCumulativeCountThe total cumulative number of Consumer.pause()  calls.
paused-partitions-duration-seconds-maxGauge (Long)The maximum duration in seconds that any partition has been paused. Returns -1 if no partition is currently paused.

consumer-fetch-manager-metrics

...

Metric NameTypeDescription
paused-partitionspartitionGauge (Integer)Whether this partition is currently paused. Returns 1  if paused, 0  if not paused.
paused-partitionspartition-duration-secondsGauge (Long)The time in seconds since this partition was paused. Returns -1  if the partition is not currently paused.
paused-partitionspartition-rateRateThe per-second rate of Consumer.pause()  calls for this partition.
paused-partitionspartition-totalCumulativeCountThe total cumulative number of Consumer.pause()  calls for this partition.

...

Currently, each partition's internal state tracks whether it is paused with a simple boolean flag. To support the paused-partitions-duration-seconds  metric, this KIP adds a timestamp that records when the partition was paused. The timestamp is set when pause()  is called, cleared (reset to -1) when resume() is called, and also reset to -1 cleared on partition reassignment regardless of prior pause status. This ensures that a partition re-assigned to the same consumer after a rebalance starts with a clean pause state.

consumer-coordinator-metrics

A paused-partitions / paused-partitions gauge and -duration-seconds-max  gauges and paused-partitions-rate / paused-partitions-total sensors are registered at coordinator level. When queried, this gauge computes these gauges compute the current count of paused partitions and max paused duration by reading from the consumer's subscription state. Sensor metrics are updated on each each pause() call, incrementing the cumulative count and contributing to the rate calculation.

consumer-fetch-manager-metrics

The paused-partitionspartition / paused-partitionspartition-duration-seconds gauges and paused-partitionspartition-rate / paused-partitionspartition-total sensors are registered per partition in the fetch manager metrics, alongside the existing per-partition lag and lead metrics. They follow the same lifecycle:

...