Использование AWS X-Ray из другой библиотеки классов C#

Я пытаюсь интегрировать AWS X-Ray в одно из моих приложений, но я разочарован. Я чувствую, что в документации Amazon немного не хватает примеров, но, надеюсь, некоторые из вас могут мне помочь.

Моим основным приложением является микросервис Web API, встроенный в C#. У меня есть отдельный клиент, который вызывает микросервис, и затем микросервис связывается с 1) сторонним API и 2) некоторыми сервисами AWS, такими как DynamoDb и SNS. Кроме того, я создал библиотеку-оболочку для сервисов AWS, поэтому вместо прямого вызова AWSDynamoDBClient я вызываю ее через свою оболочку.

На консоли AWS X-Ray я вижу все входящие и исходящие звонки в / из моего микросервиса. Однако я не вижу ничего для DynamoDb. Если я создаю AWSDynamoDBClient непосредственно в моем микросервисе (в обход оболочки), то я вижу весь трафик, как и ожидалось. Но как только я звоню через обертку, ничего не происходит.

Я даже пытался ввести AWSXRayRecorder.Instance из моего микросервиса в мою обертку, но все равно ничего. Я не уверен, что я делаю неправильно, и сейчас я немного растерялся.

Какие-либо предложения?

Изменить: в моей библиотеке оболочки AWS я делаю следующее:

client = new AmazonDynamoDBClient(); new AWSSdkTracingHandler(recorder).AddEventHandler(client);

recorder является AWSXRayRecorder.Instance впрыскивается из вызывающего микросервиса (я не уверен, если это необходимо, чтобы передать его, как это, или я могу просто позвонить AWSXRayRecorder.Instance прямо из библиотеки).

Это не работает Если я напишу тот же код в микросервисе, то он заработает, и я смогу увидеть узлы DynamoDb на рентгенограмме в консоли AWS

1 ответ

Не могли бы вы подробнее рассказать о том, как вы настраиваете клиент-оболочку с помощью AWS X-Ray. Обычно, следующий способ регистрации:

var ddbClient = new AmazonDynamoDBClient(RegionEndpoint.USEast1); new AwsSdkTracingHandler(AWSXRayRecorder.Instance).AddEventHandler(client);

"клиент" (AmazonDynamoDBClient) должен быть зарегистрирован. Клиент создан, зарегистрирован в X-Ray и используется в приложении одинаково?

Мы (команда AWS X-Ray) очень активны на официальном форуме AWS X-Ray. Мы с большей вероятностью быстро ответим на будущие сообщения, если они будут сделаны на специальном форуме X-Ray.

Спасибо,

Йог

Другие вопросы по тегам