Использование 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.
Спасибо,
Йог