Observability в 2026: как реально наблюдать LLM-приложение
LLM observability в 2026: traces, spans, scores, prompt versions, tool calls, OTel, Langfuse, LangSmith, Helicone, privacy controls и alerting.
В 2026 observability для LLM уже не сводится к дашборду “сколько токенов и какая latency”. Production-команда должна видеть полную траекторию ответа: какой prompt version ушёл, какие документы retrieved, какие tools вызвались, сколько стоил каждый шаг, какой score дал eval-слой и что именно увидел пользователь.
Именно поэтому современная LLM observability строится вокруг trace graph, а не вокруг одной метрики.
Обычный APM говорит: “запрос занял 2.4 секунды”. LLM-observability должна отвечать на другой вопрос: “почему именно этот ответ получился плохим, дорогим или медленным?”. Для этого нужен не только таймер, а полная цепочка событий: retrieval, prompt assembly, model call, tool calls, filters, scoring и feedback.
Не думайте, что логировать raw prompt и response уже достаточно. Без trace_id, session/thread, prompt version, model/version, retrieved context, tool spans и scores у вас будут красивые логи, но не будет нормальной диагностики.
trace_id, session_id, user_id или анонимный actor key;
provider, model, model version;
prompt version / prompt registry id;
input, output, token usage, cached tokens;
retrieval docs, tool calls, tool latency;
business outcome и quality score;
user feedback и refusal / guardrail events.
Без техники
Есть только логи ответа и общая стоимость за день. Пользователи жалуются на деградацию, но непонятно, виноват retrieval, prompt, новая модель или tool timeout.
С техникой
По трейсам видно: после релиза prompt v18 retrieval depth вырос, context стал длиннее, p95 latency поднялся, cache hit rate просел, а judge-score упал. Решение уже не нужно угадывать.
ПромптTrace-first debugging
Пользователь пишет: «бот стал отвечать медленно и хуже». Что нужно увидеть в трейсе?
Ответ модели
Нужно увидеть prompt version, model route, retrieved docs, size assembled context, tool spans, cache hits, output schema status, judge-score и user feedback. Только так можно отделить модельную проблему от context или orchestration проблемы.
Старые статьи про observability часто останавливались на трёх вещах:
latency;
cost;
errors.
Этого уже мало. Для LLM-систем нужны ещё scores:
user thumbs up / down;
LLM-as-judge score;
factuality / groundedness score;
business score;
policy / safety labels.
Практически это означает, что observability и eval больше нельзя разводить по разным мирам. Хорошая система связывает:
production trace;
evaluation result;
regression after release;
feedback loop в dataset.
Каждый значимый ответ должен иметь не только trace_id, но и один или несколько scores. Без этого вы видите “что произошло”, но не видите, было ли это хорошо.
Helicone остаётся удобным вариантом для gateway-first observability:
быстрое включение через proxy / gateway;
usage, spend и provider analytics почти без переписывания кода;
кэш и policy-layer рядом с метриками.
Но gateway не заменяет глубокий app trace. Он хорошо закрывает ingress и provider-level telemetry, но не даёт автоматически весь ваш internal workflow.
OpenTelemetry важен не как “ещё один продукт”, а как общий язык телеметрии. GenAI semantic conventions позволяют не зашивать всё намертво под одного вендора observability.
Это особенно полезно, если у вас уже есть:
Datadog / Grafana / Tempo / Honeycomb;
общий OTel pipeline;
security и compliance требования на единый telemetry substrate.
Плюсы
Trace-first подход связывает latency, cost, quality и tooling
Scores и feedback превращают логи в диагностический инструмент
OTel снижает vendor lock-in
Prompt versioning и eval link делают откаты и релизы управляемыми
Минусы
Raw traces без privacy-слоя легко превращаются в compliance-проблему
Gateway-only observability не показывает весь внутренний workflow
Без scores даже хороший tracing остаётся полуслепым
Слишком детальные traces быстро становятся дорогими и шумными
У нас уже есть логи prompt/response и дневной spend dashboard. Чего не хватает для нормальной LLM observability?
Ответ модели
Не хватает trace graph со spans, prompt/version linkage, retrieved context visibility, tool spans, scores, feedback binding, route-level alerts и privacy/sampling policy. Сейчас у вас usage logs, а не полноценная observability.