DISTRIBUTED TRACING · КУДА УШЛО ВРЕМЯ
Один вопрос пользователя проходит через несколько сервисов: шлюз, RAG, поиск, модель. Когда ответ пришёл через 3 секунды вместо одной, в логах каждого сервиса по отдельности всё «нормально». Трассировка связывает все шаги одного запроса общим trace_id и рисует их на одной шкале времени.
01 · сервисы и контекст заголовок traceparent (W3C)
При каждом вызове следующего сервиса передаётся заголовок 00-trace_id-span_id-01. Принимающий сервис разбирает его и делает свой спан дочерним. Так шаги из разных процессов складываются в одно дерево.
02 · водопад спанов trace
04 · что видно по трейсу
собираю трейс…
Трассировщик, генерация id, формат traceparent и его разбор, дерево спанов и тайминги работают в браузере. Шаги поиска (BM25, вектор на эмбеддингах MiniLM, RRF) и сборка промпта выполняются и измеряются по-настоящему, поэтому их спаны короткие. Вызовы LLM заменены задержкой заданной длины, а сбой во втором запросе (зависание и повтор) задан сценарием.
~/ai $ POST /ask