Versions Compared

Key

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

...

NameTypeDescription
kafka.server:type=MetadataLoader,name=FinalizedLevel,featureName=XIntegerThe finalized value of the feature level for a feature named "X".
kafka.controllerserver:type=KafkaControllerNodeMetrics,name=MinimumSupportedLevel,featureName=XIntegerThe minimum supported feature level for a feature named "X" on the controllernode.

kafka.

controller

server:type=

KafkaController

NodeMetrics,name=MaximumSupportedLevel,featureName=X

IntegerThe maximum supported feature level for a feature named "X" on the controller.
kafka.server:type=broker-metadata-metrics,name=minimum-supported-feature-level,featureName=XIntegerThe minimum supported feature level for a feature named "X" on the broker.

kafka.server:type=broker-metadata-metrics,name=maximum-supported-feature-level,featureName=X

IntegerThe maximum supported feature level for a feature named "X" on the brokernode.

The FinalizedLevel  metric will report the finalized feature level for each production feature. If the feature level is not set, the metric will return a value of 0, since that means the feature is not enabled. This metric should still reside in the MetadataLoader metric group because its value is derived from the metadata log's feature records.

MinimumSupportedLevel  and MaximumSupportedLevel  are metrics whose values are dependent only on the software version being run, so it seems appropriate to define a new metric type to house these sorts of metrics going forward (release version, commit hash, etc.).

Compatibility, Deprecation, and Migration Plan

...

We will add junit tests to verify the new metrics.

...

Alternatives

Running kafka-feature describe  on every node is one way to track feature level upgrades/downgrades, but it is not straightforward to monitor since it is not a metric.

This KIP discusses the above approach: KIP-1160: Enable returning supported features from a specific broker