From 727a6dbb2024f43b0145ad3a7da21bcc5e8a60ec Mon Sep 17 00:00:00 2001 From: Jiwe Guo Date: Fri, 2 Jun 2023 11:58:41 +0800 Subject: [PATCH 1/4] Add metric prefix for `topic_load_times` --- .../apache/pulsar/broker/stats/BrokerOperabilityMetrics.java | 2 +- .../java/org/apache/pulsar/broker/stats/DimensionStats.java | 2 +- 2 files changed, 2 insertions(+), 2 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 400dbd3335a2a..c958537512422 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 @@ -86,7 +86,7 @@ Map getDimensionMap(String metricsName) { } 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; } 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 604265b554050..1b6f981ca4e21 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 DimensionStats(String name, long updateDurationInSec) { 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()); } } } From af638e401a8387c895a6bd68fc0c0cc04a3aa342 Mon Sep 17 00:00:00 2001 From: Jiwe Guo Date: Tue, 20 Jun 2023 11:37:16 +0800 Subject: [PATCH 2/4] updates --- .../pulsar/broker/stats/BrokerOperabilityMetrics.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 c958537512422..c43c652e51a4d 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 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("brk_topic_load_times", 60); this.brokerName = brokerName; this.connectionTotalCreatedCount = new LongAdder(); this.connectionCreateSuccessCount = new LongAdder(); @@ -59,6 +61,7 @@ public List getMetrics() { } private void generate() { + metricsList.add(getOldTopicLoadMetrics()); metricsList.add(getTopicLoadMetrics()); metricsList.add(getConnectionMetrics()); } @@ -85,6 +88,10 @@ Map getDimensionMap(String metricsName) { return dimensionMap; } + Metrics getOldTopicLoadMetrics() { + return getDimensionMetrics("topic_load_times", "topic_load", oldTopicLoadStats); + } + Metrics getTopicLoadMetrics() { Metrics metrics = getDimensionMetrics("pulsar_topic_load_times", "topic_load", topicLoadStats); metrics.put("brk_topic_load_failed_count", TOPIC_LOAD_FAILED.get()); @@ -109,10 +116,12 @@ Metrics getDimensionMetrics(String metricsName, String dimensionName, DimensionS public void reset() { metricsList.clear(); + oldTopicLoadStats.reset(); topicLoadStats.reset(); } public void recordTopicLoadTimeValue(long topicLoadLatencyMs) { + oldTopicLoadStats.recordDimensionTimeValue(topicLoadLatencyMs, TimeUnit.MILLISECONDS); topicLoadStats.recordDimensionTimeValue(topicLoadLatencyMs, TimeUnit.MILLISECONDS); } From 674da5762b5c6ad113d982844a3fc94627526af0 Mon Sep 17 00:00:00 2001 From: Jiwe Guo Date: Mon, 26 Jun 2023 19:54:53 +0800 Subject: [PATCH 3/4] remove duplicate metric --- .../apache/pulsar/broker/stats/BrokerOperabilityMetrics.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 c43c652e51a4d..76bfb8a16d834 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 @@ -89,7 +89,8 @@ Map getDimensionMap(String metricsName) { } Metrics getOldTopicLoadMetrics() { - return getDimensionMetrics("topic_load_times", "topic_load", oldTopicLoadStats); + Metrics metrics = getDimensionMetrics("topic_load_times", "topic_load", oldTopicLoadStats); + return metrics; } Metrics getTopicLoadMetrics() { From 1d01a67b69937e149a3d73fabd3f70d03976a7f4 Mon Sep 17 00:00:00 2001 From: Jiwe Guo Date: Wed, 28 Jun 2023 11:17:13 +0800 Subject: [PATCH 4/4] add test. --- .../pulsar/broker/stats/BrokerOperabilityMetrics.java | 2 +- .../apache/pulsar/broker/stats/PrometheusMetricsTest.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 76bfb8a16d834..09b313aa749a7 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 @@ -46,7 +46,7 @@ public BrokerOperabilityMetrics(String localCluster, String brokerName) { this.metricsList = new ArrayList<>(); this.localCluster = localCluster; this.oldTopicLoadStats = new DimensionStats("topic_load_times", 60); - this.topicLoadStats = new DimensionStats("brk_topic_load_times", 60); + this.topicLoadStats = new DimensionStats("pulsar_topic_load_times", 60); this.brokerName = brokerName; this.connectionTotalCreatedCount = new LongAdder(); this.connectionCreateSuccessCount = new LongAdder(); 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 6cb7378330f09..c4e41074a1ab3 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 void testMetricsTopicCount() throws Exception { assertEquals(item.value, 3.0); } }); + Collection topicLoadTimesMetrics = metrics.get("topic_load_times"); + Collection topicLoadTimesCountMetrics = metrics.get("topic_load_times_count"); + assertEquals(topicLoadTimesMetrics.size(), 6); + assertEquals(topicLoadTimesCountMetrics.size(), 1); + Collection pulsarTopicLoadTimesMetrics = metrics.get("pulsar_topic_load_times"); + Collection pulsarTopicLoadTimesCountMetrics = metrics.get("pulsar_topic_load_times_count"); + assertEquals(pulsarTopicLoadTimesMetrics.size(), 6); + assertEquals(pulsarTopicLoadTimesCountMetrics.size(), 1); } @Test