aws-xray captureAWS аннотации - PullRequest
3 голосов
/ 14 мая 2019

Я начал использовать AWSXRay, чтобы лучше понять, почему производительность не идеальна в моей лямбда-функции. Эта лямбда-функция запускает службу gql, то есть имеет множество исходящих запросов к другим лямбда-функциям, а также DynamodB для кэширования.

Я добавил трассировку ко всем вызовам клиента aws-sdk, используя следующее в своем обработчике. Он изменяет импортированный модуль AWS, поэтому все последующее успешное использование клиентов AWS включает трассировку aws-xray независимо от того, какой модуль его импортирует. Потрясающие!

import AWS from 'aws-sdk';
import AWSXRay from 'aws-xray-sdk';
AWSXRay.captureAWS(AWS);

Вот пример вывода: enter image description here

Проблема

Проблема в том, что ни у одной из «Трассировок» нет аннотаций относительно параметров запросов. И аннотация, и метаданные каждой трассы пусты: enter image description here

Надежда

Надеюсь, что есть способ настроить модификации AWSXRay CaptureAWS таким образом, чтобы они включали аргументы каждого запроса aws-клиента в аннотации или метаданные.

Вопрос

Можно ли запросить, чтобы AWSXRay.captureAWS(AWS); включал параметры, передаваемые вызовам клиента aws sdk, либо в аннотации, либо в метаданные создаваемых им трассировок?

1 Ответ

3 голосов
/ 15 мая 2019

Раздел ресурсов содержит аргументы высокого уровня для некоторых клиентов, например, Имя таблицы DynamoDB. Не все аргументы фиксируются по умолчанию. Это потому, что они могут содержать информацию, которую пользователи не хотят отслеживать в своем следе, а также могут быть подробными.

На данный момент в X-Ray SDK недоступно использование произвольных параметров API. В качестве обходного пути на данный момент, я бы предложил вам обернуть ваши вызовы SDK в локальный подсегмент и записать параметры, которые вы хотите захватить, как аннотации или метаданные для этого подсегмента. Дайте мне знать, если вам нужна помощь в поиске документов, которые позволят вам создавать свои собственные подсегменты.

...