Как распечатать пользовательские подсегменты в консоли управления AWS X-Ray? - PullRequest
1 голос
/ 25 марта 2019

Я добавил основной сегмент для маршрутов для моего REST API, который написан на Node.js и работает с функцией Lambda. Я также включил трассировку шлюза API для X-Ray. Я хочу видеть синхронизацию SQL-запросов как подсегмент из консоли X-Ray, поэтому я использовал функцию AWSXRay.captureAsyncFunc и добавил ее для всех SQL-запросов, и я могу печатать журналы трассировки. На следующем снимке экрана показаны сегмент и подсегмент для запроса GET.

Logging X-Ray segment and subsegment

Я хочу увидеть подсегмент в консоли управления AWS X-Ray. В разделе трассировки X-Ray я вижу только тайминги API Gateway и Lambda.

API Gateway and Lambda segments in the AWS X-Ray console

Кто-нибудь знает, как печатать пользовательские подсегменты на временной шкале X-Ray?

Когда я нажимаю на необработанные данные с консоли X-Ray, это то, что я вижу. Я хочу видеть мой пользовательский сегмент. На вкладке «Необработанные данные» отображаются только сегменты API Gateway и Lambda.

Raw data tab

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Какая версия вашей лямбда-функции в Node? Какой тип обработчика лямбда-событий вы используете? Какую версию X-Ray Node SDK вы используете? Какой стиль / библиотеку вы используете для вызова базы данных SQL? Это обратный вызов, обещание или асинхронное ожидание?

Причина, по которой ваш подсегмент getItem не показан, вероятно, состоит в том, что в ваших журналах трассировки подсегмент не имеет parent_id. Это потенциально проблема с совместимостью между средой выполнения Lambda и X-Ray SDK для Nodejs, так что подсегмент SQL записан неправильно.

Пожалуйста, не стесняйтесь открывать вопрос на https://github.com/aws/aws-xray-sdk-node с ответами на поставленные выше вопросы, чтобы можно было обойти эту проблему.

1 голос
/ 25 марта 2019

Они отображаются на вкладке «Необработанные данные» в представлении временной шкалы консоли. Это показывает тот же самый json, который был возвращен API BatchGetTraces.

...