Current state: "Draft"
Discussion thread: here
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
DescribeGroups protocol v1 currently returns this information for each consumer group:
members(only a member summary is returned per member that misses some useful member info too)
Additional info exist or can be derived in a
GroupMetadata object on the server side, some of which could be useful if exposed via the
DescribeGroups protocol. Here are some examples:
Enhancing the protocol with some of this additional info means improving the existing tools that make use of it. For example, using this additional info, the consumer group command's
--describe output will provide more information about each consumer group to help with understanding the group behavior, its monitoring, troubleshooting, etc.
This is the latest version (v1) of
DescribeGroups Request (Version: 1) => [group_ids] group_ids => STRING DescribeGroups Response (Version: 1) => throttle_time_ms [groups] throttle_time_ms => INT32 groups => error_code group_id state protocol_type protocol [members] error_code => INT16 group_id => STRING state => STRING protocol_type => STRING protocol => STRING members => member_id client_id client_host member_metadata member_assignment member_id => STRING client_id => STRING client_host => STRING member_metadata => BYTES member_assignment => BYTES
The suggestion is to enhance the protocol to version 2 and add some of these currently missing information (
* indicates suggested fields to be added to the protocol):
DescribeGroups Request (Version: 2) => [group_ids] group_ids => STRING DescribeGroups Response (Version: 2) => throttle_time_ms [groups] throttle_time_ms => INT32 groups => error_code group_id state protocol_type protocol generation_id leader_id new_member_added received_consumer_offset_commits received_transactional_offset_commits [members] error_code => INT16 group_id => STRING state => STRING protocol_type => STRING protocol => STRING * generation_id => INT32 * leader_id => STRING members => member_id client_id client_host member_metadata member_assignment member_subscription [member_protocols] member_id => STRING client_id => STRING client_host => STRING member_metadata => BYTES member_assignment => BYTES * member_subscription => BYTE * member_protocols => STRING
The proposal is to
DescribeGroupsprotocol to include additional information about the consumer group and also each group member for the API clients.
--stateoption to also include a
Since this KIP follows KIP-175, the output for sub-options
--state that are introduced in that KIP will be modified to also include the newly added fields. Therefore, clients who rely on the output for those sub-options may need to be adjusted. It also helps the
consumer group --describe command to fill some of the newly added columns introduced by KIP-175 (i.e.
--members options, and
--members --verbose option).