Создание единой карты сервиса в AWS X-Ray для лямбда-функции и микросервиса

У меня есть лямбда-функция AWS, которая имеет следы рентгеновских лучей (подсегменты), а изнутри есть http-вызов микросервиса (выборка, используемая NodeJS), в которой снова реализована трассировка рентгеновских лучей (подсегменты). Когда я нажимаю URL-адрес службы лямбда-функции, в X-Ray создаются две карты служб: одна для лямбда, а другая для микросервиса. Есть ли способ иметь единую карту обслуживания для обоих вместе? Можем ли мы передать идентификатор трассировки в нисходящий http-вызов (выборка, используемая NodeJS), чтобы получить единую карту обслуживания?


person Ramya Karuna    schedule 04.02.2019    source источник


Ответы (1)


AWS X-Ray SDK может перехватывать исходящие HTTP-запросы. Когда это произойдет, он добавит Заголовок X-Amzn-Trace-Id, который позволит инструментированным нижестоящим службам продолжить трассировку.

Вам нужно будет исправить глобальные модули http / https node.js с помощью X-Ray, чтобы этот заголовок был отправлен. Вы можете использовать метод AWSXRay.captureHttpsGlobal, передав в качестве аргумента либо require ('https'), либо require ('http'). Причина, по которой вы хотите захватить модуль глобально, заключается в том, что вы используете fetch, который должен использовать http / https за кулисами.

person Chris Radek    schedule 04.02.2019
comment
Спасибо за пояснение - person Ramya Karuna; 06.02.2019