Коротко. Observability для LLM-приложения строится из трёх уровней: трейсы запросов (промпт, ответ, токены, стоимость, латентность), оценка качества (eval) и внешний мониторинг сайтов доступности самих LLM-API документацию. Трейсинг и eval закрывают специализированные инструменты вроде Langfuse; внешний слой — аптайм, латентность и доступность эндпоинтов — закрывает enterno.io через HTTP-мониторинг и heartbeat для фоновых задач.
Чем LLM-observability отличается от классической
В обычном бэкенде вы смотрите на коды ответов и время. В LLM-приложении к ним добавляются:
- токены на вход и выход — напрямую влияют на стоимость;
- стоимость запроса в деньгах, а не только в миллисекундах;
- качество ответа — корректность, релевантность, отсутствие галлюцинаций;
- доступность провайдера — внешний API может деградировать или отвечать 429/5xx.
Три уровня observability
- Трейсинг — что именно ушло в модель и что вернулось.
- Eval — насколько ответ хорош по вашим критериям.
- Внешний мониторинг доступности — жив ли вообще LLM-эндпоинт и как быстро отвечает.
Большинство команд начинают с трейсинга, забывая про третий уровень. А именно недоступность провайдера ночью чаще всего и роняет продакшен.
| Уровень | Что отвечает | Чем закрывать |
|---|---|---|
| Трейсинг | Что ушло в модель и вернулось | Langfuse и аналоги |
| Eval | Качество ответа по вашим критериям | Eval-инструменты |
| Внешняя доступность | Жив ли эндпоинт и латентность | enterno.io (HTTP + heartbeat) |
Как выглядит трейс
Минимальный трейс одного LLM-вызова — структурированная запись с ключевыми полями:
{
"trace_id": "req-8f21",
"model": "gpt-4o-mini",
"input_tokens": 812,
"output_tokens": 134,
"latency_ms": 1840,
"cost_usd": 0.00021,
"status": "ok"
}
Эти поля логируйте на каждый вызов: они дают и стоимость, и латентность, и базу для алертов.
Health-check LLM-эндпоинта
Прежде чем строить сложную аналитику, заведите простую внешнюю проверку доступности и времени ответа эндпоинта:
curl -o /dev/null -s -w "%{http_code} %{time_total}s\n" \
https://api.example-llm.com/v1/health
То же самое можно поставить на постоянный мониторинг в enterno.io как HTTP-монитор с интервалом 1 минута и алертами в Telegram/Slack при коде ≠ 200 или росте латентности.
Что мониторить внешним слоем
- Доступность LLM-API — health-эндпоинт провайдера или ваш прокси.
- Латентность — рост времени ответа как ранний сигнал деградации.
- Фоновые агенты — heartbeat: если воркер перестал «Ping инструмент», вы узнаете сразу.
- SSL и DNS эндпоинтов, через которые ходят запросы.
Где проходит граница ответственности
Будем честны: enterno.io — это availability-слой, а не замена трейсинга и eval. Для разбора промптов, версионирования и оценки качества используйте специализированные инструменты (Langfuse и аналоги). enterno.io отвечает на вопрос «жив ли провайдер и как быстро отвечает», и закрывает его из РФ, ЕС и США.
Минимальный стартовый набор
- Логируйте трейс на каждый вызов (поля выше).
- Поставьте внешний HTTP-мониторинг health-эндпоинта.
- Накройте фоновые задачи heartbeat.
- Добавьте eval-инструмент, когда нужна оценка качества.
FAQ
enterno.io заменяет Langfuse?
Нет. Langfuse — про трейсинг и eval внутри приложения. enterno.io — про внешнюю доступность и латентность эндпоинтов плюс heartbeat агентов.
Как поймать рост стоимости?
Логируйте токены и cost на каждый трейс и стройте дашборд; внешний мониторинг при этом ловит недоступность, которая тоже бьёт по бюджету через ретраи.
Можно ли мониторить из России?
Да, HTTP-мониторинг доступен из точки ru-msk, на платных тарифах — ЕС и США.
Что делать с фоновым агентом?
Используйте heartbeat: агент периодически пингует enterno.io, а сервис алертит, если пинг пропал.
Начните с внешнего слоя: заведите HTTP-мониторы на странице мониторов и подключите heartbeat для агентов.
По теме: мониторинг AI/LLM-API, инструменты мониторинга API, мультирегион.