diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetrics.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetrics.java index 35a4c4384b..993be6ac52 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetrics.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KSMMetrics.java @@ -32,6 +32,9 @@ import org.apache.hadoop.metrics2.lib.MutableCounterLong; @InterfaceAudience.Private @Metrics(about="Key Space Manager Metrics", context="dfs") public class KSMMetrics { + private static final String SOURCE_NAME = + KSMMetrics.class.getSimpleName(); + // KSM request type op metrics private @Metric MutableCounterLong numVolumeOps; private @Metric MutableCounterLong numBucketOps; @@ -76,7 +79,7 @@ public class KSMMetrics { public static KSMMetrics create() { MetricsSystem ms = DefaultMetricsSystem.instance(); - return ms.register("KSMMetrics", + return ms.register(SOURCE_NAME, "Key Space Manager Metrics", new KSMMetrics()); } @@ -365,4 +368,9 @@ public class KSMMetrics { public long getNumVolumeListFails() { return numVolumeListFails.value(); } + + public void unRegister() { + MetricsSystem ms = DefaultMetricsSystem.instance(); + ms.unregisterSource(SOURCE_NAME); + } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java index 46980896c6..8b586b07de 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/ksm/KeySpaceManager.java @@ -229,6 +229,7 @@ public class KeySpaceManager extends ServiceRuntimeInfo ksmRpcServer.stop(); metadataManager.stop(); httpServer.stop(); + metrics.unRegister(); unregisterMXBean(); } catch (Exception e) { LOG.error("Key Space Manager stop failed.", e);