Pull to refresh

Comments 3

А что если у span-а нужно больше одного parent-а? Скажем, я запускаю фоновую задачу, которая батчем обрабатывает записи. И запись с traceid, и батч. Там можно такое, или придется выбирать?

Тут стандарт упоминает сущность SpanKind, которая как раз поможет определить, был ли вызов как цепочка (Аля РПЦ или АПИ запрос) или задачи были заспавнены отложенно (вида Producer/Consumer). Касательно батча, зависит что хотите увидеть, я бы каждую задачу в батче помечал.

Мы хотим получить сквозной trace, в котором будет видно всё: создание задачи, её обработку и обновление

Идея так себе. Большинство систем считают один трейс одним запросом, и если воркер берет задачи асинхронно (вплоть до остановки на пару часов) - время "запроса" потом будет показывать погоду на марсе и кроме как для логов такие трейсы будут бесполезны (по ним даже нельзя будет сказать жив ли сервер или нет, вдруг воркер спал). Лучше завести ещё одну переменную и передавать её внутри tracestate. Тогда отдельные трейсы будут отдельными, но отследить выполнение задачи все равно будет легко

Sign up to leave a comment.

Articles