Как собрать и передать заголовки распространения b3 в запросе клиента grpc с помощью opentracing api?

Я использовал https://github.com/opentracing-contrib/java-grpc с jaegar tracer для включения трассировки в моей клиентской программе grpc. Теперь я хотел бы использовать сервисную сетку istio для обработки трассировки на стороне сервера. https://istio.io/latest/docs/tasks/observability/distributed-tracing/overview/. Таким образом, клиент grpc теперь должен отправлять соответствующие HTTP-заголовки трассировки вместе с каждым запросом клиента grpc, чтобы istio мог отправлять эти показатели в Jaegar. Есть ли у кого-нибудь рабочий пример получения информации об интервале трассировки в клиенте grpc и включения соответствующих заголовков распространения b3 в запрос клиента grpc?

В запросе клиента java / C # grpc необходимо передать следующие заголовки http:

  • x-запрос-идентификатор
  • x-b3-traceid
  • x-b3-спанид
  • x-b3-parentpanid
  • x-b3-сэмплированный
  • x-b3-флаги
  • x-ot-span-context

Спасибо.


person Resmi    schedule 12.10.2020    source источник


Ответы (1)


Взгляните на проект OpenTelemetry-Java-Instrumentation. Он может обеспечить автоматическое отслеживание вашего приложения без необходимости написания специального кода. Он использует инструментальный агент, который запускается в JVM рядом с вашим приложением.

java -javaagent:path/to/opentelemetry-javaagent-all.jar \
     -jar myapp.jar

Он поддерживает экспорт показателей в Jaeger

Он также поддерживает распространение заголовков в нисходящие запросы.

Они только что добавили поддержку b3-multi headers, так что новый выпуск должен быть доступен в ближайшие дни

person Kevin Brady    schedule 24.11.2020