feat(monitoring): собирать метрики LiveKit в Prometheus
В `livekit.yaml` порт метрик (6789) объявлен с самого начала, но job'а в Prometheus не было — метрики SFU просто не собирались. Из-за этого разбор нагрузочного теста 28.07.2026 пришлось вести по логам: `container-exporter` показывает CPU, память и суммарный трафик контейнера, но не знает, что внутри этого трафика. Теперь доступны, в частности: - `livekit_track_subscribed_total` / `livekit_track_published_total` — подписки против публикаций, то есть прямой эффект adaptiveStream; - `livekit_participant_total`, `livekit_room_total` — нагрузка в участниках; - `livekit_quality_score`, `livekit_packet_loss_percent`, `livekit_rtt_ms`, `livekit_jitter_us`, `livekit_nack_total`, `livekit_pli_total` — качество связи у клиентов вместо догадок по событиям congestion в логах; - `livekit_webhook_queue_length` — очередь доставки вебхуков в backend. Job включён, а не закомментирован, как `llm`: профиль `media` входит в дефолтный набор COMPOSE_PROFILES. Конфиг проверен `promtool check config`.
This commit is contained in:
@@ -53,6 +53,32 @@ scrape_configs:
|
|||||||
static_configs:
|
static_configs:
|
||||||
- targets: ["container-exporter:9419"]
|
- targets: ["container-exporter:9419"]
|
||||||
|
|
||||||
|
# LiveKit SFU (профиль `media`). Порт объявлен в самом LiveKit —
|
||||||
|
# `deploy/livekit/livekit.yaml.template`, секция `prometheus: port: 6789`;
|
||||||
|
# наружу он не публикуется, скрейп идёт по имени сервиса внутри docker-сети.
|
||||||
|
#
|
||||||
|
# Почему это важно отдельно от `container-exporter`: тот показывает CPU,
|
||||||
|
# память и суммарный трафик контейнера, но ничего не знает о том, ЧТО внутри
|
||||||
|
# этого трафика. Разбор нагрузочного теста 28.07.2026 пришлось делать по
|
||||||
|
# логам именно потому, что job'а здесь не было (см. .forcc/LOAD-FINDINGS.md).
|
||||||
|
#
|
||||||
|
# Ключевое, что отсюда появляется:
|
||||||
|
# livekit_track_subscribed_total / livekit_track_published_total —
|
||||||
|
# подписки против публикаций, то есть прямой эффект adaptiveStream;
|
||||||
|
# livekit_participant_total, livekit_room_total — нагрузка в участниках;
|
||||||
|
# livekit_quality_score, livekit_packet_loss_percent, livekit_rtt_ms,
|
||||||
|
# livekit_jitter_us, livekit_nack_total, livekit_pli_total — качество
|
||||||
|
# связи у клиентов, а не догадки по событиям congestion в логах;
|
||||||
|
# livekit_webhook_queue_length, livekit_webhook_dispatch_total — очередь
|
||||||
|
# доставки вебхуков в backend (на тесте она росла до 56 секунд).
|
||||||
|
#
|
||||||
|
# Профиль `media` входит в дефолтный набор COMPOSE_PROFILES (см. .env.example),
|
||||||
|
# поэтому job включён, а не закомментирован, как `llm`. На инсталляции без
|
||||||
|
# профиля `media` таргет не резолвится — закомментируйте секцию.
|
||||||
|
- job_name: livekit
|
||||||
|
static_configs:
|
||||||
|
- targets: ["livekit:6789"]
|
||||||
|
|
||||||
# Локальный LLM-сервер (llama.cpp, LLAMA_ARG_ENDPOINT_METRICS=1). Адрес
|
# Локальный LLM-сервер (llama.cpp, LLAMA_ARG_ENDPOINT_METRICS=1). Адрес
|
||||||
# `llm:8080` разрешается ОДНИМ из двух compose-сервисов в зависимости от
|
# `llm:8080` разрешается ОДНИМ из двух compose-сервисов в зависимости от
|
||||||
# выбранного при установке пресета — `llm` (CPU, профиль `llm`, уровни
|
# выбранного при установке пресета — `llm` (CPU, профиль `llm`, уровни
|
||||||
|
|||||||
Reference in New Issue
Block a user