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);