---
title: "context_limiter"
date: 0001-01-01
summary: "context_limiter #  Description #  The context_limiter filter is used to control the traffic based on request context.
Configuration Example #  A configuration example is as follows:
flow: - name: default_flow filter: - context_limiter: max_requests: 1 action: drop context: - _ctx.request.path - _ctx.request.header.Host - _ctx.request.header.Env The above configuration combines three context variables (_ctx.request.path, _ctx.request.header.Host, and _ctx.request.header.Env) into a bucket for traffic control. The allowable maximum queries per second (QPS) is 1 per second."
---


# context_limiter

## Description

The context_limiter filter is used to control the traffic based on request context.

## Configuration Example

A configuration example is as follows:

```
flow:
  - name: default_flow
    filter:
      - context_limiter:
          max_requests: 1
          action: drop
          context:
            - _ctx.request.path
            - _ctx.request.header.Host
            - _ctx.request.header.Env
```

The above configuration combines three context variables (`_ctx.request.path`, `_ctx.request.header.Host`, and `_ctx.request.header.Env`) into a bucket for traffic control.
The allowable maximum queries per second (QPS) is `1` per second. Subsequent requests out of the traffic control range are directly denied.

## Parameter Description

| Name                 | Type   | Description                                                                                                                       |
| -------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------- |
| context              | array  | Context variables, which form a bucket key                                                                                        |
| interval             | string | Interval for evaluating whether traffic control conditions are met. The default value is `1s`.                                    |
| max_requests         | int    | Maximum request count limit in the interval                                                                                       |
| burst_requests       | int    | Burst request count limit in the interval                                                                                         |
| max_bytes            | int    | Maximum request traffic limit in the interval                                                                                     |
| burst_bytes          | int    | Burst request traffic limit in the interval                                                                                       |
| action               | string | Processing action after traffic control is triggered. The value can be set as `retry` or `drop` and the default value is `retry`. |
| status               | string | Status code returned after traffic control conditions are met. The default value is `429`.                                        |
| message              | string | Rejection message returned for a request, for which traffic control conditions are met                                            |
| retry_delay_in_ms    | int    | Interval for traffic control retry, in milliseconds. The default value is `10`.                                                   |
| max_retry_times      | int    | Maximum retry count in the case of traffic control retries. The default value is `1000`.                                          |
| failed_retry_message | string | Rejection message returned for a request, for which the maximum retry count has been reached                                      |
| log_warn_message     | bool   | Whether to log warn message                                                                                                       |

