无法在 Elasticsearch 观察器中划分多个上下文值

Cannot divide multiple context values in Elasticsearch watcher

我在 Elasticsearch 中创建了一个手表,如果 60 分钟内 HTTP 错误的比率大于总请求的 15%,它会提醒我。 我正在使用链输入为我的比率计算生成股息和除数值。

在我的情况下,我正在使用脚本进行除法并检查它是否大于我的比率。

但是,每当我使用2个ctx参数做除法时,它总是等于0。

如果我玩它并且只使用其中一个 ctx 参数,那么它工作正常。

看来我们不能在一个条件中使用2个ctx参数。

有谁知道如何解决这个问题?

下面是我的手表。

谢谢。

{
  "trigger" : {
    "schedule" : {
      "interval" : "5m"
    }
  },
  "input" : {
    "chain":{
      "inputs": [
      {
        "first": {
          "search" : {
            "request" : {
              "indices" : [ "logstash-*" ],
              "body" : {
                "query" : { 
                  "bool":{
                    "must": [
                      {
                      "match" : {"d.uri": "xxxxxxxx"}
                      },
                      { 
                      "match" : {"topic": "xxxxxxxx"}
                      }
                    ],
                    "filter": {
                      "range": {
                        "@timestamp": {
                          "gte": "now-60m"
                        }
                      }
                    }
                  }
                }
              }
            },
            "extract": ["hits.total"]
          }
        }
      },
      {
        "second": {
          "search" : {
            "request" : {
              "body" : {
                "query" : { 
                  "bool":{
                    "must": [
                      {
                      "match" : {"d.uri": "xxxxxxxx"}
                      },
                      { 
                      "match" : {"topic": "xxxxxxxx"}
                      },
                      { 
                      "match" : {"d.status": "401"}
                      }
                    ],
                    "filter": {
                      "range": {
                        "@timestamp": {
                          "gte": "now-60m"
                        }
                      }
                    }
                  }
                }
              }
            },
            "extract": ["hits.total"]
          }
        }
      }
      ]
    }
  },
  "condition" : {
    "script" : {
      "source" : "return (ctx.payload.second.hits.total / ctx.payload.first.hits.total) == 0"
    }
  }
}

这个问题实际上是因为我正在做整数除法以获得 0.xx 形式的比率。 我反转了操作,它工作正常。