Я хочу создать оповещение в Kibana с помощью эластичного запроса. Я использую функцию оповещения opendistro. Я хочу проверить, что все значения поля cpu.pct за последние 10 минут превышают 50, и, если да, выдать предупреждение.
{
"size": 500,
"query": {
"bool": {
"filter": [
{
"match_all": {
"boost": 1
}
},
{
"match_phrase": {
"client.id": {
"query": "42",
"slop": 0,
"zero_terms_query": "NONE",
"boost": 1
}
}
},
{
"range": {
"cpu.pct": {
"from": 10,
"to": null,
"include_lower": true,
"include_upper": true,
"boost": 1
}
}
},
{
"range": {
"@timestamp": {
"from": "{{period_end}}||-5m",
"to": "{{period_end}}",
"include_lower": true,
"include_upper": true,
"format": "epoch_millis",
"boost": 1
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"aggregations": {
"2": {
"terms": {
"field": "client.name.keyword",
"size": 5,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": {
"_key": "desc"
}
},
"aggregations": {
"3": {
"terms": {
"field": "component.name",
"size": 1000,
"min_doc_count": 1,
"shard_min_doc_count": 0,
"show_term_doc_count_error": false,
"order": [
{
"1": "desc"
},
{
"_key": "asc"
}
]
},
"aggregations": {
"1": {
"avg": {
"field": "cpu.pct"
}
}
}
}
}
}
}
У меня есть следующий запрос, который вычисляет среднее значение, но это неверно.
Отрицательный регистр: значения (100, 100, 100, 100, 100, 100, 0, 0, 0, 0) | Предупреждение: нет (в среднем: 60)
Положительный случай: значения (60, 60, 60, 60, 60, 60, 60, 60, 60, 60) | Оповещение поднято: да (в среднем: 60)
Как я могу проверить все значения?