Я использую эластичный поиск 6.5.4 и наблюдателя кибаны для оповещения. У меня есть диапазон фильтра примерно так:
"filter": [
{
"range": {
"@timestamp": {
"gte": "{{ctx.trigger.scheduled_time}}||-{{ctx.metadata.triggered_interval}}m"
}
}
}
]
Запланированное время - каждый час на 5-й минуте (1:05, 2:05 и т. Д. c.). Значение triggered_interval равно 60.
Я хочу собрать диапазон временных меток, игнорируя последние 5 минут. По сути, некоторые сообщения о состоянии могут быть слишком новыми для истинных ошибок, поэтому я хочу их игнорировать.
Я пытаюсь обработать это так, что оно выглядит так: время начала равно trigger.scheduled_time - 5 м, а время окончания - triggered_interval .
Формат диапазона: time1-time2, поэтому schedule_time-5m-triggered_interval является недопустимым синтаксисом. Я пробовал несколько итераций, но ничего не получается. Наблюдатель просто возвращает исключение нулевого указателя.
"gte": "<{{{ctx.trigger.scheduled_time}}||-5m}>-{{ctx.metadata.triggered_interval}}m"
"gte": "<{{ctx.trigger.scheduled_time}}||-5m>-{{ctx.metadata.triggered_interval}}m"
"gte": "{{ctx.trigger.scheduled_time}}||-5m-{{ctx.metadata.triggered_interval}}m"
"gte": "({{ctx.trigger.scheduled_time}}||-5m)-{{ctx.metadata.triggered_interval}}m"
Возможно ли это сделать в фильтре диапазона?