Versions Compared

Key

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

...

The command will essentially provide the following pieces of information:

Broker Information

  • Cluster Id
  • Controller info
  • And for each broker 
  • Broker Id
  • Hostname
  • Rack
  • Endpoints
  • Topic count (i.e. how many topics are hosted by the broker)
  • All partition count (i.e. how many partition replicas are hosted by the broker)
  • Leader partition count (i.e. how many leader partitions are hosted by the broker)
  • Insync partition count (i.e, how many follower partitions are insync)
  • Under-replicated Trailing partition count (i.e. how many partitions are not insync)
  • An asterisk would indicate that the broker is the leader for that partition.
  • When details are printed, A leader partition will be prefixed by a "+" symbol and a trailing partition will be prefixed by a "-" symbol

With command line With commandline options, topic names and partition numbers can be enumerated.

...

Code Block
titlekafka-brokers.sh Usage/Options
$ ./kafka-brokers.sh 
Missing required argument "[zookeeperbootstrap-server]"
Option                                  Description                           
------                                  -----------                           
--bootstrap-server <String: The server  REQUIRED: the server(s) to use for    
  (s) to use for bootstrapping>           bootstrapping                       
--broker <Integer: broker-id> broker>              Filter for a broker. Option can be    
                                          used multiple times for multiple    
                                          broker-ids                          
--details                               if specified, shows detailed listing  
                                          of topics and partitions            
--host <hostname> <String: host>                   Filter for a hostname. Option can be  
                                          used multiple times for multiple    
                                          hostnames                           
--partition-details                     if specified, shows partitions in each
                                          topic                               
--rack <String: <rack>rack>                   Filter for a rack. Option can be used 
                                          multiple times for multiple racks   
--topic <String: topic> <topic>                Filter for a topic. Option can be used
                                          multiple times for multiple topics  
--topic-details                if specified, shows topics and     if specified, shows 
                      topics and           partition counts in each topic      
--zookeeper <zkurl>            REQUIRED: The connection string for   
                                 zookeeper(s)partition counts in the form host:port, 
                                 host:port/zkchroot or host1,host2,  each topic
                                 host3:port/zkchroot.                

 

The options "–broker", "–host", "–rack" and "–topic" provide filtering for the specified broker (broker-id), host, rack or topic. Each of the options can be specified multiple times. The option "--topic-details" makes the command to enumerate all the topic names in addition to giving the topic count. The option "--partition-details" makes the command to enumerate all the partitions for each topic. The partitions have an an optional prefix of "+" or "-" to indicate that the partition is a leader partition or an under-replicated partition respectively. An insync replica partition will not have any prefix.

...

Code Block
titleSummary Output Without Any Details
$ ./kafka-brokers.sh --bootstrap-zookeeperserver zk1,zk2,zk3:2181host1:9092,host2:9092
BrokerId: 1	Hostname: host1	Rack: rack1	Endpoints: (host1,9092,PLAINTEXT), (host1,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	
BrokerId: 2	Hostname: host2	Rack: rack2	Endpoints: (host2,9092,PLAINTEXT), (host2,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	
BrokerId: 3	Hostname: host3	Rack: rack3	Endpoints: (host3,9092,PLAINTEXT), (host3,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	
Code Block
titleOutput with Topic Details
BrokerId: 1	Hostname: host1	Rack: rack1	Endpoints: (host1,9092,PLAINTEXT), (host1,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Topic Details: topic2 with 6 partitions, topic1 with 6 partitions	
BrokerId: 2	Hostname: host2	Rack: rack2	Endpoints: (host2,9092,PLAINTEXT), (host2,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Topic Details: topic2 with 6 partitions, topic1 with 6 partitions	
BrokerId: 3	Hostname: host3	Rack: rack3	Endpoints: (host3,9092,PLAINTEXT), (host3,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Topic Details: topic2 with 6 partitions, topic1 with 6 partitions
Code Block
titleOutput with Partition Details
BrokerId: 1	Hostname: host1	Rack: rack1	Endpoints: (host1,9092,PLAINTEXT), (host1,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Partition Details: (topic2: 5,4,+3,2,1,+0), (topic1: 5,4,+3,2,1,+0)	
BrokerId: 2	Hostname: host2	Rack: rack2	Endpoints: (host2,9092,PLAINTEXT), (host2,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Partition Details: (topic2: 5,+4,3,2,+1,0), (topic1: 5,+4,3,2,+1,0)	
BrokerId: 3	Hostname: host3	Rack: rack3	Endpoints: (host3,9092,PLAINTEXT), (host3,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Partition Details: (topic2: +5,4,3,+2,1,0), (topic1: +5,4,3,+2,1,0)
Code Block
titleOutput with Topic and Partition Details
BrokerId: 1	Hostname: host1	Rack: rack1	Endpoints: (host1,9092,PLAINTEXT), (host1,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Topic Details: topic2 with 6 partitions, topic1 with 6 partitions	Partition Details: (topic2: 5,4,+3,2,1,+0), (topic1: 5,4,+3,2,1,+0)	
BrokerId: 2	Hostname: host2	Rack: rack2	Endpoints: (host2,9092,PLAINTEXT), (host2,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Topic Details: topic2 with 6 partitions, topic1 with 6 partitions	Partition Details: (topic2: 5,+4,3,2,+1,0), (topic1: 5,+4,3,2,+1,0)	
BrokerId: 3	Hostname: host3	Rack: rack3	Endpoints: (host3,9092,PLAINTEXT), (host3,9093,SSL)	Topics: 2	Partitions: 12	Leaders: 4	InSync: 8	Trailing: 0	Topic Details: topic2 with 6 partitions, topic1 with 6 partitions	Partition Details: (topic2: +5,4,3,+2,1,0), (topic1: +5,4,3,+2,1,0)

...

Compatibility, Deprecation, and Migration Plan

None yetThis command is based on the new AdminClient, so is compatible with Kafka versions 0.10.1 and higher only.

Rejected Alternatives

If there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.