Versions Compared

Key

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

...

  • We plan to add the following new metrics :
    1. kafka.network:name=ControlPlaneRequestQueueSize,type=RequestChannel
      kafka.network:name=ControlPlaneResponseQueueSize,type=RequestChannel
      to show the size of the new control plane, request and response queues.
    2. kafka.network:name=ControlPlaneNetworkProcessorIdlePercentControlPlaneNetworkProcessorAvgIdlePercent,type=SocketServer
      kafka.server:name=ControlPlaneRequestHandlerIdlePercentControlPlaneRequestHandlerAvgIdlePercent,type=KafkaRequestHandlerPool
      with the former monitoring the idle percentage of pinned control plane network thread, and the latter monitoring the idle percentage of pinned control plane request handler thread. (Pinned control plane threads are explained in details below.)
    3. kafka.network:name=ControlPlaneExpiredConnectionsKilledCount,type=SocketServer
      to show the number of expired connections that were disconnected on the control plane.
  • The meaning of the existing metric
    kafka.network:name=RequestQueueSize,type=RequestChannel
    will be changed, and it will be used to show the size of the data request queue only, which does not include controller requests.
  • The meaning of the two existing metrics
    kafka.network:name=NetworkProcessorAvgIdlePercent,type=SocketServer
    kafka.server:name=RequestHandlerAvgIdlePercent,type=KafkaRequestHandlerPool
    will be changed slightly in that they now only cover the threads for data plane threads, not including the pinned threads for controller requests.
  • We plan to add a new config for brokers to specify a dedicated listener for controller connections: the "control.plane.listener.name" config. When not set explicitly, the config will have a default value of "null" and indicate that the proposed change in this KIP will not take effect. A detailed explanation of the config is shown in the "proposed changes" section.
  • A new listener-to-endpoint entry dedicated to controller connections need to be added to the "listeners" config and the "advertised.listeners" config.
    Also a new entry needs to be added to the "listener.security.protocol.map" to specify the security protocol of the new endpoint.

...