DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
| Table of Contents |
|---|
Status
Current state: "Under DiscussionAccepted"
Discussion thread: here [https://lists.apache.org/thread/80nvqwxpvpzoky3xkbycc0d5g9z6v9oq]
JIRA: KAFKA-17876
Motivation
The metrics were originally named in the `kafka.<COMPONENT>` format but were unexpectedly altered when we moved Java classes from the `kafka.server` package to the `org.apache.kafka.server` package as part of [commit](3.7).
Subsequent developers didn’t notice this change and began using the new package name as the `metricName`. The correct naming should actually revert to `kafka.<COMPONENT>`.
Vote thread: here
JIRA: Jira server ASF JIRA columnIds issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,customfield_12311032,customfield_12311037,customfield_12311022,customfield_12311027,priority,status,resolution columns key,summary,type,created,updated,due,assignee,reporter,Priority,Priority,Priority,Priority,priority,status,resolution serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-17876 Jira server ASF JIRA columnIds issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,customfield_12311032,customfield_12311037,customfield_12311022,customfield_12311027,priority,status,resolution columns key,summary,type,created,updated,due,assignee,reporter,Priority,Priority,Priority,Priority,priority,status,resolution serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key KAFKA-19150
Motivation
Kafka metrics have traditionally followed a consistent naming convention using the kafka.<COMPONENT> format. However, some inconsistencies were unintentionally introduced during recent refactorings:
- The metrics under org.apache.kafka.server:type=AssignmentsManager were originally named using the kafka.<COMPONENT> format. This changed unexpectedly when classes were moved from the kafka.server package to org.apache.kafka.server as part of this commit.
- Similarly, the org.apache.kafka.storage.internals.log:type=RemoteStorageThreadPool metric was initially intended to follow the same convention. However, an incorrect metric name was introduced during initialization in a later patch.
These changes went unnoticed, and subsequent users began using the new org.apache.kafka.<COMPONENT> pattern, diverging from the established convention.
This KIP proposes to standardize Kafka metric naming by reverting the following metrics to the correct kafka.<COMPONENT> format to ensure consistency across the system:
org.apache.kafka.server:type=AssignmentsManager→kafka.server:type=AssignmentsManagerorg.apache.kafka.storage.internals.log:type=RemoteStorageThreadPool→kafka.log.remote:type=RemoteStorageThreadPool
This change will align these metrics with the broader Kafka metrics ecosystem and avoid confusion for users and tooling that rely on consistent naming
...
.
Public Interface
org.apache.kafka.storage.internals.log.RemoteStorageThreadPoolorg.apache.kafka.server.log.remote.storage.RemoteStorageMetricsorg.apache.kafka.server.AssignmentsManager
Proposed Changes
...
Introduce new metrics, consistent with other Kafka metrics.
This change will impact external monitoring systems that rely on the old metric name; corresponding updates will be required.
Deprecate the following metrics
- org.apache.kafka.storage.internals.log:type=RemoteStorageThreadPool.RemoteLogReaderTaskQueueSize
- org.apache.kafka.storage.internals.log:type=RemoteStorageThreadPool.RemoteLogReaderAvgIdlePercent
- org.apache.kafka.server:type=
...
- AssignmentsManager.QueuedReplicaToDirAssignments
Introduce following new metric:
- kafka.log.remote:type=RemoteStorageThreadPool.RemoteLogReaderAvgIdlePercent
- kafka.log.remote:type=RemoteStorageThreadPool.RemoteLogReaderTaskQueueSize
- kafka.server:type=
...
- AssignmentsManager.QueuedReplicaToDirAssignments
This change will impact external monitoring systems that rely on this metric, and corresponding modifications will be needed to support the new name.the old metric name; corresponding updates will be required.
Due to
Compatibility, Deprecation, and Migration Plan
- We will add a deprecated annotation on following constant
- `RemoteStorageMetrics#REMOTE_LOG_READER_TASK_QUEUE_SIZE_METRIC`
- `RemoteStorageMetrics#REMOTE_LOG_READER_AVG_IDLE_PERCENT_METRIC`
- `AssignmentsManager#QUEUED_REPLICA_TO_DIR_ASSIGNMENTS_METRIC`
- Update the Kafka documentation to note MBean will be replaced
- `org.apache.kafka.storage.internals.log:type=RemoteStorageThreadPool.RemoteLogReaderTaskQueueSize`
- `org
- .apache.kafka.storage.internals.
- log:type=
- RemoteStorageThreadPool.RemoteLogReaderAvgIdlePercent`
- `org.apache.kafka.server:type=AssignmentsManager
- .QueuedReplicaToDirAssignments`
- Register folowing new metrics
- `kafka.log.remote:type=RemoteStorageThreadPool.RemoteLogReaderTaskQueueSize`
- `kafka.log.remote:type=RemoteStorageThreadPool.RemoteLogReaderAvgIdlePercent`
- `kafka.server:type=
Test Plan
- AssignmentsManager.QueuedReplicaToDirAssignments`
- Delete following all usage in code base at the Kafka 5.0
- `RemoteStorageMetrics#REMOTE_LOG_READER_TASK_QUEUE_SIZE_METRIC`
- `RemoteStorageMetrics#REMOTE_LOG_READER_AVG_IDLE_PERCENT_METRIC`
- `AssignmentsManager#QUEUED_REPLICA_TO_DIR_ASSIGNMENTS_METRIC`
Test Plan
- Add new tests to verify the new metric is correctly registered and behaves as expected.
- Ensure backward compatibility by verifying deprecated metric behavior until removal.
...
Rejected Alternatives
n/a