Versions Compared

Key

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

Table of Contents

Status

Current state: Under discussionVoting

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

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

...

Public Interfaces

Monitoring

NameTypeDescription
kafka.controller:type=KafkaController,name=ControlledShutdownBrokerCountIntegerThe number of brokers currently in controlled shutdown.
kafka.controller:type=KafkaController,name=BrokerRegistrationState.kafka-XInteger

A per-broker metric which displays the following values for the states:

  • 0 when the broker is unfenced
  • 1 when the broker is fenced
  • 2 when the broker is in controlled shutdown

This metric is removed when a broker is unregistered. This state is derived from the registration records contained in the metadata log.

kafka.controller:type=KafkaController,name=TimeSinceLastHeartbeatReceivedMs.kafka-XIntegerA per-broker metric which reports the time in milliseconds since the last heartbeat received by the controller. The maximum value of this metric is the heartbeat timeout limit. Only the active controller reports this metric since it's soft state contained in BrokerHeartbeatTracker.


Rationale

These metrics would be useful for monitoring the following use cases:

...

We will add junit tests to verify the new metrics.

Rejected Alternatives

NameTypeDescription
kafka.controller:type=KafkaController,name=LongestPendingStartupTimeMsLongThe duration, in milliseconds, of the longest pending broker startup.
kafka.controller:type=KafkaController,name=LongestPendingStartupBrokerStringThe broker ID of the longest pending broker startup.
kafka.controller:type=KafkaController,name=NumberOfBrokersInStartupIntegerThe number of brokers currently starting up.
kafka.controller:type=KafkaController,name=LongestPendingControlledShudownTimeMsLongThe duration, in milliseconds, of the longest pending broker controlled shutdown.
kafka.controller:type=KafkaController,name=LongestPendingControlledShutdownBrokerStringThe broker ID of the longest pending broker controlled shutdown.
kafka.controller:type=KafkaController,name=NumberOfBrokersInControlledShutdownIntegerThe number of brokers currently in controlled shutdown.

These duration metrics would rely on soft state, so they would be reset when controller failover occurs. This is a bit confusing, and the scope of these metrics is limited to startup and controlled shutdown scenarios. Instead, more general purpose metrics would be applicable across more use cases.

...