Adding getMetricName method to wrap dynamic metric name generating logic.

This is for simplify monitor implementation and reduce duplicate code.


Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/38704707
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/38704707
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/38704707

Branch: refs/heads/master
Commit: 3870470761745a00e73650cf589f852be356a3a6
Parents: ead6a72
Author: Jiajun Wang <jjw...@linkedin.com>
Authored: Thu Sep 21 10:49:00 2017 -0700
Committer: Junkai Xue <j...@linkedin.com>
Committed: Mon Nov 6 17:08:28 2017 -0800

----------------------------------------------------------------------
 .../apache/helix/monitoring/mbeans/ClusterEventMonitor.java  | 2 +-
 .../apache/helix/monitoring/mbeans/HelixCallbackMonitor.java | 2 +-
 .../helix/monitoring/mbeans/MessageLatencyMonitor.java       | 2 +-
 .../org/apache/helix/monitoring/mbeans/ResourceMonitor.java  | 2 +-
 .../apache/helix/monitoring/mbeans/ZkClientPathMonitor.java  | 8 ++++----
 .../mbeans/dynamicMBeans/DynamicMBeanProvider.java           | 8 +++++---
 6 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/38704707/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterEventMonitor.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterEventMonitor.java
 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterEventMonitor.java
index a3cd1ba..e7f09ea 100644
--- 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterEventMonitor.java
+++ 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ClusterEventMonitor.java
@@ -48,7 +48,7 @@ public class ClusterEventMonitor extends DynamicMBeanProvider 
{
       new SimpleDynamicMetric("MaxSingleDurationGauge", 0l);
   private SimpleDynamicMetric<Long> _count = new 
SimpleDynamicMetric("EventCounter", 0l);
   private HistogramDynamicMetric _duration = new 
HistogramDynamicMetric("DurationGauge",
-      _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"DurationGauge"));
+      _metricRegistry.histogram(getMetricName("DurationGauge")));
 
   private long _lastResetTime;
   private ClusterStatusMonitor _clusterStatusMonitor;

http://git-wip-us.apache.org/repos/asf/helix/blob/38704707/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/HelixCallbackMonitor.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/HelixCallbackMonitor.java
 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/HelixCallbackMonitor.java
index ad9c787..0dbafb4 100644
--- 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/HelixCallbackMonitor.java
+++ 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/HelixCallbackMonitor.java
@@ -49,7 +49,7 @@ public class HelixCallbackMonitor extends 
DynamicMBeanProvider {
       new SimpleDynamicMetric("LatencyCounter", 0l);
 
   private HistogramDynamicMetric _latencyGauge = new 
HistogramDynamicMetric("LatencyGauge",
-      _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"LatencyGauge"));
+      _metricRegistry.histogram(getMetricName("LatencyGauge")));
 
   public HelixCallbackMonitor(InstanceType type, String clusterName, String 
instanceName,
       HelixConstants.ChangeType changeType) throws JMException {

http://git-wip-us.apache.org/repos/asf/helix/blob/38704707/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MessageLatencyMonitor.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MessageLatencyMonitor.java
 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MessageLatencyMonitor.java
index cc00496..f1c1039 100644
--- 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MessageLatencyMonitor.java
+++ 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/MessageLatencyMonitor.java
@@ -41,7 +41,7 @@ public class MessageLatencyMonitor extends 
DynamicMBeanProvider {
       new SimpleDynamicMetric("TotalMessageLatency", 0l);
   private HistogramDynamicMetric _messageLatencyGauge =
       new HistogramDynamicMetric("MessageLatencyGauge",
-          _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"MessageLatencyGauge"));
+          _metricRegistry.histogram(getMetricName("MessageLatencyGauge")));
 
   public MessageLatencyMonitor(String domainName, String participantName) 
throws JMException {
     _domainName = domainName;

http://git-wip-us.apache.org/repos/asf/helix/blob/38704707/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ResourceMonitor.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ResourceMonitor.java
 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ResourceMonitor.java
index 080ed62..c4b67eb 100644
--- 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ResourceMonitor.java
+++ 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ResourceMonitor.java
@@ -70,7 +70,7 @@ public class ResourceMonitor extends DynamicMBeanProvider {
       new 
SimpleDynamicMetric("MaxSinglePartitionTopStateHandoffDurationGauge", 0l);
   private HistogramDynamicMetric _partitionTopStateHandoffDurationGauge =
       new HistogramDynamicMetric("PartitionTopStateHandoffDurationGauge", 
_metricRegistry
-          .histogram(getMetricRegistryNamePrefix() + 
"PartitionTopStateHandoffDurationGauge"));
+          .histogram(getMetricName("PartitionTopStateHandoffDurationGauge")));
   private SimpleDynamicMetric<Long> _totalMessageReceived =
       new SimpleDynamicMetric("TotalMessageReceived", 0l);
 

http://git-wip-us.apache.org/repos/asf/helix/blob/38704707/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ZkClientPathMonitor.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ZkClientPathMonitor.java
 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ZkClientPathMonitor.java
index ccbbed9..e87738b 100644
--- 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ZkClientPathMonitor.java
+++ 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/ZkClientPathMonitor.java
@@ -78,14 +78,14 @@ public class ZkClientPathMonitor extends 
DynamicMBeanProvider {
       new SimpleDynamicMetric("WriteTotalLatencyCounter", 0l);
 
   private HistogramDynamicMetric _readLatencyGauge = new 
HistogramDynamicMetric("ReadLatencyGauge",
-      _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"ReadLatencyGauge"));
+      _metricRegistry.histogram(getMetricName("ReadLatencyGauge")));
   private HistogramDynamicMetric _writeLatencyGauge =
       new HistogramDynamicMetric("WriteLatencyGauge",
-          _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"WriteLatencyGauge"));
+          _metricRegistry.histogram(getMetricName("WriteLatencyGauge")));
   private HistogramDynamicMetric _readBytesGauge = new 
HistogramDynamicMetric("ReadBytesGauge",
-      _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"ReadBytesGauge"));
+      _metricRegistry.histogram(getMetricName("ReadBytesGauge")));
   private HistogramDynamicMetric _writeBytesGauge = new 
HistogramDynamicMetric("WriteBytesGauge",
-      _metricRegistry.histogram(getMetricRegistryNamePrefix() + 
"WriteBytesGauge"));
+      _metricRegistry.histogram(getMetricName("WriteBytesGauge")));
 
   @Override
   public String getSensorName() {

http://git-wip-us.apache.org/repos/asf/helix/blob/38704707/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java
----------------------------------------------------------------------
diff --git 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java
 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java
index 346503b..19e5c64 100644
--- 
a/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java
+++ 
b/helix-core/src/main/java/org/apache/helix/monitoring/mbeans/dynamicMBeans/DynamicMBeanProvider.java
@@ -85,8 +85,9 @@ public abstract class DynamicMBeanProvider implements 
DynamicMBean, SensorNamePr
     doRegister(dynamicMetrics, null, objectName);
   }
 
-  protected String getMetricRegistryNamePrefix() {
-    return String.format("%s-%s-", getClass().getSimpleName(), 
Integer.toHexString(hashCode()));
+  protected String getMetricName(String metricName) {
+    return MetricRegistry
+        .name(getClass().getSimpleName(), Integer.toHexString(hashCode()), 
metricName);
   }
 
   /**
@@ -143,10 +144,11 @@ public abstract class DynamicMBeanProvider implements 
DynamicMBean, SensorNamePr
    * After unregistered, the MBean can't be registered again, a new monitor 
has be to created.
    */
   public synchronized void unregister() {
+    final String metricNamePrefix = getMetricName(null);
     _metricRegistry.removeMatching(new MetricFilter() {
       @Override
       public boolean matches(String name, Metric metric) {
-        return name.startsWith(getMetricRegistryNamePrefix());
+        return name.startsWith(metricNamePrefix);
       }
     });
     MBeanRegistrar.unregister(_objectName);

Reply via email to