Class ClientRequestQuotaManager

java.lang.Object
org.apache.kafka.server.quota.ClientQuotaManager
kafka.server.ClientRequestQuotaManager

public class ClientRequestQuotaManager extends org.apache.kafka.server.quota.ClientQuotaManager
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.kafka.server.quota.ClientQuotaManager

    org.apache.kafka.server.quota.ClientQuotaManager.ClientIdEntity, org.apache.kafka.server.quota.ClientQuotaManager.KafkaQuotaEntity, org.apache.kafka.server.quota.ClientQuotaManager.ThrottledChannelReaper, org.apache.kafka.server.quota.ClientQuotaManager.UserEntity
  • Field Summary

    Fields inherited from class org.apache.kafka.server.quota.ClientQuotaManager

    CLIENT_ID_QUOTA_ENABLED, CLIENT_ID_TAG, CUSTOM_QUOTAS, DEFAULT_USER_CLIENT_ID, DEFAULT_USER_ENTITY, NO_QUOTAS, USER_CLIENT_ID_QUOTA_ENABLED, USER_QUOTA_ENABLED, USER_TAG
  • Constructor Summary

    Constructors
    Constructor
    Description
    ClientRequestQuotaManager(org.apache.kafka.server.config.ClientQuotaManagerConfig config, org.apache.kafka.common.metrics.Metrics metrics, org.apache.kafka.common.utils.Time time, String threadNamePrefix, Optional<org.apache.kafka.common.internals.Plugin<org.apache.kafka.server.quota.ClientQuotaCallback>> quotaCallbackPlugin)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.kafka.common.MetricName
     
    org.apache.kafka.common.metrics.Sensor
     
    int
    maybeRecordAndGetThrottleTimeMs(kafka.network.RequestChannel.Request request, long timeMs)
    Records that a user/clientId changed request processing time being throttled.
    void
    maybeRecordExempt(kafka.network.RequestChannel.Request request)
     
    long
    throttleTime(org.apache.kafka.common.metrics.QuotaViolationException e, long timeMs)
     

    Methods inherited from class org.apache.kafka.server.quota.ClientQuotaManager

    getOrCreateQuotaSensors, initiateShutdown, maxValueInQuotaWindow, maybeRecordAndGetThrottleTimeMs, processThrottledChannelReaperDoWork, quota, quota, quotasEnabled, quotaTypesEnabled, recordAndGetThrottleTimeMs, recordNoThrottle, shutdown, throttle, unrecordQuotaSensor, updateQuota, updateQuotaMetricConfigs, updateQuotaMetricConfigs

    Methods inherited from class Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ClientRequestQuotaManager

      public ClientRequestQuotaManager(org.apache.kafka.server.config.ClientQuotaManagerConfig config, org.apache.kafka.common.metrics.Metrics metrics, org.apache.kafka.common.utils.Time time, String threadNamePrefix, Optional<org.apache.kafka.common.internals.Plugin<org.apache.kafka.server.quota.ClientQuotaCallback>> quotaCallbackPlugin)
  • Method Details

    • exemptSensor

      public org.apache.kafka.common.metrics.Sensor exemptSensor()
    • maybeRecordAndGetThrottleTimeMs

      public int maybeRecordAndGetThrottleTimeMs(kafka.network.RequestChannel.Request request, long timeMs)
      Records that a user/clientId changed request processing time being throttled. If the quota has been violated, return throttle time in milliseconds. Subclasses may override throttle time calculation.
      Parameters:
      request - client request
      Returns:
      Number of milliseconds to throttle in case of quota violation. Zero otherwise
    • maybeRecordExempt

      public void maybeRecordExempt(kafka.network.RequestChannel.Request request)
    • throttleTime

      public long throttleTime(org.apache.kafka.common.metrics.QuotaViolationException e, long timeMs)
    • clientQuotaMetricName

      public org.apache.kafka.common.MetricName clientQuotaMetricName(Map<String,String> quotaMetricTags)