我们有一个spring-boot应用程序(spring-boot-starter-parent-2.0.0.RELEASE),它使用spring-cloud-starter-zipkin将“span”写入zipkin。
我们也使用了spring-integration (通过spring-boot-starter- integration ),并且我们已经添加了一个带有PollableChannel的集成流,以便在轮询器中使用:
@Bean
public PollableChannel pollableChannel() {
return new QueueChannel(100);
}
@Bean
@ServiceActivator(poller = @Poller(taskExecutor="batchTaskExecutor"),
inputChannel= "pollableChannel")
public MyHandler myHandler() {
return new MyHandler();
}自添加此配置以来,我们每秒都有一个“异步”跨度。这个跨度似乎来自@Poller,用于检查队列中是否有项目。
我想知道如何控制这个跨度。是否可以禁用?特别是如果没有项目的话。
提前感谢!
发布于 2018-07-20 16:46:33
如果它来自@Scheduled方法,那么您可以使用https://github.com/spring-cloud/spring-cloud-sleuth/blob/master/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/SleuthSchedulingProperties.java#L38 (spring.sleuth.scheduled.skipPattern)来查找线程并禁用它。如果你说它的名字是async,那么它的意思是它来自TraceRunnable或TraceCallable。要摆脱它可能会有问题。您可以在Sleuth中提交一个问题,允许SpanAdjuster实际上不向Zipkin发送跨度(例如,通过返回null)。您还可以尝试在所有spring.sleuth.async.enabled上禁用异步。如果您没有使用异步的任何其他功能,这应该不会干扰。
https://stackoverflow.com/questions/51438273
复制相似问题