You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by GitBox <gi...@apache.org> on 2022/05/13 03:36:49 UTC

[GitHub] [apisix] hf400159 commented on a diff in pull request #7038: docs(redis): add xRPC doc

hf400159 commented on code in PR #7038:
URL: https://github.com/apache/apisix/pull/7038#discussion_r871965424


##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
+
+## Attributes
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |

Review Comment:
   `Default` and `Valid values` column can be deleted.



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
+
+## Attributes
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| faults | array[object]        | False    |                                               |  | Fault injections which can be applied based on the commands and keys |
+
+Fields under an entry of `faults`:
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| commands | array[string]        | True    |                                               | ["get", "mget"]  | Commands fault is restricted to |
+| key | string        | False    |                                               | "blahblah"  | Key fault is restricted to |
+| delay | number        | True    |                                               | 0.1  | Duration of the delay in seconds |
+
+## Example usage
+
+Assumed the APISIX is proxying TCP on port 9101, and the Redis is listening on port 6379.
+
+Let's create a stream route:
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "upstream": {
+        "type": "none",
+        "nodes": {
+            "127.0.0.1:6379": 1
+        }
+    },
+    "protocol": {
+        "name": "redis",
+        "conf": {
+            "faults": [{
+                "commands": ["get", "ping"],
+                "delay": 5
+            }]
+        }
+    }
+}
+'
+```
+
+Once you have configured the stream route, as shown above, you can make a request to it:
+
+```shell
+$ redis-cli -p 9101

Review Comment:
   ```suggestion
   redis-cli -p 9101
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:

Review Comment:
   ```suggestion
   The Redis protocol support allows APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::

Review Comment:
   ```suggestion
   
   :::
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
+
+## Attributes
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| faults | array[object]        | False    |                                               |  | Fault injections which can be applied based on the commands and keys |
+
+Fields under an entry of `faults`:
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| commands | array[string]        | True    |                                               | ["get", "mget"]  | Commands fault is restricted to |
+| key | string        | False    |                                               | "blahblah"  | Key fault is restricted to |
+| delay | number        | True    |                                               | 0.1  | Duration of the delay in seconds |
+
+## Example usage
+
+Assumed the APISIX is proxying TCP on port 9101, and the Redis is listening on port 6379.
+
+Let's create a stream route:

Review Comment:
   ```suggestion
   Let's create a Stream Route:
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).

Review Comment:
   This link is invalid, please change it to another link.



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.

Review Comment:
   ```suggestion
   For example, when a Redis client subscribes to channel `foo` and receives the message `bar`, then it unsubscribes the `foo` channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
+
+## Attributes
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| faults | array[object]        | False    |                                               |  | Fault injections which can be applied based on the commands and keys |
+
+Fields under an entry of `faults`:
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| commands | array[string]        | True    |                                               | ["get", "mget"]  | Commands fault is restricted to |
+| key | string        | False    |                                               | "blahblah"  | Key fault is restricted to |
+| delay | number        | True    |                                               | 0.1  | Duration of the delay in seconds |
+
+## Example usage
+
+Assumed the APISIX is proxying TCP on port 9101, and the Redis is listening on port 6379.
+
+Let's create a stream route:
+
+```shell
+curl http://127.0.0.1:9080/apisix/admin/stream_routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
+{
+    "upstream": {
+        "type": "none",
+        "nodes": {
+            "127.0.0.1:6379": 1
+        }
+    },
+    "protocol": {
+        "name": "redis",
+        "conf": {
+            "faults": [{
+                "commands": ["get", "ping"],
+                "delay": 5
+            }]
+        }
+    }
+}
+'

Review Comment:
   ```suggestion
   }'
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
+
+## Attributes
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| faults | array[object]        | False    |                                               |  | Fault injections which can be applied based on the commands and keys |
+
+Fields under an entry of `faults`:
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| commands | array[string]        | True    |                                               | ["get", "mget"]  | Commands fault is restricted to |
+| key | string        | False    |                                               | "blahblah"  | Key fault is restricted to |
+| delay | number        | True    |                                               | 0.1  | Duration of the delay in seconds |
+
+## Example usage
+
+Assumed the APISIX is proxying TCP on port 9101, and the Redis is listening on port 6379.

Review Comment:
   ```suggestion
   Assumed the APISIX is proxying TCP on port `9101`, and the Redis is listening on port `6379`.
   ```



##########
docs/en/latest/xrpc/redis.md:
##########
@@ -0,0 +1,102 @@
+---
+title: redis
+keywords:
+  - APISIX
+  - xRPC
+  - redis
+description: This document contains information about the Apache APISIX xRPC implementation for Redis.
+---
+
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+-->
+
+## Description
+
+The Redis protocol support allows Apache APISIX to proxy Redis commands, and provide various features according to the content of the commands, including:
+
+* [Redis protocol](https://redis.io/docs/reference/protocol-spec/) codec
+* Fault injection according to the commands and key
+
+:::note
+
+This feature requires APISIX to be run on [APISIX-Base](./how-to-build.md#step-6-build-openresty-for-apache-apisix).
+
+It also requires the data sent from clients are well-formed and sane. Therefore, it should only be used in deployments where both the downstream and upstream are trusted.
+:::
+
+## Granularity of the request
+
+Like other protocols based on the xRPC framework, the Redis implementation here also has the concept of `request`.
+
+Each Redis command is considered a request. However, the message subscribed from the server won't be considered a request.
+
+For example, when a Redis client subscribes to channel "foo" and receives the message "bar", then it unsubscribes the "foo" channel, there are two requests: `subscribe foo` and `unsubscribe foo`.
+
+## Attributes
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |
+|----------------------------------------------|---------------|----------|-----------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| faults | array[object]        | False    |                                               |  | Fault injections which can be applied based on the commands and keys |
+
+Fields under an entry of `faults`:
+
+| Name | Type          | Required | Default                                       | Valid values                                                       | Description                                                                                                                                                                                                                                           |

Review Comment:
   `Default`  column can be deleted.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org