Files
monitoring/openspec/changes/2026-09-13-vesti-alerts/specs/vesti-alerts/spec.md
T

3.7 KiB

vesti-alerts

ADDED Requirements

Requirement: VestiWebDown

Алерт на недоступность web-интерфейса VESTI (:8400, systemd-юнит).

Scenario: web не отвечает

  • Given метрика vesti_web_up{component="vesti"} = 0
  • When условие держится 2 минуты
  • Then алерт VestiWebDown переходит в Firing (severity critical)

Scenario: web восстановился

  • Given метрика vesti_web_up{component="vesti"} = 1
  • When алерт в Firing
  • Then алерт закрывается автоматически

Requirement: VestiPublisherDown

Алерт на недоступность publisher-сервиса VESTI (:8410, /healthz).

Scenario: publisher не отвечает

  • Given метрика vesti_publisher_health{component="vesti"} = 0
  • When условие держится 2 минуты
  • Then алерт VestiPublisherDown переходит в Firing (severity critical)

Scenario: publisher восстановился

  • Given метрика vesti_publisher_health{component="vesti"} = 1
  • When алерт в Firing
  • Then алерт закрывается автоматически

Requirement: VestiPublisherContainerDown

Алерт на остановку Docker-контейнера publisher.

Scenario: контейнер publisher не в статусе Up

  • Given метрика vesti_publisher_docker{component="vesti"} = 0
  • When условие держится 2 минуты
  • Then алерт VestiPublisherContainerDown переходит в Firing (severity critical)

Scenario: контейнер publisher снова Up

  • Given метрика vesti_publisher_docker{component="vesti"} = 1
  • When алерт в Firing
  • Then алерт закрывается автоматически

Requirement: VestiTunnelDown

Алерт на недоступность SOCKS5-туннеля Telegram (:1080).

Scenario: туннель недоступен

  • Given метрика vesti_telegram_tunnel{component="vesti"} = 0
  • When условие держится 2 минуты
  • Then алерт VestiTunnelDown переходит в Firing (severity critical)

Scenario: туннель восстановился

  • Given метрика vesti_telegram_tunnel{component="vesti"} = 1
  • When алерт в Firing
  • Then алерт закрывается автоматически

Requirement: VestiDbDown

Алерт на недоступность SQLite-базы vesti.db.

Scenario: БД недоступна

  • Given метрика vesti_db_ok{component="vesti"} = 0
  • When условие держится 2 минуты
  • Then алерт VestiDbDown переходит в Firing (severity critical)

Scenario: БД восстановилась

  • Given метрика vesti_db_ok{component="vesti"} = 1
  • When алерт в Firing
  • Then алерт закрывается автоматически

Requirement: VestiDbStale

Алерт на устаревание данных краулера (не запускался >30 минут).

Scenario: краулер не запускался более 30 минут

  • Given метрика vesti_db_last_run_ts{component="vesti"} = T
  • When time() - T > 1800 секунд и условие держится 5 минут
  • Then алерт VestiDbStale переходит в Firing (severity warning)

Scenario: краулер снова запустился

  • Given метрика vesti_db_last_run_ts{component="vesti"} обновлена (time() - ts < 1800)
  • When алерт в Firing
  • Then алерт закрывается автоматически