[ https://issues.apache.org/jira/browse/KAFKA-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14976519#comment-14976519 ]
Grant Henke commented on KAFKA-2588: ------------------------------------ Thanks for the feedback [~gwenshap]. I used the aggregation example as a way to try and clarify my point briefly, but perhaps it muddied the water. The only reason I bring it up is because I have seen a few people confused by what this metric represents. Let me try and explain my understanding of the Kafka model and if things still don't align we can leave this alone. Note: This discuses the model at a user/logical level ignoring Java class names and implementation details. In Kafka there are *topics* which are a _container_ that contains feeds of messages. Those topics have *partitions*. The partition is mainly a logical concept owned by a topic. There is no physical/real partition that can be owned by a broker. However, each partition has _n_ *replicas*, these replicas are are physically hosted by brokers and may be in-sync or out-of-sync (arguably not a replica anymore). Today, the logic that maps a physical replica to a logical partition is if the replica is the leader. Therefore, that is the closet thing to a partition that we can count on a per-broker basis. Otherwise describing how many partitions a broker has does not make much sense. Because topics have partitions not brokers. This is why my change does not eliminate any useful metrics, but essentially renames them to make their values more clear. Below is the metric names, what I expect to see and what I currently see: - replicaCount -- currently: does not exists -- with my change: added to contain what partitionCount used to. The count of replicas on that broker. - partitionCount -- currently: the count of replicas on that broker -- with my change: the count replicas be served on that broker (synonymous with leaderCount) - leaderCount -- this did not change but partitionCount also holds this value Based on your description above it looks like you expect partitionCount to represent the same thing I do: {quote} PartitionCount shows number of *partitions served* by the broker. {quote} Though based on my summary above, I would correct this part about leaders/followers to be: {quote} ...and since each -partition- *replica* can potentially become leader or follower... {quote} I hope this clarified my reasoning for the re-label of the metrics and why I think some users were confused. I apologize for being long winded. I wanted to be sure I was clear on my current understanding. Please don't hesitate to correct my mistakes. We can drop this if it still does not align with others perspectives. > ReplicaManager partitionCount metric should actually be replicaCount > -------------------------------------------------------------------- > > Key: KAFKA-2588 > URL: https://issues.apache.org/jira/browse/KAFKA-2588 > Project: Kafka > Issue Type: Bug > Components: core > Affects Versions: 0.8.2.1 > Reporter: Grant Henke > Assignee: Grant Henke > > The metrics "partitionCount" in the ReplicaManager actually represents the > count of replicas. > As an example if I have a cluster with 1 topic with 1 partitions and a > replication factor of 3. The metric (aggregated) would show a value of 3. > There is a metric called "LeaderCount" that actually represents the > "partitionCount". In my example above the metric (aggregated) would show a > value of 1. > We do need to consider compatibility of consuming systems. I think the most > simple change would be to: > - Adjust the "partitionCount" metric to be the same value as "LeaderCount" > - Add a "replicaCount" metric which contains the values "partitionCount" does > today > - Leave "LeaderCount" in for compatibility > Documentation will need to be updated as well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)