This is an automated email from the ASF dual-hosted git repository.
dao-jun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 4addfdab1a2 [fix] Fix flaky
BrokerDispatchRateLimiterTest.testBrokerDispatchThrottledMetrics (#25567)
4addfdab1a2 is described below
commit 4addfdab1a2c57ec23148b27abef0b5d437b076b
Author: Pavel Zeger <[email protected]>
AuthorDate: Wed Apr 22 17:48:29 2026 +0300
[fix] Fix flaky
BrokerDispatchRateLimiterTest.testBrokerDispatchThrottledMetrics (#25567)
---
.../service/BrokerDispatchRateLimiterTest.java | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
index 0db1a0f13ac..2a55e946ca0 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
@@ -20,11 +20,14 @@ package org.apache.pulsar.broker.service;
import static
org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsClient.parseMetrics;
import static org.testng.Assert.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
import com.google.common.collect.Multimap;
import java.io.ByteArrayOutputStream;
+import java.time.Duration;
import java.util.Collection;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
import lombok.Cleanup;
import org.apache.pulsar.PrometheusMetricsTestUtil;
import org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsClient;
@@ -35,6 +38,7 @@ import org.apache.pulsar.client.api.Producer;
import org.apache.pulsar.client.api.Schema;
import org.apache.pulsar.client.api.SubscriptionType;
import org.awaitility.Awaitility;
+import org.mockito.exceptions.misusing.DisabledMockException;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
@@ -109,10 +113,18 @@ public class BrokerDispatchRateLimiterTest extends
BrokerTestBase {
}
// Assert broker metrics
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- PrometheusMetricsTestUtil.generate(pulsar, true, false, false, output);
- String metricsStr = output.toString();
- Multimap<String, PrometheusMetricsClient.Metric> metrics =
parseMetrics(metricsStr);
+ AtomicReference<String> metricsString = new AtomicReference<>();
+ Awaitility.await()
+ .pollInterval(Duration.ofMillis(200))
+ .atMost(Duration.ofSeconds(5))
+ .ignoreExceptionsMatching(exception -> exception.getCause()
instanceof DisabledMockException)
+ .untilAsserted(() -> {
+ ByteArrayOutputStream output = new ByteArrayOutputStream();
+ PrometheusMetricsTestUtil.generate(pulsar, true, false,
false, output);
+ metricsString.set(output.toString());
+ assertFalse(metricsString.get().isEmpty());
+ });
+ Multimap<String, PrometheusMetricsClient.Metric> metrics =
parseMetrics(metricsString.get());
// Assert subscription metrics reason by broker limit
Collection<PrometheusMetricsClient.Metric>
subscriptionDispatchThrottledMsgCountMetrics =