无法在 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 形式的比率。
我反转了操作,它工作正常。
我在 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 形式的比率。 我反转了操作,它工作正常。