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/10/04 06:04:00 UTC

git commit: HADOOP-11163. MetricsSystemImpl may miss a registered source. Contributed by Chuan Liu.

Repository: hadoop
Updated Branches:
  refs/heads/trunk c8212bacb -> 69c9af910


HADOOP-11163. MetricsSystemImpl may miss a registered source. Contributed by Chuan Liu.


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

Branch: refs/heads/trunk
Commit: 69c9af91031f345d9511618877646b8756b17863
Parents: c8212ba
Author: cnauroth <cn...@apache.org>
Authored: Fri Oct 3 21:01:28 2014 -0700
Committer: cnauroth <cn...@apache.org>
Committed: Fri Oct 3 21:01:28 2014 -0700

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt |  2 ++
 .../hadoop/metrics2/impl/MetricsSystemImpl.java |  2 +-
 .../metrics2/impl/TestMetricsSystemImpl.java    | 32 ++++++++++++++++++++
 3 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/69c9af91/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index f26ad1b..531a8b3 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -927,6 +927,8 @@ Release 2.6.0 - UNRELEASED
     HADOOP-11117 UGI HadoopLoginModule doesn't catch & wrap all
     kerberos-related exceptions (stevel)
 
+    HADOOP-11163 MetricsSystemImpl may miss a registered source. (cnauroth)
+
 Release 2.5.1 - 2014-09-05
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/69c9af91/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
index 2107e68..baa75ab 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java
@@ -234,7 +234,7 @@ public class MetricsSystemImpl extends MetricsSystem implements MetricsSource {
     }
     // We want to re-register the source to pick up new config when the
     // metrics system restarts.
-    register(name, new AbstractCallback() {
+    register(finalName, new AbstractCallback() {
       @Override public void postStart() {
         registerSource(finalName, finalDesc, s);
       }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/69c9af91/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
index 0122045..d59e80b 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/metrics2/impl/TestMetricsSystemImpl.java
@@ -397,6 +397,24 @@ public class TestMetricsSystemImpl {
     ms.shutdown();
   }
 
+  @Test public void testRegisterSourceWithoutName() {
+    MetricsSystem ms = new MetricsSystemImpl();
+    TestSource ts = new TestSource("ts");
+    TestSource2 ts2 = new TestSource2("ts2");
+    ms.register(ts);
+    ms.register(ts2);
+    ms.init("TestMetricsSystem");
+    // if metrics source is registered without name,
+    // the class name will be used as the name
+    MetricsSourceAdapter sa = ((MetricsSystemImpl) ms)
+        .getSourceAdapter("TestSource");
+    assertNotNull(sa);
+    MetricsSourceAdapter sa2 = ((MetricsSystemImpl) ms)
+        .getSourceAdapter("TestSource2");
+    assertNotNull(sa2);
+    ms.shutdown();
+  }
+
   private void checkMetricsRecords(List<MetricsRecord> recs) {
     LOG.debug(recs);
     MetricsRecord r = recs.get(0);
@@ -430,6 +448,20 @@ public class TestMetricsSystemImpl {
     }
   }
 
+  @Metrics(context="test")
+  private static class TestSource2 {
+    @Metric("C1 desc") MutableCounterLong c1;
+    @Metric("XXX desc") MutableCounterLong xxx;
+    @Metric("G1 desc") MutableGaugeLong g1;
+    @Metric("YYY desc") MutableGaugeLong yyy;
+    @Metric MutableRate s1;
+    final MetricsRegistry registry;
+
+    TestSource2(String recName) {
+      registry = new MetricsRegistry(recName);
+    }
+  }
+
   private static String getPluginUrlsAsString() {
     return "file:metrics2-test-plugin.jar";
   }