Почему обычного uptime недостаточно для ИИ

Сервис может отвечать с HTTP 200 и при этом давать устаревшие сведения, выбирать неверный инструмент, пропускать обязательную проверку или тратить в несколько раз больше токенов. Традиционный мониторинг видит доступность API, но не всегда видит качество решения.

Наблюдаемость ИИ соединяет логи, метрики, traces, оценки качества и обратную связь пользователя. Она должна позволить ответить: какой workflow сломался, на каком шаге, для какого сегмента, после какого изменения и с каким риском.

1
trace на пользовательскую операцию
4
оси: reliability, latency, cost, quality
0
необработанных критических алертов

Логи, метрики и traces отвечают на разные вопросы

СигналВопросПример
МетрикаЧто меняется во времени?Error rate, p95 latency, tokens per task
ЛогКакое событие произошло?Validator отклонил поле date
TraceГде прошёл конкретный запрос?Retrieval → model → tool → approval
EvalНасколько результат соответствует критерию?Grounding, correctness, policy pass
FeedbackЧто произошло с пользователем?Исправление, эскалация, отказ

Не пытайтесь заменить один сигнал другим. Trace объясняет конкретный сбой, метрики показывают масштаб, а eval проверяет смысл результата.

Начните с карты workflow и границ ответственности

Нарисуйте путь от пользовательского действия до бизнес-результата. Для RAG это подготовка запроса, поиск, reranking, сбор контекста, генерация, citation validation и выдача. Для агента добавляются планирование, tools, approvals, handoffs и внешние побочные эффекты.

Карта наблюдаемости
  1. Название workflow и владелец.
  2. Начало и успешный бизнес-результат.
  3. Все внешние зависимости.
  4. Модель, prompt, retrieval и tools.
  5. Guardrails и точки подтверждения.
  6. Критические ошибки каждого шага.
  7. Безопасный fallback и откат.
  8. Данные, которые запрещено сохранять.
  9. SLO и канал реагирования.

Trace и spans: скелет расследования

Trace представляет одну сквозную операцию, spans - отдельные шаги со временем начала, окончания, статусом и связью parent-child. OpenAI Agents SDK, например, трассирует генерации, function calls, handoffs, guardrails и custom events. OpenTelemetry задаёт общие семантические атрибуты для GenAI-операций.

Request
Workflow, tenant, segment и безопасный request ID.
Retrieval
Источник, количество, score и версия индекса.
Generation
Provider, request/response model, usage и finish reason.
Outcome
Validator, tool result, handoff и business status.

Какие атрибуты сохранять на каждом запуске

Минимум: trace ID, workflow, environment, tenant или сегмент в безопасном виде, версии приложения, prompt, модели, схемы и индекса, provider request ID, статус, длительность, usage, число попыток и код результата.

Для агента добавьте имя tool, результат approval, error category и признак побочного эффекта. Для RAG - data source, retrieval count, версию корпуса и результат citation check. Не помещайте user ID и полный текст в labels метрик: высокая cardinality делает систему дорогой и неудобной.

Спроектируй telemetry schema для ИИ-workflow.
Шаги: [перечень].
Риски данных: [классы].
Нужные расследования: [вопросы].
Раздели поля на metric labels, trace attributes, structured logs и запрещённый content. Для каждого укажи тип, cardinality, необходимость redaction, срок хранения и пример запроса, который это поле помогает расследовать.

Метрики надёжности: отделите провайдера от приложения

СлойМетрикиПричина
API моделиTimeout, rate limit, provider errorВнешняя зависимость
ParsingInvalid JSON, schema mismatchКонтракт ответа
RetrievalEmpty result, denied source, stale indexКонтекст
ToolsCall error, invalid args, duplicate actionИнтеграция
WorkflowSuccess, fallback, handoff, abandonmentПользовательский результат

Одна метрика errors смешивает причины и затрудняет реакцию. Используйте стабильную таксономию error_code и храните исходное сообщение отдельно с фильтрацией секретов.

Latency: смотрите путь и percentiles

Среднее время ответа скрывает длинный хвост. Отслеживайте p50, p95 и p99 по workflow и сегменту, time to first token для streaming, полное время, очередь, retrieval, каждую генерацию и tools.

Большая задержка может появиться не в модели: медленный поиск, последовательные вызовы, повтор после schema error или зависший внешний API. Waterfall trace показывает вклад каждого span. Устанавливайте timeout на шаг и общий deadline workflow.

Токены и стоимость: считайте на полезный результат

Собирайте input, output и доступные cache-token категории по каждому вызову, затем агрегируйте стоимость на workflow, пользователя, сегмент и успешный бизнес-результат. OpenTelemetry GenAI attributes предусматривают usage для input, output и cache.

  • Стоимость успешной операции.
  • Стоимость failed и abandoned runs.
  • Доля повторов и лишних agent turns.
  • Контекст на один retrieval result.
  • Изменение после версии prompt или модели.

Тарифы меняются: храните использованную таблицу цен с датой или рассчитывайте стоимость в аналитическом слое, не превращая старые traces задним числом в новые расходы.

Качество в production: proxy-сигналы и проверенные оценки

Клики, повторный запрос и thumbs up - полезные, но шумные proxy. Пользователь может принять убедительную ошибку. Комбинируйте их с автоматическими validators, выборочным human review и calibrated LLM graders.

Deterministic
Schema, расчёты, citations и policy rules.
Sampled eval
Grounding, relevance, completeness и tone.
Human
Критические сегменты и спорные случаи.
Outcome
Исправление, handoff и достижение задачи.

Мониторинг RAG: где теряется доказательство

Записывайте версию индекса, фильтры доступа, query rewrite, идентификаторы найденных документов, scores, reranking и citation validation. Содержимое документа по умолчанию не обязательно сохранять: часто достаточно ID и разрешённого excerpt либо hash.

Сигналы RAG
  1. Доля пустых retrieval results.
  2. Количество найденных и использованных фрагментов.
  3. Версия корпуса и время последнего обновления.
  4. Отказы фильтра прав доступа.
  5. Ответы без проверяемой citation.
  6. Утверждения, не поддержанные контекстом.
  7. Сегменты с низкой retrieval relevance.
  8. Вопросы без ответа в базе.

Мониторинг агентов: tools, loops и побочные эффекты

Агент может получить хороший финальный ответ неэффективным или опасным путём. Считайте turns, tool calls, повторные вызовы, handoffs, guardrail triggers, approvals и фактические side effects.

СигналЧто может означать
Резкий рост turnsLoop, плохая инструкция или недоступный tool
Повтор tool с теми же argsНет идемпотентности или потерян результат
Tool call после отказа approvalНарушена граница контроля
Много handoffsНеясная маршрутизация
Финал без результата toolВозможна выдумка об успешном действии

Безопасность traces и логов

OpenTelemetry предупреждает, что retrieval query, system instructions, tool arguments и tool results могут содержать чувствительную информацию. OpenAI Agents SDK также позволяет управлять включением потенциально чувствительных входов и выходов в trace.

Privacy by default
  1. Не писать полный content без утверждённой цели.
  2. Редактировать токены, пароли, контакты и идентификаторы.
  3. Разделить доступ к метаданным и содержимому.
  4. Шифровать transport и storage.
  5. Ограничить retention по классу данных.
  6. Аудировать доступ к traces.
  7. Не использовать production content в тестах автоматически.
  8. Поддерживать удаление данных субъекта, если применимо.
  9. Проверить политику стороннего tracing-провайдера.

Версии: без них график не объясняет причину

Каждый trace связывайте с версиями приложения, prompt, модели, tool definitions, guardrails, output schema, retrieval index и evaluator. Provider может вернуть фактически обслужившую модель - сохраняйте request и response model отдельно, когда API это поддерживает.

При rollout добавляйте cohort: control, canary или candidate. Тогда рост ошибок можно сопоставить с изменением, а не гадать по времени deploy.

SLO и алерты: сигнал должен требовать действия

SLO описывает допустимый уровень сервиса за окно времени. Для ИИ нужны не только availability и latency, но и критические бизнес-нарушения. Не ставьте alert на каждую отдельную плохую оценку: используйте severity, burn rate и минимальный объём, а опасные действия ловите немедленно.

Составь черновик SLO и alert policy для ИИ-workflow.
Пользовательский результат: [описание].
Критические нарушения: [список].
Метрики и сегменты: [список].
Рабочее время и on-call: [условия].
Для каждого сигнала предложи SLI, окно, severity, минимальный объём, владельца, ссылку на dashboard и первое безопасное действие. Пороги оставь параметрами для согласования на baseline, не придумывай цифры.

Dashboard: от руководителя к trace

Первый уровень показывает бизнес-результат, объём, success/fallback/handoff, стоимость и критические инциденты. Второй - breakdown по workflow, версии, сегменту и error class. Третий ведёт к конкретным traces и безопасным логам.

Не помещайте десятки графиков на один экран. У каждой панели должен быть вопрос: «ухудшилось ли качество после релиза», «где растёт стоимость», «какой tool создаёт ошибки».

Incident response для ИИ

  1. Обнаружить. Подтвердить сигнал и затронутый workflow.
  2. Ограничить. Отключить tool, перейти на fallback, остановить rollout или потребовать human approval.
  3. Сохранить доказательства. Trace IDs, версии и безопасные образцы.
  4. Оценить влияние. Пользователи, данные, действия и временной диапазон.
  5. Исправить. Prompt, validator, index, model или integration.
  6. Проверить. Воспроизвести на regression case и canary.
  7. Предотвратить. Добавить eval, alert и обновить playbook.

NIST AI RMF включает operation and monitoring в жизненный цикл AI и рекомендует документировать показатели, наблюдаемые в production. Пост-инцидентный разбор должен улучшать не только код, но и eval-набор.

План внедрения за четыре недели

Неделя 1
Workflow map, IDs, версии и data policy.
Неделя 2
Traces, spans, error taxonomy и usage.
Неделя 3
Quality sample, dashboard и baseline.
Неделя 4
SLO, alerts, playbooks и canary drill.

Финальный чек-лист production observability

Готовность мониторинга
  1. Определён пользовательский результат workflow.
  2. Есть end-to-end trace и spans важных шагов.
  3. Trace ID проходит через все сервисы.
  4. Ошибки имеют стабильную таксономию.
  5. Latency измеряется по percentiles и шагам.
  6. Usage и стоимость связаны с результатом.
  7. Quality оценивается по сегментам.
  8. RAG хранит версии корпуса и retrieval metadata.
  9. Агент логирует tools, approvals и side effects.
  10. Все компоненты имеют версии.
  11. Чувствительный content исключён или редактируется.
  12. Доступ и retention утверждены.
  13. SLO и алерты имеют владельца.
  14. Каждый alert ведёт к dashboard, traces и playbook.
  15. Есть безопасный fallback и rollback.
  16. Инциденты превращаются в regression evals.

Хороший мониторинг не пытается сохранить всё. Он собирает минимально достаточные доказательства, чтобы быстро увидеть влияние, найти причину и безопасно восстановить пользовательский результат.

Что такое LLM observability?
Это наблюдаемость систем на базе языковых моделей с помощью метрик, логов, traces, оценок качества и пользовательских результатов. Она показывает не только доступность API, но и поведение retrieval, моделей, инструментов и guardrails.
Чем trace отличается от обычного лога?
Лог фиксирует отдельное событие. Trace связывает все операции одного пользовательского workflow, а spans показывают длительность и результат каждого шага, поэтому можно увидеть полный путь и место сбоя.
Какие метрики ИИ нужно отслеживать?
Минимально - success и error rate по причинам, latency по percentiles, input/output tokens, стоимость на результат, retries, fallback и handoff. Для качества добавляют validators, sampled evals и продуктовые outcomes.
Нужно ли сохранять все промпты и ответы?
Нет. Они могут содержать персональные данные, секреты и закрытые документы. По умолчанию лучше сохранять безопасные метаданные, применять redaction и отдельно обосновывать доступ и срок хранения полного content.
Как мониторить RAG-систему?
Храните версию индекса, query transformation, фильтры доступа, найденные document IDs и scores, а также результат проверки citations и grounding. Retrieval и качество ответа оценивайте раздельно.
Как понять, что ИИ-агент зациклился?
Следите за количеством turns, повторными tool calls с одинаковыми аргументами, временем workflow и отсутствием прогресса. Ограничивайте шаги и общий deadline, после чего переходите на fallback или human handoff.
Что должно быть в алерте по ИИ?
Сигнал, окно, затронутый workflow и сегмент, severity, ссылка на dashboard и traces, владелец и первое безопасное действие. Порог следует выбирать по baseline и допустимому риску.
Как связать production-мониторинг и evals?
Подтверждённые сбои из production превращайте в regression cases. Offline evals используйте перед релизом, а production sampling - для обнаружения новых сценариев и проверки сдвига качества.
← Все статьи блога