Проблема была в том что правила по типу flatline срабатывают при переходе значения threshold. То есть если на момент добавления или обновления правила elastalert'а количество документов было уже ниже параметра threshold то алерт отправлен не будет.
Рабочий пример ниже
es_host: <ELASTIC HOST>
es_port: 9200
# es_username: elastic
# es_password: changeme
name: ":warning:WARNING : POSTGRES probably unavailable:warning:"
description: "postgres probably unavailable"
severity: "warning"
index: app-prod-metrics*
filter:
- query:
query_string:
query: "postgresql.activity.query: \"SELECT * FROM pg_stat_database\""
type: flatline
threshold: 4
timeframe:
minutes: 1
realert:
seconds: 10
query_key: postgresql.activity.query
alert:
- "telegram"
alert_text: "
Too few metrics from\n
*Postgres on Host* : host name\n
*ElastAlert Node* : alert host name"
alert_text_type: alert_text_only
telegram_bot_token: <TOKEN>
telegram_room_id: "@<CHAT_ID>"