3

我有一个 Web 应用程序(spring),我想使用 AWS-XRay 进行检测。根据文档,我在我的 web.xml 中添加了“AWSXRayServletFilter”,并在我的 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”的子段:找不到段

解决此问题的任何指示都会有所帮助

4

2 回答 2

5

初始化全局记录器时,还应该启动父段。您正在尝试创建一个没有细分的子细分。

AWSXRay.setGlobalRecorder(AWSXRayRecorderBuilder.defaultRecorder());
AWSXRay.beginSegment("MySeg");
于 2017-10-26T18:42:55.003 回答
2

我只在模拟 dynamodb 的 junit-tests 中得到了这个。修复我把

AWSXRay.beginSegment("AmazonDynamoDBv2");

在测试设置中(@Before)

我没有触及实施,因为我相信这是亚马逊已经在其 SDK 中所做的事情?

于 2018-11-07T08:03:29.327 回答