ec2 未出现 X 射线跟踪,出现异常
X ray trace not appearing from ec2, getting exceptions
我正在编写一个代码,它将在 ec2 中 运行 并在 s3 中列出存储桶,因为我的 account.Code 工作正常。但是,当我尝试将 X 射线检测到其中时,X 射线痕迹没有出现。我在 pom.xml
中包含了 X 射线依赖项
我尝试了很多方法,比如引入Config,但是没有用。
有示例代码的人会有所帮助,因为关于它的资源不多,AWS 官方示例项目也不是很清楚。
@Configuration
public class WebConfig {
@Bean
public Filter TracingFilter() {
return new AWSXRayServletFilter(new DynamicSegmentNamingStrategy("MyApp", "*"));
}
}
@RestController
public class HelloController {
@RequestMapping("/")
public String index() throws IOException{
test();
return "Greetings from Spring Boot!";
}
public static void test() throws IOException {
final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
List<Bucket> buckets = s3.listBuckets();
System.out.println("Your Amazon S3 buckets are:");
for (Bucket b : buckets) {
System.out.println("* " + b.getName());
}
}
}
得到以下异常
2019-04-27 10:46:28.706 错误 3865 --- [pool-1-thread-1] c.a.x.s.sampling.pollers.RulePoller:轮询 GetSamplingRules 时遇到错误:
com.amazonaws.SdkClientException: 无法执行 HTTP 请求:连接到 127.0.0.1:2000 [/127.0.0.1] 失败:连接被拒绝(Connection refused)
在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1163) ~[aws-java-sdk-core-1.11.430.jar!/:na]
com.amazonaws.SdkClientException: Unable to execute HTTP request:
Connect to 127.0.0.1:2000
看起来 X-Ray Daemon 不是 运行 您的应用所在的 EC2 实例 运行。
Your App on EC2 --> X-Ray Daemon on EC2 --> AWS X-Ray API
在您的应用程序开始传播日志之前先尝试启动 X-Ray 守护程序(侦听默认 2000 端口)。
https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html
https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ec2.html
我正在编写一个代码,它将在 ec2 中 运行 并在 s3 中列出存储桶,因为我的 account.Code 工作正常。但是,当我尝试将 X 射线检测到其中时,X 射线痕迹没有出现。我在 pom.xml
中包含了 X 射线依赖项我尝试了很多方法,比如引入Config,但是没有用。
有示例代码的人会有所帮助,因为关于它的资源不多,AWS 官方示例项目也不是很清楚。
@Configuration
public class WebConfig {
@Bean
public Filter TracingFilter() {
return new AWSXRayServletFilter(new DynamicSegmentNamingStrategy("MyApp", "*"));
}
}
@RestController
public class HelloController {
@RequestMapping("/")
public String index() throws IOException{
test();
return "Greetings from Spring Boot!";
}
public static void test() throws IOException {
final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
List<Bucket> buckets = s3.listBuckets();
System.out.println("Your Amazon S3 buckets are:");
for (Bucket b : buckets) {
System.out.println("* " + b.getName());
}
}
}
得到以下异常
2019-04-27 10:46:28.706 错误 3865 --- [pool-1-thread-1] c.a.x.s.sampling.pollers.RulePoller:轮询 GetSamplingRules 时遇到错误:
com.amazonaws.SdkClientException: 无法执行 HTTP 请求:连接到 127.0.0.1:2000 [/127.0.0.1] 失败:连接被拒绝(Connection refused) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1163) ~[aws-java-sdk-core-1.11.430.jar!/:na]
com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to 127.0.0.1:2000
看起来 X-Ray Daemon 不是 运行 您的应用所在的 EC2 实例 运行。
Your App on EC2 --> X-Ray Daemon on EC2 --> AWS X-Ray API
在您的应用程序开始传播日志之前先尝试启动 X-Ray 守护程序(侦听默认 2000 端口)。
https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html https://docs.aws.amazon.com/xray/latest/devguide/xray-daemon-ec2.html