Сравните данные за тот же час на прошлой неделе в ElastAlert

Я пытаюсь настроить оповещение в ElastAlert, которое будет предупреждать, если количество событий в понедельник с 01:00 до 02:00 было на 10% больше или меньше, чем за тот же период времени с понедельника на предыдущей неделе.

Наши данные сильно различаются изо дня в день, например, воскресенье по сравнению с понедельником, а также по часам.

Есть ли способ использовать тип шипа или любой другой фильтр для проведения таких проверок?


person Michael Lindfors    schedule 23.02.2017    source источник
comment
Привет, где вы собираетесь получить решение для этого?   -  person kumar    schedule 25.03.2017
comment
Боюсь, еще нет. Пожалуйста, отпишитесь, если вам удастся что-то найти   -  person Michael Lindfors    schedule 27.03.2017


Ответы (1)


У меня была такая же проблема. В итоге я разветвил elastAlert и добавил новый тип правила.

Под капотом он делает еще один вызов ES и сравнивает данные. Он немного грязный и не соответствует оригинальной архитектуре elastAlert. Но это делает дело. Это сочетание правил «спайка» и «метрика_агрегации».

https://github.com/spodgurskiy/elastalert

Вот пример моей конфигурации правила.

# Alert when there is a sudden spike comparing to the historical data
name: Spike detection

type: metric_history_aggregation
index: metrics-*

# Reference window diff in minutes
date_diff_ref: 10080

# Spike detection
threshold_total: 50
threshold_cur: 0
threshold_ref: 0

spike_height: 1.05
spike_type: both # <both/up/down>

# Aggregation
metric_agg_key: "<field_name>"
metric_agg_type: sum
max_threshold:

# Alert section
alert:
- "slack"
alert_display_timezone: US/Pacific
alert_text_type: exclude_fields
alert_subject: ""
slack_webhook_url: "https://hooks.slack.com/services/..."
person Sergey Podgurskiy    schedule 14.04.2017