From 488b871422eef255f27b6b4ebb2dc6d8d7088419 Mon Sep 17 00:00:00 2001 From: Karthik Kumar <1425446+karkum@users.noreply.github.com> Date: Tue, 17 May 2022 06:01:13 -0400 Subject: [PATCH] Support configuring queuedMaxSpans in AsyncReporter (#2157) --- .../autoconfig/zipkin2/ZipkinAutoConfiguration.java | 4 ++-- .../cloud/sleuth/zipkin2/ZipkinProperties.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/zipkin2/ZipkinAutoConfiguration.java b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/zipkin2/ZipkinAutoConfiguration.java index 06420396f..a72aac33d 100644 --- a/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/zipkin2/ZipkinAutoConfiguration.java +++ b/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/zipkin2/ZipkinAutoConfiguration.java @@ -128,8 +128,8 @@ public class ZipkinAutoConfiguration { CheckResult checkResult = checkResult(zipkinExecutor, sender, 1_000L); logCheckResult(sender, checkResult); - // historical constraint. Note: AsyncReporter supports memory bounds - AsyncReporter asyncReporter = AsyncReporter.builder(sender).queuedMaxSpans(1000) + // Note: AsyncReporter supports memory bounds + AsyncReporter asyncReporter = AsyncReporter.builder(sender).queuedMaxSpans(zipkin.getQueuedMaxSpans()) .messageTimeout(zipkin.getMessageTimeout(), TimeUnit.SECONDS).metrics(reporterMetrics) .build(zipkin.getEncoder()); diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java index 14d150819..a5472ddec 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java @@ -75,6 +75,11 @@ public class ZipkinProperties { private Locator locator = new Locator(); + /** + * Maximum backlog of spans reported vs sent. + */ + private int queuedMaxSpans = 1000; + public Locator getLocator() { return this.locator; } @@ -147,6 +152,14 @@ public class ZipkinProperties { this.encoder = encoder; } + public int getQueuedMaxSpans() { + return queuedMaxSpans; + } + + public void setQueuedMaxSpans(int queuedMaxSpans) { + this.queuedMaxSpans = queuedMaxSpans; + } + /** When enabled, spans are gzipped before sent to the zipkin server. */ public static class Compression {