request_host_limiter

request_host_limiter #

Description #

The request_host_limiter filter is used to control traffic based on the request host (domain name).

Configuration Example #

A configuration example is as follows:

flow:
  - name: rate_limit_flow
    filter:
      - request_host_limiter:
          host:
            - api.elasticsearch.cn:8000
            - logging.elasticsearch.cn:8000
          max_requests: 256
#          max_bytes: 102400 #100k
          action: retry # retry or drop
#          max_retry_times: 1000
#          retry_interval: 500 #100ms
          message: "you reached our limit"

The above configuration controls the traffic used for accessing domain names api.elasticsearch.cn and logging.elasticsearch.cn and the maximum allowable QPS is 256 per second.

Parameter Description #

NameTypeDescription
hostarrayHost domain names that will participate in traffic control. If this parameter is not set, all host domain names will participate in traffic control. If an accessed domain name contains a port ID, add the port ID here. For example, localhost:8080.
intervalstringInterval for evaluating whether traffic control conditions are met. The default value is 1s.
max_requestsintMaximum request count limit in the interval
max_bytesintMaximum request traffic limit in the interval
actionstringProcessing action after traffic control is triggered. The value can be set to retry or drop and the default value is retry.
statusstringStatus code returned after traffic control conditions are met. The default value is 429.
messagestringRejection message returned for a request, for which traffic control conditions are met
retry_intervalintInterval for traffic control retry, in milliseconds. The default value is 10.
max_retry_timesintMaximum retry count in the case of traffic control retries. The default value is 1000.
failed_retry_messagestringRejection message returned for a request, for which the maximum retry count has been reached