Вступить в клуб →
сложнаявопросНаблюдаемость: метрики, трассировка, pprof

Спаны параллельных запросов к складам не привязаны к трассе заказа

g, _ := errgroup.WithContext(ctx)
for _, wh := range warehouses {
    g.Go(func() error {
        spanCtx, span := tracer.Start(context.Background(), "check_stock")
        defer span.End()
        return wh.Check(spanCtx, items)
    })
}

В Jaeger спаны check_stock появляются отдельными трассами. Что исправить?

  • Начинать спан от контекста группы
  • Не создавать спаны внутри горутин
  • Заменить errgroup на sync.WaitGroup
  • Вызывать span.End() без defer

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела