You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2021/01/29 17:20:58 UTC

[pulsar] branch master updated: fix flaky prometheus test (#9361)

This is an automated email from the ASF dual-hosted git repository.

mmerli 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 6b0d226  fix flaky prometheus test (#9361)
6b0d226 is described below

commit 6b0d22658c2e4462b9b6c270a15771754e3bbcbb
Author: Renkai Ge <ga...@gmail.com>
AuthorDate: Sat Jan 30 01:20:03 2021 +0800

    fix flaky prometheus test (#9361)
    
    Signed-off-by: Renkai <ga...@gmail.com>
---
 .../pulsar/broker/stats/PrometheusMetricsTest.java | 58 +++++++++++-----------
 1 file changed, 28 insertions(+), 30 deletions(-)

diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
index 58ed618..46e56c5 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/PrometheusMetricsTest.java
@@ -23,37 +23,31 @@ import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
-
-import java.io.BufferedReader;
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Splitter;
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Multimap;
+import io.jsonwebtoken.SignatureAlgorithm;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringWriter;
 import java.lang.reflect.Field;
 import java.math.RoundingMode;
 import java.text.NumberFormat;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.HashSet;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.HashMap;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.Properties;
-import java.util.Set;
 import java.util.TreeMap;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import io.jsonwebtoken.SignatureAlgorithm;
-import io.prometheus.client.CollectorRegistry;
-import io.prometheus.client.exporter.common.TextFormat;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.HttpClientBuilder;
+import javax.crypto.SecretKey;
+import javax.naming.AuthenticationException;
 import org.apache.pulsar.broker.ServiceConfiguration;
 import org.apache.pulsar.broker.authentication.AuthenticationDataSource;
 import org.apache.pulsar.broker.authentication.AuthenticationProviderToken;
@@ -67,18 +61,11 @@ import org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsGenerator;
 import org.apache.pulsar.client.api.Consumer;
 import org.apache.pulsar.client.api.Producer;
 import org.awaitility.Awaitility;
+import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Splitter;
-import com.google.common.collect.ArrayListMultimap;
-import com.google.common.collect.Multimap;
-
-import javax.crypto.SecretKey;
-import javax.naming.AuthenticationException;
-
 public class PrometheusMetricsTest extends BrokerTestBase {
 
     @BeforeMethod
@@ -760,15 +747,26 @@ public class PrometheusMetricsTest extends BrokerTestBase {
         String metricsStr = new String(statsOut.toByteArray());
         Multimap<String, Metric> metrics = parseMetrics(metricsStr);
         List<Metric> cm = (List<Metric>) metrics.get("pulsar_authentication_success_count");
-        Metric metric = cm.get(cm.size() - 1);
-        assertEquals(metric.tags.get("auth_method"), "token");
-        assertEquals(metric.tags.get("provider_name"), provider.getClass().getSimpleName());
+        boolean haveSucceed = false;
+        for (Metric metric : cm) {
+            if (Objects.equals(metric.tags.get("auth_method"), "token")
+                    && Objects.equals(metric.tags.get("provider_name"), provider.getClass().getSimpleName())) {
+                haveSucceed = true;
+            }
+        }
+        Assert.assertTrue(haveSucceed);
 
         cm = (List<Metric>) metrics.get("pulsar_authentication_failures_count");
-        metric = cm.get(cm.size() - 1);
-        assertEquals(metric.tags.get("auth_method"), "token");
-        assertEquals(metric.tags.get("reason"), authExceptionMessage);
-        assertEquals(metric.tags.get("provider_name"), provider.getClass().getSimpleName());
+
+        boolean haveFailed = false;
+        for (Metric metric : cm) {
+            if (Objects.equals(metric.tags.get("auth_method"), "token")
+                    && Objects.equals(metric.tags.get("reason"), authExceptionMessage)
+                    && Objects.equals(metric.tags.get("provider_name"), provider.getClass().getSimpleName())) {
+                haveFailed = true;
+            }
+        }
+        Assert.assertTrue(haveFailed);
     }
 
     /**