elasticsearch ElastAlert将查询和范围合并到OR子句中,elasticsearch,yaml,kibana,elastalert,elasticsearch,Yaml,Kibana,Elastalert" /> elasticsearch ElastAlert将查询和范围合并到OR子句中,elasticsearch,yaml,kibana,elastalert,elasticsearch,Yaml,Kibana,Elastalert" />

elasticsearch ElastAlert将查询和范围合并到OR子句中

elasticsearch ElastAlert将查询和范围合并到OR子句中,elasticsearch,yaml,kibana,elastalert,elasticsearch,Yaml,Kibana,Elastalert,我有一个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文件)中使用相

我有一个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文件)中使用相同的查询。我可以在
范围中使用状态代码,它将作为and子句与查询一起使用,但我如何使用
事务。结果如下:

filter:
- query:
   query_string:
    query: 'service.name : "my-service" AND transaction.name : "my-transaction"'
- range:
    http.response.status_code:
      gt: 399  
有人可以帮助您将其包括在内吗?

您可以在过滤器定义中使用:

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\u字符串
query,并将其拼写成单独的查询:

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

谢谢,我会先测试一下,然后再给它打分。我觉得第一个有问题,让我测试一下是啊,亚姆太糟糕了:-)我修正了缩进。让我知道太棒了,很高兴它有帮助!