Как отслеживать сеанс через несколько веб-приложений, несколько микросервисов - PullRequest
0 голосов
/ 20 января 2019

Я бы хотел отслеживать сеанс между несколькими веб-приложениями, несколькими микросервисами.Все мои веб-приложения представляют собой статические файлы, а микросервисы работают в контейнерах nodejs с Kubernetes.

У меня есть настройка отслеживания для отдельных веб-приложений и отдельных микросервисов.Но слишком громоздко объединять и просматривать все в одном представлении.

Существует ли какой-либо подход для просмотра всех из них в течение одного сеанса?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы можете отслеживать HTTP-запросы к различным микросервисам (приложениям), используя специальный заголовок для сопоставления всех последующих запросов с исходным.

Например, ваше веб-приложение отправляет HTTP-запрос (вызов REST API) напервый микросервис (A), который находит, что запрос не имеет идентификатора корреляции (заголовок x-correlationid), и добавляет его, затем сохраняет этот идентификатор корреляции в текущий контекст вызова / сеанса и перенаправляет его на все последующие вызовы API другим микросервисам,затем, когда все другие микросервисы будут следовать той же логике, они также будут добавлять / использовать идентификатор корреляции, у вас будет возможность проследить запрос по всем микросервисам в системе.

этот шаблон используется многими APM(мониторинг производительности приложений) инструменты.и после того, как все ваши журналы агрегированы в одном месте, вы можете отфильтровать ваши запросы по определенному идентификатору корреляции, чтобы увидеть полный след конкретного пользовательского запроса / операции.

0 голосов
/ 20 января 2019

Сам Kubernetes не поддерживает трассировку запросов, но вы можете использовать Istio вместе с Kubernetes, который имеет Distributed Tracing .

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

Кроме того, он поддерживает Mesh, поэтому теоретически ваше приложение может работать немного быстрее и безопаснее (из-за сетевых правил).

Вы можете прочитать об Istio здесь , о трассировке здесь и здесь - это инструкция по настройке в Kubernetes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...