Versions Compared

Key

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

...

An additional metric exempt-request-time will also be added for the quota type Request to track the time spent processing requests which are exempt from throttling. This will capture the total time for requests from all users/clients that are exempt from throttling so that administrators can view the CPU utilization of exempt requests as well.

Clients will Producers and consumers currently expose average and maximum producer/fetch request throttle time as JMX metrics similar to the current produce/fetch throttle time metrics. The existing These metrics will be updated to reflect the total throttle time for produce and fetch requests including both the producer or consumer including byte-rate throttling and processing request time throttling . Two new metrics request-throttle-time-max and request-throttle-time-min will be added to reflect total request processing time based throttling for all request types including produce/fetchfor all requests of the producer/consumer. Similar metrics may be added for the admin client in future.

Tools

kafka-configs.sh will be extended to support request quotas.  A new quota property will be added, which can be applied to <client-id>, <user> or <user, client-id>:

...

Metrics and sensors will be expired as they are today for Produce/Fetch quotas.

On the client side, a new sensor named request-throttle-time will be added to track total request throttle time returned in all responses. This is in addition to the sensor used to track produce/fetch throttle times, which will continue to be supported. These existing produce/fetch throttle times will include total throttling time for both bandwidth and utilization for produce/fetch requests. New metrics request-throttle-time-avg and request-throttle-time-max will be added and these will include throttle times across all requests including produce/fetchthe existing produce and fetch sensors will track total throttle time of all requests from producers and consumers respectively. This will include both bandwidth as well as utilization based throttling. Throttle time recording will be moved to NetworkClient with appropriate sensor parameters so that produce or fetch sensors are updated based on whether the client corresponds to a producer or consumer. This will also enable addition of similar sensors/metrics for admin clients in future.

Compatibility, Deprecation, and Migration Plan

...