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

technoboy 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 8d7b6338882 [improve][broker] Add metric prefix for `topic_load_times` 
(#20472)
8d7b6338882 is described below

commit 8d7b6338882b45c7e177869036156afc6a1394cd
Author: Jiwei Guo <[email protected]>
AuthorDate: Thu Jun 29 12:49:39 2023 +0800

    [improve][broker] Add metric prefix for `topic_load_times` (#20472)
---
 .../pulsar/broker/stats/BrokerOperabilityMetrics.java      | 14 ++++++++++++--
 .../org/apache/pulsar/broker/stats/DimensionStats.java     |  2 +-
 .../apache/pulsar/broker/stats/PrometheusMetricsTest.java  |  8 ++++++++
 3 files changed, 21 insertions(+), 3 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/BrokerOperabilityMetrics.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/BrokerOperabilityMetrics.java
index 400dbd3335a..09b313aa749 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/BrokerOperabilityMetrics.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/BrokerOperabilityMetrics.java
@@ -33,6 +33,7 @@ public class BrokerOperabilityMetrics {
     private static final Counter TOPIC_LOAD_FAILED = 
Counter.build("topic_load_failed", "-").register();
     private final List<Metrics> metricsList;
     private final String localCluster;
+    private final DimensionStats oldTopicLoadStats;
     private final DimensionStats topicLoadStats;
     private final String brokerName;
     private final LongAdder connectionTotalCreatedCount;
@@ -44,7 +45,8 @@ public class BrokerOperabilityMetrics {
     public BrokerOperabilityMetrics(String localCluster, String brokerName) {
         this.metricsList = new ArrayList<>();
         this.localCluster = localCluster;
-        this.topicLoadStats = new DimensionStats("topic_load_times", 60);
+        this.oldTopicLoadStats = new DimensionStats("topic_load_times", 60);
+        this.topicLoadStats = new DimensionStats("pulsar_topic_load_times", 
60);
         this.brokerName = brokerName;
         this.connectionTotalCreatedCount = new LongAdder();
         this.connectionCreateSuccessCount = new LongAdder();
@@ -59,6 +61,7 @@ public class BrokerOperabilityMetrics {
     }
 
     private void generate() {
+        metricsList.add(getOldTopicLoadMetrics());
         metricsList.add(getTopicLoadMetrics());
         metricsList.add(getConnectionMetrics());
     }
@@ -85,8 +88,13 @@ public class BrokerOperabilityMetrics {
         return dimensionMap;
     }
 
+    Metrics getOldTopicLoadMetrics() {
+        Metrics metrics = getDimensionMetrics("topic_load_times", 
"topic_load", oldTopicLoadStats);
+        return metrics;
+    }
+
     Metrics getTopicLoadMetrics() {
-        Metrics metrics = getDimensionMetrics("topic_load_times", 
"topic_load", topicLoadStats);
+        Metrics metrics = getDimensionMetrics("pulsar_topic_load_times", 
"topic_load", topicLoadStats);
         metrics.put("brk_topic_load_failed_count", TOPIC_LOAD_FAILED.get());
         return metrics;
     }
@@ -109,10 +117,12 @@ public class BrokerOperabilityMetrics {
 
     public void reset() {
         metricsList.clear();
+        oldTopicLoadStats.reset();
         topicLoadStats.reset();
     }
 
     public void recordTopicLoadTimeValue(long topicLoadLatencyMs) {
+        oldTopicLoadStats.recordDimensionTimeValue(topicLoadLatencyMs, 
TimeUnit.MILLISECONDS);
         topicLoadStats.recordDimensionTimeValue(topicLoadLatencyMs, 
TimeUnit.MILLISECONDS);
     }
 
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/DimensionStats.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/DimensionStats.java
index 604265b5540..1b6f981ca4e 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/DimensionStats.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/DimensionStats.java
@@ -64,7 +64,7 @@ public class DimensionStats {
                 defaultRegistry.register(summary);
             } catch (IllegalArgumentException ie) {
                 // it only happens in test-cases when try to register summary 
multiple times in registry
-                log.warn("{} is already registred {}", name, ie.getMessage());
+                log.warn("{} is already registered {}", name, ie.getMessage());
             }
         }
     }
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 6cb7378330f..c4e41074a1a 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
@@ -246,6 +246,14 @@ public class PrometheusMetricsTest extends BrokerTestBase {
                 assertEquals(item.value, 3.0);
             }
         });
+        Collection<Metric> topicLoadTimesMetrics = 
metrics.get("topic_load_times");
+        Collection<Metric> topicLoadTimesCountMetrics = 
metrics.get("topic_load_times_count");
+        assertEquals(topicLoadTimesMetrics.size(), 6);
+        assertEquals(topicLoadTimesCountMetrics.size(), 1);
+        Collection<Metric> pulsarTopicLoadTimesMetrics = 
metrics.get("pulsar_topic_load_times");
+        Collection<Metric> pulsarTopicLoadTimesCountMetrics = 
metrics.get("pulsar_topic_load_times_count");
+        assertEquals(pulsarTopicLoadTimesMetrics.size(), 6);
+        assertEquals(pulsarTopicLoadTimesCountMetrics.size(), 1);
     }
 
     @Test

Reply via email to