[ONOS-4127] Backup metric service to ganglia monitoring server

- Initial implementation of metric service reporter
- Unit test for metric service reporter
- Bump up metric lib from 3.1.0 to 3.1.2

Change-Id: Ia178df759d671dfc15cffaacb09d5279ad3d9ad8
diff --git a/utils/misc/src/main/java/org/onlab/metrics/MetricsManager.java b/utils/misc/src/main/java/org/onlab/metrics/MetricsManager.java
index 6c9314a..64bf9ee 100644
--- a/utils/misc/src/main/java/org/onlab/metrics/MetricsManager.java
+++ b/utils/misc/src/main/java/org/onlab/metrics/MetricsManager.java
@@ -102,6 +102,16 @@
     }
 
     /**
+     * Fetches existing metric registry.
+     *
+     * @return metric registry
+     */
+    @Override
+    public MetricRegistry getMetricRegistry() {
+        return metricsRegistry;
+    }
+
+    /**
      * Generates a name for a Metric from its component and feature.
      *
      * @param component component the metric is defined in
diff --git a/utils/misc/src/main/java/org/onlab/metrics/MetricsService.java b/utils/misc/src/main/java/org/onlab/metrics/MetricsService.java
index 4f0d67a..7688da6 100644
--- a/utils/misc/src/main/java/org/onlab/metrics/MetricsService.java
+++ b/utils/misc/src/main/java/org/onlab/metrics/MetricsService.java
@@ -23,6 +23,7 @@
 import com.codahale.metrics.Meter;
 import com.codahale.metrics.Metric;
 import com.codahale.metrics.MetricFilter;
+import com.codahale.metrics.MetricRegistry;
 import com.codahale.metrics.Timer;
 
 /**
@@ -39,6 +40,13 @@
     MetricsComponent registerComponent(String name);
 
     /**
+     * Fetches existing metric registry.
+     *
+     * @return metric registry
+     */
+    MetricRegistry getMetricRegistry();
+
+    /**
      * Creates a Counter metric.
      *
      * @param component component the Counter is defined in