# ✨ Собирать путь одной записи по конвейеру запросом - **Тип:** feature - **Категория:** Очередь — Применяет словарь метрик, который выберет разведка строкой выше. - **Зачем:** Звенья пути связаны только идентификатором задачи в строках журнала: чтобы понять, где запись провела минуты, владелец читает логи контейнера глазами. Путь одной записи по конвейеру собирается запросом, а не чтением логов глазами. Путь длиной в минуты идёт через четыре внешних сервиса и три воркера. Сегодня его звенья связывает `job_id` в строках журнала, и собирает их человек. **Форма ответа зависит от исхода разведки** `opentelemetry-fit`: с OpenTelemetry это трасса со спанами на шаг, без него — отметки времени переходов у самой задачи и запрос по ним. Разведка выбирает словарь, эта задача его применяет. ## Затрагивает - таблица задач: отметки времени перехода между состояниями и их шаг схемы — либо экспорт спанов, если разведка выберет трассировку; - шаги конвейера — место, где отмечается начало и конец звена; - способ прочитать собранное: запрос к хранилищу либо внешний приёмник трасс; - `docs/architecture.md`, раздел эксплуатации — как читается путь записи; - `docs/security.md` — путь записи не несёт ни текста, ни имени файла. ## Критерии приёмки - Путь записи от приёма до готового текста читается одним обращением, без чтения журнала. Оракул — тест: прогнать задачу через все шаги на подставных адаптерах и получить длительность каждого звена. - Путь отказавшей записи показывает звено, на котором она встала. Оракул — тест с отказом на конвертации: звено названо, дальнейших звеньев нет. - Собранное не несёт содержимого записи. Оракул — тест: в ответе только идентификаторы, состояния, длительности и расширение. ## Рамки Берётся после `opentelemetry-fit`: пока словарь не выбран, работа рискует быть переписанной целиком. Хранение путей дольше срока жизни задачи за задачей не стоит.