Мониторинг LLM-API: латентность, стоимость, аптайм
Коротко. LLM-API документацию ведут себя как любой внешний HTTP-сервис, но добавляют две особенности: высокую и переменную латентность и стоимость за токен. Мониторить нужно три оси — аптайм (доступен ли endpoint), латентность (укладывается ли в SLA) и стоимость (не растёт ли расход токенов). Базовый аптайм закрывается обычным HTTP-мониторинг сайтов URL API с алертами в Telegram, Slack или webhook; латентность и стоимость требуют логирования на стороне приложения.
Почему LLM-API нельзя мониторить «как обычно»
Классический мониторинг отвечает на вопрос «жив ли сервис». Для LLM-API этого мало. Ответ может приходить за 200 мс, а может за 30 секунд — и формально это «up». Стоимость растёт не от числа запросов, а от объёма токенов. Поэтому к привычному аптайму добавляются ещё две метрики.
«Сервис доступен» и «сервис работает приемлемо» — разные вещи. Для LLM медленный ответ за 30 секунд может быть хуже, чем честный таймаут.
Три оси мониторинга
| Ось | Что измеряем | Где |
|---|---|---|
| Аптайм | Доступность endpoint, код ответа | HTTP-мониторинг URL |
| Латентность | Время ответа, p95/p99 | Логи приложения + мониторинг |
| Стоимость | Токены на запрос, дневной расход | Логирование usage из ответа API |
Базовая проверка доступности через curl
Самый простой Ping инструмент — запрос к публичному endpoint API с замером времени. Пример проверки латентности:
curl -s -o /dev/null \
-w "http_code=%{http_code} total=%{time_total}s\n" \
-H "Authorization: Bearer $LLM_API_KEY" \
https://api.example-llm.com/v1/models
Эта команда возвращает HTTP-код и полное время ответа, не тратя токены — идеально для health-check без затрат на генерацию.
Концепция мониторинга через HTTP-монитор
На enterno.io можно поставить обычный HTTP-монитор на URL API:
- Цель: health- или models-endpoint провайдера (не генерация — чтобы не тратить токены).
- Интервал: 1 минута на Pro (на бесплатном — 5 минут, до 10 мониторов).
- Ожидаемый код: 200; всё остальное считается падением.
- Алерты: Telegram, Slack или webhook при первом же падении.
Мониторьте дешёвый health-endpoint, а не генерацию. Иначе сам мониторинг станет статьёй расходов на токены.
Латентность: что отслеживать
- p95 и p99, а не среднее — средняя латентность скрывает «хвосты».
- Время до первого токена при стриминге — пользователь чувствует именно его.
- Таймауты на стороне клиента — задавайте разумный лимит и считайте превышения как инциденты.
Стоимость: контроль расхода токенов
Большинство LLM-API возвращают объект usage с числом входных и выходных токенов. Логируйте его на каждый запрос и агрегируйте по дням. Это даёт ранний сигнал, если расход внезапно вырос — например, из-за раздутых промптов или цикла повторов.
- Логируйте input/output токены из поля
usageкаждого ответа. - Ставьте дневной порог расхода и алерт при его превышении.
- Следите за пиками — скачок токенов часто означает баг, а не рост нагрузки.
Частые вопросы
Можно ли мониторить LLM-API без траты токенов?
Да. Используйте лёгкий health- или models-endpoint, который не запускает генерацию. Так вы проверяете доступность и латентность сети, не платя за вывод модели.
Какой интервал проверки выбрать?
Для продакшен-зависимости — 1 минута (Pro). Это баланс между скоростью обнаружения инцидента и нагрузкой. На бесплатном плане доступны 5-минутные проверки и до 10 мониторов.
Как отличить «медленно» от «упало»?
Задайте таймаут на стороне клиента и считайте превышение таймаута падением. Дополнительно следите за p95/p99, чтобы поймать деградацию до полного отказа.
Куда приходят оповещения?
На enterno.io алерты доставляются в Telegram, Slack или через webhook. См. гайды по аптайм-мониторингу и по настройке оповещений.
Связанные материалы: аптайм-мониторинг, метрики производительности API, health-check endpoints, best practices оповещений.