You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cn...@apache.org on 2014/07/16 20:50:11 UTC
svn commit: r1611134 - in
/hadoop/common/trunk/hadoop-common-project/hadoop-common: ./
src/main/java/org/apache/hadoop/metrics2/
src/main/java/org/apache/hadoop/metrics2/impl/
src/test/java/org/apache/hadoop/metrics2/impl/
Author: cnauroth
Date: Wed Jul 16 18:50:10 2014
New Revision: 1611134
URL: http://svn.apache.org/r1611134
Log:
HADOOP-10839. Add unregisterSource() to MetricsSystem API. Contributed by Shanyu Zhao.
Modified:
hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1611134&r1=1611133&r2=1611134&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Wed Jul 16 18:50:10 2014
@@ -409,6 +409,9 @@ Release 2.6.0 - UNRELEASED
HADOOP-10845. Add common tests for ACLs in combination with viewfs.
(Stephen Chu via cnauroth)
+ HADOOP-10839. Add unregisterSource() to MetricsSystem API.
+ (Shanyu Zhao via cnauroth)
+
OPTIMIZATIONS
BUG FIXES
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java?rev=1611134&r1=1611133&r2=1611134&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/MetricsSystem.java Wed Jul 16 18:50:10 2014
@@ -55,6 +55,12 @@ public abstract class MetricsSystem impl
public abstract <T> T register(String name, String desc, T source);
/**
+ * Unregister a metrics source
+ * @param name of the source. This is the name you use to call register()
+ */
+ public abstract void unregisterSource(String name);
+
+ /**
* Register a metrics source (deriving name and description from the object)
* @param <T> the actual type of the source object
* @param source object to register
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java?rev=1611134&r1=1611133&r2=1611134&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java Wed Jul 16 18:50:10 2014
@@ -232,6 +232,17 @@ public class MetricsSystemImpl extends M
return source;
}
+ @Override public synchronized
+ void unregisterSource(String name) {
+ if (sources.containsKey(name)) {
+ sources.get(name).stop();
+ sources.remove(name);
+ }
+ if (allSources.containsKey(name)) {
+ allSources.remove(name);
+ }
+ }
+
synchronized
void registerSource(String name, String desc, MetricsSource source) {
checkNotNull(config, "config");
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java?rev=1611134&r1=1611133&r2=1611134&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java (original)
+++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java Wed Jul 16 18:50:10 2014
@@ -380,6 +380,23 @@ public class TestMetricsSystemImpl {
ms.shutdown();
}
+ @Test public void testUnregisterSource() {
+ MetricsSystem ms = new MetricsSystemImpl();
+ TestSource ts1 = new TestSource("ts1");
+ TestSource ts2 = new TestSource("ts2");
+ ms.register("ts1", "", ts1);
+ ms.register("ts2", "", ts2);
+ MetricsSource s1 = ms.getSource("ts1");
+ assertNotNull(s1);
+ // should work when metrics system is not started
+ ms.unregisterSource("ts1");
+ s1 = ms.getSource("ts1");
+ assertNull(s1);
+ MetricsSource s2 = ms.getSource("ts2");
+ assertNotNull(s2);
+ ms.shutdown();
+ }
+
private void checkMetricsRecords(List<MetricsRecord> recs) {
LOG.debug(recs);
MetricsRecord r = recs.get(0);