Sleuth を使用して、Spring クラウド統合 aws + AWS SQS アプリをトレースしようとしています。メッセージがキューに追加された後、レシーバーは SQS からメッセージを受信します。ログにはアプリ名がありますが、SQL キューからメッセージを受信している間、トレース ID とスパン ID はありません。ログからの行は次のとおりです。
2017-07-28 16:24:02.352 INFO [sqs-sleuth-demo,,,] 9706 --- [enerContainer-2] com.example.demo.SQSMessageReceiver: キューから取り出されたメッセージ: Hello world
Spring Boot '1.5.4.RELEASE' と Spring Cloud 'Dalston.SR1' を使用しています。依存関係は次のとおりです。
dependencies {
compile("org.springframework.boot:spring-boot")
compile("org.springframework.boot:spring-boot-starter")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.cloud:spring-cloud-aws-messaging")
compile("org.springframework.cloud:spring-cloud-aws-autoconfigure")
compile('org.springframework.cloud:spring-cloud-starter-sleuth')
compile("org.springframework.integration:spring-integration-aws:1.0.0.RELEASE")
compile("com.amazonaws:aws-java-sdk-sqs")
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
AppConfig.java
@Configuration
public class AppConfig {
@Value("${amazon.aws.accesskey}")
private String amazonAWSAccessKey;
@Value("${amazon.aws.secretkey}")
private String amazonAWSSecretKey;
@Value("${amazon.sqs.endpoint}")
private String amazonSqsEndpoint;
@Value("${cloud.aws.region.static}")
private String awsRegion;
@Bean
@Primary
public AWSCredentialsProviderChain credentialsProviderChain() {
return new DefaultAWSCredentialsProviderChain();
}
}
SQSMessageReceiver.java
@Component
public class SQSMessageReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(SQSMessageReceiver.class);
@Autowired
private RestTemplate restTemplate;
@SqsListener(value="${amazon.sqs.queue.name}", deletionPolicy = SqsMessageDeletionPolicy.ON_SUCCESS)
public void receive(String message) throws Exception {
LOGGER.info("dequeued message: " + message);
}
}
および、DemoApplication.java
@SpringBootApplication
@EnableSqs
public class DemoApplication {
private static final Logger LOGGER = LoggerFactory.getLogger(DemoApplication.class);
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Sleuthまたは設定/コードに問題があるSQSイベントをトレースすることは可能ですか?
ありがとう、