ElastAlert 将查询和范围组合成一个 OR 子句
ElastAlert combining query and range into an OR clause
我有一个 kibana 查询来查找结果为“HTTP 5xx”或响应代码大于等于 400 的所有事务
service.name : "my-service" AND transaction.name : "my-transaction" AND (transaction.result: "HTTP 5xx" OR http.response.status_code >= 400)
我需要在 ElastAlert 规则(.yaml 文件)中使用相同的查询。我可以在 range
中使用状态代码,它将作为 AND 子句与查询一起使用,但是我如何在下面使用 transaction.result
:
filter:
- query:
query_string:
query: 'service.name : "my-service" AND transaction.name : "my-transaction"'
- range:
http.response.status_code:
gt: 399
任何人都可以帮助如何包含这个吗?
您可以在过滤器定义中使用 and
and or
:
filter:
- and:
- query:
query_string:
query: >-
service.name : "my-service" AND transaction.name :
"my-transaction"
- or:
- term:
transaction.result: HTTP 5xx
- range:
http.response.status_code:
gt: 399
或者您也可以删除 query_string
查询并将其拼写成单独的查询:
filter:
- and:
- term:
service.name: my-service
- term:
transaction.name: my-transaction
- or:
- term:
transaction.result: HTTP 5xx
- range:
http.response.status_code:
gt: 399
我有一个 kibana 查询来查找结果为“HTTP 5xx”或响应代码大于等于 400 的所有事务
service.name : "my-service" AND transaction.name : "my-transaction" AND (transaction.result: "HTTP 5xx" OR http.response.status_code >= 400)
我需要在 ElastAlert 规则(.yaml 文件)中使用相同的查询。我可以在 range
中使用状态代码,它将作为 AND 子句与查询一起使用,但是我如何在下面使用 transaction.result
:
filter:
- query:
query_string:
query: 'service.name : "my-service" AND transaction.name : "my-transaction"'
- range:
http.response.status_code:
gt: 399
任何人都可以帮助如何包含这个吗?
您可以在过滤器定义中使用 and
and or
:
filter:
- and:
- query:
query_string:
query: >-
service.name : "my-service" AND transaction.name :
"my-transaction"
- or:
- term:
transaction.result: HTTP 5xx
- range:
http.response.status_code:
gt: 399
或者您也可以删除 query_string
查询并将其拼写成单独的查询:
filter:
- and:
- term:
service.name: my-service
- term:
transaction.name: my-transaction
- or:
- term:
transaction.result: HTTP 5xx
- range:
http.response.status_code:
gt: 399