~/ai — production — tracing
‹ ai engineering22 / продакшен

DISTRIBUTED TRACING · КУДА УШЛО ВРЕМЯ

Один вопрос пользователя проходит через несколько сервисов: шлюз, RAG, поиск, модель. Когда ответ пришёл через 3 секунды вместо одной, в логах каждого сервиса по отдельности всё «нормально». Трассировка связывает все шаги одного запроса общим trace_id и рисует их на одной шкале времени.

01 · сервисы и контекст заголовок traceparent (W3C)
gateway
rag
llm
При каждом вызове следующего сервиса передаётся заголовок 00-trace_id-span_id-01. Принимающий сервис разбирает его и делает свой спан дочерним. Так шаги из разных процессов складываются в одно дерево.
02 · водопад спанов trace
03 · спан под лупой
04 · что видно по трейсу
собираю трейс…
Трассировщик, генерация id, формат traceparent и его разбор, дерево спанов и тайминги работают в браузере. Шаги поиска (BM25, вектор на эмбеддингах MiniLM, RRF) и сборка промпта выполняются и измеряются по-настоящему, поэтому их спаны короткие. Вызовы LLM заменены задержкой заданной длины, а сбой во втором запросе (зависание и повтор) задан сценарием.
~/ai $ POST /ask