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

sijie 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 a901a35  add replication_delay to namespace metrics (#2983)
a901a35 is described below

commit a901a35e5c6a18e2bccdc4320a8bb86678f83f74
Author: Rajan Dhabalia <[email protected]>
AuthorDate: Sat Dec 22 05:59:53 2018 -0800

    add replication_delay to namespace metrics (#2983)
    
    ### Motivation
    
    Right now, broker metrics provide `replicationDelay` per topic level but we 
have setup monitoring on namespace metrics `./pulsar-admin  broker-stats 
monitoring-metrics` and we also need `replicationDelay` at namespace level to 
get estimate delay from namespace graphs.
    
    ### Modifications
    
    Find out max replication-delay among all the topics of a namespace and use 
it to namespace-metrics to provide estimate repl-dealy for a namespace.
---
 .../org/apache/pulsar/broker/service/persistent/PersistentTopic.java  | 4 ++++
 .../src/main/java/org/apache/pulsar/broker/stats/NamespaceStats.java  | 3 +++
 2 files changed, 7 insertions(+)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
index eed5b27..cc73d0c 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
@@ -1238,6 +1238,10 @@ public class PersistentTopic implements Topic, 
AddEntryCallback {
             topicStatsStream.endObject();
 
             nsStats.msgReplBacklog += rStat.replicationBacklog;
+            // replication delay for a namespace is the max repl-delay among 
all the topics under this namespace
+            if (rStat.replicationDelayInSeconds > 
nsStats.maxMsgReplDelayInSeconds) {
+                nsStats.maxMsgReplDelayInSeconds = 
rStat.replicationDelayInSeconds;
+            }
 
             if (replStats.isMetricsEnabled()) {
                 String namespaceClusterKey = replStats.getKeyName(namespace, 
cluster);
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/NamespaceStats.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/NamespaceStats.java
index 069e822..20f81df 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/NamespaceStats.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/stats/NamespaceStats.java
@@ -33,6 +33,7 @@ public class NamespaceStats {
     public double storageSize;
     public double msgBacklog;
     public double msgReplBacklog;
+    public double maxMsgReplDelayInSeconds;
     public int consumerCount;
     public int producerCount;
     public int replicatorCount;
@@ -50,6 +51,7 @@ public class NamespaceStats {
         this.storageSize = 0;
         this.msgBacklog = 0;
         this.msgReplBacklog = 0;
+        this.maxMsgReplDelayInSeconds = 0;
         this.consumerCount = 0;
         this.producerCount = 0;
         this.replicatorCount = 0;
@@ -72,6 +74,7 @@ public class NamespaceStats {
         dMetrics.put("brk_no_of_consumers", consumerCount);
         dMetrics.put("brk_msg_backlog", msgBacklog);
         dMetrics.put("brk_replication_backlog", msgReplBacklog);
+        dMetrics.put("brk_max_replication_delay_second", 
maxMsgReplDelayInSeconds);
 
         return dMetrics;
 

Reply via email to