Распределенная трассировка от мобильного приложения до бэкэнда и включение пользовательской информации

У нас есть мобильные приложения для Android и iOS (Objective-C). Наша команда бизнес-аналитики заинтересована в получении следующих параметров для каждого события данных:

  • версия приложения
  • идентификатор сеанса пользователя

Мы используем gRPC как для связи с мобильным бэкэндом, так и для связи между различными микросервисами на бэкэнде.

Я рассматриваю возможность отправки этой информации с использованием открытых трасс трассировки, которые запускаются в мобильном приложении и передают версию приложения и идентификатор сеанса через Багаж.

Кто-нибудь может посоветовать, подходит ли для этого сценария открытая трассировка или есть лучшая альтернатива?

Мы также рассматриваем возможность использования LinkerD на сервере

1 ответ

Я не уверен, что багаж действительно то, что вы хотите. OpenTracing также предлагает возможность добавления тегов в диапазон, что, вероятно, будет достаточно для вашего варианта использования.

Багажная единица отправляется вниз по течению вместе с контекстом диапазона, тогда как тег является "локальным" для диапазона. Если вам нужен доступ к версии приложения на пролете ниже по течению, вам действительно нужно использовать предмет багажа, но если все, что вам нужно, это иметь информацию о версии в пределах пролета, вам просто нужно пометить ее.

О том, подходит ли OpenTracing или нет: я бы сказал, что именно в этом и заключается цель OpenTracing. Потенциально вы получите не только "автоматические" диапазоны из используемых вами фреймворков (используя "интеграцию фреймворков"), но также вы можете связать это с вашей бизнес-информацией. У нас есть пример на Hawkular APM, в который мы добавляем как "оперативные", так и "бизнес" данные в трассировки.

Другие вопросы по тегам