Сегмент AWS X-Ray AmazonDynamoDBv2 не найден
У меня есть веб-приложение (весна), которое я хочу использовать с помощью AWS-XRay. Я добавил "AWSXRayServletFilter" в мой web.xml и приведенный ниже фрагмент в моем классе конфигурации Spring согласно документации.
static {
AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard()
.withPlugin(new EC2Plugin()).withPlugin(new ECSPlugin());
builder.withSamplingStrategy(new DefaultSamplingStrategy());
AWSXRay.setGlobalRecorder(builder.build());
}
Приведенная ниже зависимость также добавлена в pom.xml
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-xray-recorder-sdk-aws-sdk-instrumentor</artifactId>
<version>1.2.0</version>
</dependency>
Во время запуска приложения я получаю следующее исключение.
com.amazonaws.xray.exceptions.SegmentNotFoundException: не удалось начать подсегмент с именем "AmazonDynamoDBv2": сегмент не найден
Любые указатели для решения этой проблемы будут полезны
2 ответа
Когда вы запускаете глобальный регистратор, вы также должны запустить родительский сегмент. Вы пытаетесь создать подсегмент без сегмента.
AWSXRay.setGlobalRecorder(AWSXRayRecorderBuilder.defaultRecorder());
AWSXRay.beginSegment("MySeg");
Я получил это только в junit-тестах, где динамодб был высмеян. Чтобы исправить я поставил
AWSXRay.beginSegment("AmazonDynamoDBv2");
в тестовой настройке (@Before)
Я не касался реализации, так как считаю, что это то, что Amazon уже делает в своем SDK?