Status
Current state: Under Discussion
Discussion thread: here
JIRA: here
Motivation
At present, it is impossible to perceive the Kafka version that the broker is running from the perspective of metrics. If multiple Kafka versions are deployed in a cluster due to various reasons, it is difficult for us to intuitively understand the version distribution.
So, I want to add a kafka version metric indicating the version of the current running kafka server, it can help us to perceive the mixed distribution of multiple versions, and to perceive the progress of version upgrade in the cluster in real time.
Public Interfaces
- add a kafka version metric for per broker: kafka.server:type=KafkaServer/BrokerServer,name=KafkaVersion
- description: A gauge metric, the value is the current running server version name.
- no tags.
Proposed Changes
When instantiating kafkaServer/BrokerServer, register `KafkaVersion` gauge metric, whose value is obtained by `VersionInfo.getVersion`. And remove all related metrics when kafkaServer/BrokerServer shutdown.
Compatibility, Deprecation, and Migration Plan
The new metric added to this kip will not have any impact on the existing behavior.