소스 검색

HADOOP-15657 Registering MutableQuantiles via Metric annotation. Contributed by Sushil Ks

Vrushali C 6 년 전
부모
커밋
f6e4b13d5f

+ 5 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/annotation/Metric.java

@@ -67,4 +67,9 @@ public @interface Metric {
    * @return optional type (counter|gauge) of the metric
    */
   Type type() default Type.DEFAULT;
+
+  /**
+   * @return optional roll over interval in secs for MutableQuantiles
+   */
+  int interval() default 10;
 }

+ 4 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/lib/MutableMetricsFactory.java

@@ -83,6 +83,10 @@ public class MutableMetricsFactory {
       return registry.newMutableRollingAverages(info.name(),
           annotation.valueName());
     }
+    if (cls == MutableQuantiles.class) {
+      return registry.newQuantiles(info.name(), annotation.about(),
+          annotation.sampleName(), annotation.valueName(), annotation.interval());
+    }
     throw new MetricsException("Unsupported metric field "+ field.getName() +
                                " of type "+ field.getType().getName());
   }