# Правила алертинга Prometheus. Подключены через # `rule_files` в prometheus.yml. Метрики — из `backend/api/metrics.py` # (см. комментарий в prometheus.yml про контракт имён). # # Проверка: алерт на искусственно заваленном пайплайне — остановить `llm` # при активном `summarize_session` (см. `docs/deploy/monitoring.md`). groups: - name: vidconf-pipeline rules: # Растёт число сеансов, застрявших в статусе `failed` # (`conference_sessions.pipeline_status`). # `delta()` — корректная функция PromQL именно для gauge (не # `increase()`, которая рассчитана на монотонные counter'ы). - alert: PipelineFailed expr: delta(vidconf_pipeline_sessions{status="failed"}[15m]) > 0 for: 5m labels: severity: critical annotations: summary: "Растёт число упавших сеансов пайплайна пост-обработки" description: >- За последние 15 минут число сеансов в статусе failed выросло на {{ $value }}. Смотреть логи worker/worker-transcriber и таблицу conference_sessions (pipeline_status). # Глубина хотя бы одной из очередей Celery устойчиво растёт 15 минут # подряд — воркеры не успевают за потоком задач (см. # docs/deploy/scaling.md — вынос очереди в отдельную реплику). - alert: QueueGrowing expr: delta(vidconf_celery_queue_depth[15m]) > 0 and vidconf_celery_queue_depth > 10 for: 15m labels: severity: warning annotations: summary: "Очередь Celery «{{ $labels.queue }}» растёт 15 минут подряд" description: >- Текущая глубина очереди {{ $labels.queue }}: {{ $value }} задач, рост не прекращается 15 минут — см. docs/deploy/scaling.md (вынос очереди в отдельную реплику/масштабирование). # LLM-сервер (llama.cpp, job `llm` — см. комментарий в prometheus.yml # про сетевой алиас `llm`/`llm-gpu`) недоступен. Актуально ТОЛЬКО на # инсталляциях с включённым профилем `llm`/`llm-gpu` (пресеты 3–5, # `install.sh`) — целевой набор профилей по умолчанию (`media,monitoring`, # см. .env.example) их не включает, поэтому правило закомментировано # вместе с job `llm` в prometheus.yml (иначе `up{job="llm"}` не находит # ни одной серии — сам по себе закомментированный job уже не даёт этому # алерту сработать, но держать активное правило на несуществующую # метрику вводит в заблуждение). Раскомментируйте оба вместе на # инсталляциях с профилем `llm`/`llm-gpu`. # - alert: LlmDown # expr: up{job="llm"} == 0 # for: 2m # labels: # severity: critical # annotations: # summary: "LLM-сервер (llama.cpp) недоступен" # description: >- # Prometheus не может достучаться до llm:8080 дольше 2 минут — # суммаризация встанет (задачи будут копиться в очереди summarize, # см. также алерт QueueGrowing). Проверить # `docker compose ps llm` / `llm-gpu` и `docker compose logs llm`.