Распределенная трассировка от мобильного приложения до бэкэнда и включение пользовательской информации
У нас есть мобильные приложения для Android и iOS (Objective-C). Наша команда бизнес-аналитики заинтересована в получении следующих параметров для каждого события данных:
- версия приложения
- идентификатор сеанса пользователя
Мы используем gRPC как для связи с мобильным бэкэндом, так и для связи между различными микросервисами на бэкэнде.
Я рассматриваю возможность отправки этой информации с использованием открытых трасс трассировки, которые запускаются в мобильном приложении и передают версию приложения и идентификатор сеанса через Багаж.
Кто-нибудь может посоветовать, подходит ли для этого сценария открытая трассировка или есть лучшая альтернатива?
Мы также рассматриваем возможность использования LinkerD на сервере
1 ответ
Я не уверен, что багаж действительно то, что вы хотите. OpenTracing также предлагает возможность добавления тегов в диапазон, что, вероятно, будет достаточно для вашего варианта использования.
Багажная единица отправляется вниз по течению вместе с контекстом диапазона, тогда как тег является "локальным" для диапазона. Если вам нужен доступ к версии приложения на пролете ниже по течению, вам действительно нужно использовать предмет багажа, но если все, что вам нужно, это иметь информацию о версии в пределах пролета, вам просто нужно пометить ее.
О том, подходит ли OpenTracing или нет: я бы сказал, что именно в этом и заключается цель OpenTracing. Потенциально вы получите не только "автоматические" диапазоны из используемых вами фреймворков (используя "интеграцию фреймворков"), но также вы можете связать это с вашей бизнес-информацией. У нас есть пример на Hawkular APM, в который мы добавляем как "оперативные", так и "бизнес" данные в трассировки.