hi PoAn CI0: We have to bump the version of ConsumerGroupDescribeRequest as well, so server can distinguish the new and old behavior.
CI1: the type of new filed is string, so I guess you plan to use `ConsumerGroupMember#useClassicProtocol` [0] flag to return either "classic" or "consumer", right? CI2: `MemberDescription` is used by `ShareGroupDescription` too, so the new filed protocol in shared group is always "shared", right? CI3: Could you consider adding a table to show the value of the protocol field in each case? Andrew has a beautiful table in KIP-1043 that lists all possible protocol names. [0] https://github.com/apache/kafka/blob/441a6d0b790f4a17b454caeea7588a6b90fbd9db/group-coordinator/src/main/java/org/apache/kafka/coordinator/group/modern/consumer/ConsumerGroupMember.java#L454 Best, Chia-Ping On 2024/11/19 15:45:16 PoAn Yang wrote: > Hi David, > > Thanks for the reminder. > > DJ4: Add related content to the KIP. > Bump validVersions in ConsumerGroupDescribeResponse to “0-1”. > Add a new field “Protocol” to ConsumerGroupDescribeResponse. > > Thanks, > PoAn > > > On Nov 19, 2024, at 3:57 PM, David Jacot <dja...@confluent.io.INVALID> > > wrote: > > > > Hi PoAn, > > > > DJ4: Could you please also include the required changes to the > > ConsumerGroupDescribed API in the public interface section? We basically > > need to bump the version, add the new field, etc. > > > > Thanks, > > David > > > > On Mon, Nov 18, 2024 at 5:40 AM PoAn Yang <yangp...@gmail.com> wrote: > > > >> Hi David, > >> > >> DJ4: Add a new field protocol to MemberDescription, > >> so the command line tool can show protocol information when users describe > >> members. > >> > >> If there is no further suggestion, I will start a vote thread today. > >> > >> Thanks, > >> PoAn > >> > >>> On Nov 15, 2024, at 11:50 PM, David Jacot <dja...@confluent.io.INVALID> > >> wrote: > >>> > >>> Hi, > >>> > >>> DJ2: Using "-" sounds good to me. > >>> > >>> DJ3: That seems reasonable to me. > >>> > >>> DJ4: Why not add it right now? I don't want to change the output of the > >>> tool too many times. > >>> > >>> Best, > >>> David > >>> > >>> On Fri, Nov 15, 2024 at 3:23 PM PoAn Yang <yangp...@gmail.com> wrote: > >>> > >>>> Hi David / Andrew, > >>>> > >>>> Thanks for review. Thanks Andrew for picking up kafka-share-groups.sh > >>>> implementation. > >>>> I will handle kafka-consumer-groups.sh. > >>>> > >>>> DJ3: After discussing with @Chia-Ping Tsai, we think that using new > >> format > >>>> is more clear. > >>>> > >>>> The new format will be like > >>>> > >> <topic-name1>:<partition-id1>,<partition-id2>;<topic-name2>:<partition-id1>,<partition-id2> > >>>> > >>>> Using colon(:) to concat topic name and partition IDs. > >>>> Using comma(,) to concat partition IDs within same topic name. > >>>> Using semicolon(;) to concat topic strings. > >>>> > >>>> AS3: Fix it with kafka-share-groups.sh. Thanks. > >>>> > >>>> If there is no further suggestion, I will start a vote thread next > >> Monday. > >>>> > >>>> Thanks, > >>>> PoAn > >>>> > >>>>> On Nov 14, 2024, at 9:05 PM, Andrew Schofield < > >>>> andrew_schofield_j...@outlook.com> wrote: > >>>>> > >>>>> Hi PoAn, > >>>>> DJ2: I was just going to comment that "-" would be a more appropriate > >>>> missing value, but > >>>>> you got there first. > >>>>> > >>>>> AS3: The examples for kafka-share-groups.sh include > >>>> kafka-consumer-groups.sh in the > >>>>> command line. > >>>>> > >>>>> If this is accepted in time, I'm happy to pick up the implementation of > >>>> the share groups > >>>>> part of this if it helps. > >>>>> > >>>>> Thanks, > >>>>> Andrew > >>>>> > >>>>> ________________________________________ > >>>>> From: Frank Yang <yangp...@gmail.com> > >>>>> Sent: 14 November 2024 10:48 > >>>>> To: dev@kafka.apache.org <dev@kafka.apache.org> > >>>>> Subject: Re: [DISCUSS] KIP-1099: Extend kafka-consumer-groups command > >>>> line tool to support new consumer group > >>>>> > >>>>> Hi David, > >>>>> > >>>>> Thanks for the review and suggestion! I would like to get this in AK > >> 4.0 > >>>> as well. I will do my best. > >>>>> > >>>>> DJ1: Update KIP to put GROUP-EPOCH and TARGET-ASSIGNMENT-EPOCH before > >>>> #MEMBERS. > >>>>> > >>>>> DJ2: I prefer to follow current missing column value “-“. (reference < > >>>> > >> https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L92 > >>>>> ) > >>>>> > >>>>> DJ3: Update KIP to use CURRENT-EPOCH CURRENT-ASSIGNMENT TARGET-EPOCH > >>>> TARGET-ASSIGNMENT. > >>>>> Remove GROUP-EPOCH. > >>>>> > >>>>> For assignment value, it follows current output (reference < > >>>> > >> https://github.com/apache/kafka/blob/18199028a672fd973ac37bf26316994babc2a6da/tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java#L413-L418 > >>> ). > >>>> I think the form of `topicid-partitionid` is more clear. > >>>>> If we would like to use this form, I will update both output in > >>>> kafka-consumer-groups.sh and kafka-share-groups.sh. > >>>>> > >>>>> DJ4: It looks like DescribeGroupsResponseData only has protocol type at > >>>> group level. > >>>>> Both DescribeGroupsResponseData and ConsumerGroupDescribeResponseData > >>>> don’t have protocol at member level. > >>>>> Could we use a followup to add it? > >>>>> > >>>>> DJ5: Update KIP to put LEADER-EPOCH before CURRENT-OFFSET. > >>>>> > >>>>> Thanks, > >>>>> PoAn > >>>>> > >>>>>> On Nov 14, 2024, at 3:43 PM, David Jacot <dja...@confluent.io.INVALID > >>> > >>>> wrote: > >>>>>> > >>>>>> Hi PoAn, > >>>>>> > >>>>>> Thanks for the KIP! I have a few minor comments/suggestions: > >>>>>> > >>>>>> DJ1: In the output of `--describe --verbose`, I would suggest putting > >>>>>> `GROUP-EPOCH` and `TARGET-ASSIGNMENT-EPOCH` before `#MEMBERS`. > >>>>>> DJ2: Continuing on the above, I assume that we will print out N/A for > >>>> the > >>>>>> fields not supported by classic groups. Is this correct? > >>>>>> DJ3: In the output of `--describe --members --verbose`, I wonder if we > >>>>>> should use the following order and terms: CURRENT-EPOCH > >>>> CURRENT-ASSIGNMENT > >>>>>> TARGET-EPOCH TARGET-ASSIGNMENT . I would remove the GROUP-EPOCH > >> because > >>>> it > >>>>>> is already in the group description. The value `(0)` used for the > >>>>>> assignment is incorrect. Here I suppose that we will print out the > >> list > >>>> of > >>>>>> partitions in the form of `topicid-partitionid`. > >>>>>> DJ4: Continuing on the above, I wonder if we should also add the > >>>> protocol > >>>>>> used `classic` or `consumer`. For context, it is possible to have > >>>> `classic` > >>>>>> members and `consumer` members in a `consumer` group during an online > >>>>>> upgrade from the classic protocol to the consumer protocol. Having > >> this > >>>>>> information may be handy for administrators. What do you think? > >>>>>> DJ5: In the output of `--describe --offsets --verbose`, I would > >> suggest > >>>>>> putting `LEADER-EPOCH` closer to `CURRENT-OFFSET`. > >>>>>> > >>>>>> It would be great if we could get this one in AK 4.0 as it changes the > >>>>>> output of the command. > >>>>>> > >>>>>> Thanks, > >>>>>> DJ > >>>>>> > >>>>>> On Fri, Nov 1, 2024 at 7:40 AM Frank Yang <yangp...@gmail.com> wrote: > >>>>>> > >>>>>>> Hi Sean / Andrew / Lianet, > >>>>>>> > >>>>>>> Thanks for all your review and suggestions. > >>>>>>> > >>>>>>> AS1, LM1, LM4: Change to add KIP-848 information when users give > >>>> —verbose > >>>>>>> option. > >>>>>>> —describe —verbose: shows group epoch and target assignment epoch. > >>>>>>> —describe —members —verbose: shows above information, member epoch, > >> and > >>>>>>> target assignment. > >>>>>>> > >>>>>>> AS2: Change to use MEMBER-EPOCH to align with KIP-848 definition. > >>>>>>> > >>>>>>> LM2: For classic group, it doesn’t have epoch, so I use Optional > >>>> fields in > >>>>>>> ConsumerGroupDescription. > >>>>>>> For share group, it relies on KIP-848. It must have epoch, so I use > >> int > >>>>>>> fields in ShareGroupDescription. > >>>>>>> > >>>>>>> LM3: Remove —state change. We can get group level information by > >>>> —describe > >>>>>>> —verbose. > >>>>>>> > >>>>>>> SQ1: Add LEADER-EPOCH when users give —describe —offsets —verbose. > >>>>>>> > >>>>>>> Thanks. > >>>>>>> PoAn > >>>>>>> > >>>>>>>> On Nov 1, 2024, at 5:08 AM, Lianet M. <liane...@gmail.com> wrote: > >>>>>>>> > >>>>>>>> Hello Frank, thanks for the KIP! A few comments: > >>>>>>>> > >>>>>>>> LM1. I strongly agree with Andrew's suggestion of moving this into a > >>>>>>>> --verbose option. I expect someone would only attempt to make sense > >> of > >>>>>>> the > >>>>>>>> epochs while debugging an issue, not while trying to view the group > >> or > >>>>>>>> member's info. (Also member-epoch makes more sense to me, even more > >>>> if we > >>>>>>>> end up agreeing in a --verbose). Related to both issues, my take is > >>>> that > >>>>>>>> whoever is close to the protocol will expect member-epoch, whoever > >> is > >>>> not > >>>>>>>> will probably won't even need to see the epochs at all. > >>>>>>>> > >>>>>>>> LM2. Why are the epochs defined as Optional (don't we expect to > >> always > >>>>>>> have > >>>>>>>> them? with 0 initially, defined on the broker side for the group > >> ones, > >>>>>>> and > >>>>>>>> client side for the member) > >>>>>>>> > >>>>>>>> LM3. Why is the KIP including the –state option in the proposed > >>>> changes? > >>>>>>> ( > >>>>>>>> > >>>>>>> > >>>> > >> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=327977411#KIP1099:Extendkafkaconsumergroupscommandlinetooltosupportnewconsumergroup---state > >>>>>>>> ). > >>>>>>>> I get that the output would change in that example, but it’s not > >>>> because > >>>>>>> of > >>>>>>>> any change to the –state option itself. It's because of the change > >>>>>>> proposed > >>>>>>>> to the –described (required with the --state), and the changes to > >>>>>>>> --describe are already explained above (seems confusing, got me > >>>> looking > >>>>>>> for > >>>>>>>> a change to the state filter which seemed unrelated). > >>>>>>>> > >>>>>>>> LM4. Group epoch and target assignment epoch are conceptually at the > >>>>>>> group > >>>>>>>> level. vs member epoch that lands at a member level. So wonder if we > >>>>>>> should > >>>>>>>> show them accordingly (ex. using the --verbose option) > >>>>>>>> –describe –verbose => shows group epoch and target assignment epoch > >>>>>>>> –describe –members –verbose => shows member epoch (along > >>>>>>>> with group epoch and target assignment epoch) > >>>>>>>> > >>>>>>>> Thanks! > >>>>>>>> > >>>>>>>> Lianet > >>>>>>>> > >>>>>>>> On Thu, Oct 31, 2024 at 7:30 AM Andrew Schofield < > >>>>>>>> andrew_schofield_j...@outlook.com> wrote: > >>>>>>>> > >>>>>>>>> Hi PoAn, > >>>>>>>>> Thanks for the KIP. I have a few comments. > >>>>>>>>> > >>>>>>>>> AS1: It seems to me that these new additions are most useful to > >>>> people > >>>>>>>>> trying to understand > >>>>>>>>> the progress of rebalancing in quite some detail. The information > >> is > >>>>>>>>> really not understandable > >>>>>>>>> for most users who do not have deep knowledge of KIP-848/932. > >>>>>>>>> > >>>>>>>>> As a result, I suggest for kafka-share-groups.sh that you add a > >>>>>>> --members > >>>>>>>>> --verbose option > >>>>>>>>> and only include the new information in the output for that option, > >>>>>>> rather > >>>>>>>>> than changing the > >>>>>>>>> non-verbose --members output. > >>>>>>>>> > >>>>>>>>> I also make a similar suggestion for kafka-consumer-groups.sh > >>>> --members > >>>>>>>>> and only add the > >>>>>>>>> new information for the --verbose output. > >>>>>>>>> > >>>>>>>>> AS2: I strongly suggest that you use MEMBER-EPOCH instead of > >>>>>>>>> CONSUMER-EPOCH. > >>>>>>>>> I think it's more confusing not following the terminology of the > >>>> KIPs. > >>>>>>> For > >>>>>>>>> one thing, > >>>>>>>>> we already have "member" in the admin client such as > >>>> MemberDescription. > >>>>>>>>> It's not a > >>>>>>>>> new term. > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> Andrew > >>>>>>>>> ________________________________________ > >>>>>>>>> From: PoAn Yang <pay...@apache.org> > >>>>>>>>> Sent: 25 October 2024 13:55 > >>>>>>>>> To: dev@kafka.apache.org <dev@kafka.apache.org> > >>>>>>>>> Subject: Re: [DISCUSS] KIP-1099: Extend kafka-consumer-groups > >> command > >>>>>>> line > >>>>>>>>> tool to support new consumer group > >>>>>>>>> > >>>>>>>>> Hi Lucas, > >>>>>>>>> > >>>>>>>>> Thanks for the review! > >>>>>>>>> > >>>>>>>>> 1) Yes, I add related change for kafka-share-groups.sh to the KIP. > >>>> Could > >>>>>>>>> you take a look? Thanks for the suggestion. > >>>>>>>>> > >>>>>>>>> 2) We use CONSUMER-ID as member ID. If we use MEMBER-EPOCH here, > >>>> users > >>>>>>> may > >>>>>>>>> confuse what is different between CONSUMER and MEMBER. > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> PoAn > >>>>>>>>> > >>>>>>>>> On 2024/10/23 13:28:17 Lucas Brutschy wrote: > >>>>>>>>>> Hi Frank, > >>>>>>>>>> > >>>>>>>>>> thanks for the KIP! > >>>>>>>>>> > >>>>>>>>>> 1) For consistency, should we do the same for > >>>>>>>>>> kafka-share-groups.sh, ShareGroupDescription, etc. ? Even if we do > >>>> not > >>>>>>>>>> implement it right now if the share group implementation may still > >>>> be > >>>>>>>>>> incomplete, it may make sense to include it in the KIP. > >>>>>>>>>> > >>>>>>>>>> 2) Why call it CONSUMER-EPOCH, not MEMBER-EPOCH? That would seem > >>>> more > >>>>>>>>>> consistent. > >>>>>>>>>> > >>>>>>>>>> Cheers, > >>>>>>>>>> Lucas > >>>>>>>>>> > >>>>>>>>>> On Wed, Oct 23, 2024 at 2:41 PM Frank Yang <yangp...@gmail.com> > >>>> wrote: > >>>>>>>>>> > >>>>>>>>>>> Hi all, > >>>>>>>>>>> > >>>>>>>>>>> I would like to kick off the discussion of KIP-1099. This KIP > >>>> enhances > >>>>>>>>> the > >>>>>>>>>>> kafka-consumer-groups tools to include state which is introduced > >> by > >>>>>>>>> KIP-848. > >>>>>>>>>>> > >>>>>>>>>>> KIP-1099: Extend kafka-consumer-groups command line tool to > >> support > >>>>>>> new > >>>>>>>>>>> consumer group - Apache Kafka - Apache Software Foundation > >>>>>>>>>>> < > >>>>>>>>> > >>>>>>> > >>>> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>> > >>>>>>>>>>> cwiki.apache.org > >>>>>>>>>>> < > >>>>>>>>> > >>>>>>> > >>>> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>> > >>>>>>>>>>> [image: favicon.ico] > >>>>>>>>>>> < > >>>>>>>>> > >>>>>>> > >>>> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>> > >>>>>>>>>>> < > >>>>>>>>> > >>>>>>> > >>>> > >> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1099%3A+Extend+kafka-consumer-groups+command+line+tool+to+support+new+consumer+group > >>>>>>>>>> > >>>>>>>>>>> > >>>>>>>>>>> Thank you, > >>>>>>>>>>> PoAn > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>> > >>>>>>> > >>>> > >>>> > >> > >> > >