Pull to refresh

Comments 10

Вы бы хоть показали, куда этот propagation вбивать - в терминал ssh, IDE-шку или еще куда.

Ну товарищ про микро сервисы пишет надо полагать в заголовках http или метаданных grpc

В OpenTelemetry есть такой термин как Instrumentation, это по факту набор готовых middleware для различных популярных библиотек. Для http, gPRC тоже есть - вот ссылка на примеры его подключения https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/google.golang.org/grpc/otelgrpc/example

https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/net/http

После подключения этого инструмента к http, gRPC, вы сразу увидите все трейсы ваших запросов, но они будут не связаны. Для того что бы их связать нужно просто инициализировать propagation, как показано в статье. Сам instrumentation уже внутри своей реализации производит Inject и Extract.

В код вашего проекта на Go. Теги "Go, программирование" и в конце статьи ссылка, на пример реализации. Полный проект с инструкцией, как его развернуть локально, со всей нужной инфраструктурой: jaeger, NATS.

NATS! И этим все сказано!

Всё достаточно просто, если немного почитать документацию.

Вы до заголовка NATS никак не касались событийно-ориентированного рантайма, а просто пересказали термины распределенной трассировки. Незачет.

А что значит "событийно ориентированный рантайм"? Как вы реализуете свою систему полностью зависит от вашего проекта. Обычно в самом простом случае MQ выступает в роли шины данных между сервисами. У вас может быть rabbitMQ, Kafka это не имеет никакого значения, потому что принципы context propogation в open telemetry остаются такими же. В гайде на примере кода я показал, как ими пользоваться. Если вас интересует настройка инфраструктуры, загляните в пример проекта на GitHub-е, который я прикрепил к статье.

Статья ниачом.

Примеры, для чего, результаты где смотреть

А где вы обычно смотрите трейсы в вашей системе?

OpenTelemery поддерживает множество экспортеров. https://github.com/open-telemetry/opentelemetry-go/tree/main/exporters - Jaeger, OTPL, stdoutrace, zipkin.

В примере, который прикреплен в конце для трассировки используется Jaeger.

Хорошая статья, кратко, по делу, да еще и линк на репо. Спасибо, как раз искал что-то такое.

Sign up to leave a comment.

Articles