加入我们,于10月8日至10日在纽约市,了解关于GraphQL联盟和API平台工程的最新技巧、趋势和新闻。参加2024年纽约市的GraphQL峰会
文档
免费开始

条件

为事件或仪器触发设置条件


您可以设置在触发事件或仪器时触发的条件instrument 应该被修改或者应该触发一个 事件

条件配置

这是一个在自定义仪器上的条件示例

router.yaml
telemetry:
instrumentation:
instruments:
router:
my.instrument:
value: duration
type: counter
unit: s
description: "my description"
# ...
# This instrument will only be mutated if the condition evaluates to true
condition:
all:
- any:
- eq:
- "val"
- request_header: x-req-header
- eq:
- "foo"
- response_header: x-resp-header

存在

存在条件用于测试选择器是否存在。

例如,下面的条件检查 x-req-header 是否存在:

exists:
request_header: x-req-header

等于

等于条件用于在选择器或值之间进行相等性测试。

例如,下面的条件检查 x-req-header 是否等于 val

eq:
- "val"
- request_header: x-req-header

您可以使用选择器对等式测试的两边进行操作

eq:
- request_header: x-req-header1
- request_header: x-req-header2

值可以是 stringnumberboolean 类型。

大于

大于条件检查一个值是否大于另一个值。

例如,以下条件检查响应状态码是否大于 299

gt:
- response_status: code
- 299

值可以是 stringnumberboolean 类型。

小于

小于条件检查一个值是否小于另一个值。

例如,以下条件检查响应状态码是否小于 500

lt:
- response_status: code
- 500

值可以是 stringnumberboolean 类型。

条件是嵌套条件的否定。

例如,以下条件检查 x-req-header 的值是否不等于 不等于 val1:

not:
eq:
- "val1"
- request_header: x-req-header2

所有

所有条件是条件列表,所有条件都必须为真,条件才为真。

all:
- eq:
- "val1"
- request_header: x-req-header1
- eq:
- "val2"
- request_header: x-req-header2

any:
- eq:
- "val2"
- request_header: x-req-header1
- eq:
- "val2"
- request_header: x-req-header2

等于
大于
小于
存在
所有

©2024Apollo Graph Inc.,以Apollo GraphQL的名义。

隐私政策

公司