You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hx...@apache.org on 2021/02/10 07:25:04 UTC

[iotdb] branch feature/metric2021 updated: rename metrics

This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch feature/metric2021
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/feature/metric2021 by this push:
     new af86a4d  rename metrics
af86a4d is described below

commit af86a4d6e8c6ef4e2a4a3c36912eebff2390ab91
Author: xiangdong huang <sa...@gmail.com>
AuthorDate: Wed Feb 10 15:24:28 2021 +0800

    rename metrics
---
 .../org/apache/iotdb/metrics/MetricFactory.java    |   4 +-
 .../org/apache/iotdb/metrics/MetricManager.java    | 101 ++++++++-------------
 .../org/apache/iotdb/metrics/MetricRegistry.java   |  40 --------
 .../{MetricManager.java => MetricService.java}     |   6 +-
 .../iotdb/metrics/impl/DoNothingFactory.java       |   8 +-
 ...icRegistry.java => DoNothingMetricManager.java} |  41 ++++++---
 .../org/apache/iotdb/metrics/type/Counter.java     |   2 +-
 .../java/org/apache/iotdb/metrics/type/Gauge.java  |   5 +-
 .../org/apache/iotdb/metrics/type/Histogram.java   |   4 +-
 .../type/{Snapshot.java => HistogramSnapshot.java} |   7 +-
 .../metrics/type/{Metric.java => IMetric.java}     |   2 +-
 .../iotdb/metrics/type/{Meter.java => Rate.java}   |   2 +-
 .../java/org/apache/iotdb/metrics/type/Timer.java  |   6 +-
 13 files changed, 89 insertions(+), 139 deletions(-)

diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricFactory.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricFactory.java
index 909afd7..7604418 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricFactory.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricFactory.java
@@ -11,10 +11,10 @@ public interface MetricFactory {
     * @param namespace
     * @return
     */
-   MetricRegistry getMetric(String namespace);
+   MetricManager getMetric(String namespace);
 
    void enableKnownMetric(KnownMetric metric);
-   Map<String, MetricRegistry> getAllMetrics();
+   Map<String, MetricManager> getAllMetrics();
    boolean isEnable();
 
 }
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java
index 5b3c1b4..786f47b 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java
@@ -1,67 +1,42 @@
 package org.apache.iotdb.metrics;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.ServiceLoader;
-import org.apache.iotdb.metrics.impl.DoNothingFactory;
-
-public class MetricManager {
-
- private static List<MetricReporter> reporters = new ArrayList<>();
-
- private static MetricFactory factory;
-
- static {
-  init();
- }
-
- private static void init() {
+import org.apache.iotdb.metrics.type.Counter;
+import org.apache.iotdb.metrics.type.Gauge;
+import org.apache.iotdb.metrics.type.Histogram;
+import org.apache.iotdb.metrics.type.Rate;
+import org.apache.iotdb.metrics.type.IMetric;
+import org.apache.iotdb.metrics.type.Timer;
 
-  ServiceLoader<MetricReporter> reporter = ServiceLoader.load(MetricReporter.class);
-  for (MetricReporter r : reporter) {
-   reporters.add(r);
-   r.start();
-  }
-
-  ServiceLoader<MetricFactory> metricFactories = ServiceLoader.load(MetricFactory.class);
-  int size = 0;
-  MetricFactory nothingFactory = null;
-
-  for (MetricFactory mf : metricFactories) {
-   if (mf instanceof DoNothingFactory) {
-    nothingFactory = mf;
-    continue;
-   }
-    size ++;
-    if (size > 1) {
-     throw new RuntimeException("More than one Metric Implementation is detected.");
-    }
-   factory = mf;
-  }
-
-  // if no more implementation, we use nothingFactory.
-  if (size == 0) {
-   factory = nothingFactory;
-  }
- }
-
- public static void stop() {
-  for (MetricReporter r : reporters) {
-   r.stop();
-  }
- }
-
- public static MetricRegistry getMetric(String namespace) {
-  return factory.getMetric(namespace);
- }
- public static void enableKnownMetric(KnownMetric metric) {
-  factory.enableKnownMetric(metric);
- }
- public static Map<String, MetricRegistry> getAllMetrics() {
-  return factory.getAllMetrics();
- }
- public static boolean isEnable() {
-  return factory.isEnable();
- }
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+public interface MetricManager {
+
+  Counter counter(String metric, String... tags);
+  Gauge gauge(String metric, String... tags);
+  Histogram histogram(String metric, String... tags);
+  Rate rate(String metric, String... tags);
+  Timer timer(String metric, String... tags);
+
+  //metric.counter(5, "insertRecords","interface","insertRecords","sg","sg1");
+  void count(int delta, String metric, String... tags);
+  void count(long delta, String metric, String... tags);
+  void histogram(int value, String metric, String... tags);
+  void histogram(long value, String metric, String... tags);
+  void gauge(int value, String metric, String... tags);
+  void gauge(long value, String metric, String... tags);
+  void meter(int value, String metric, String... tags);
+  void meter(long value, String metric, String... tags);
+  void timer(long delta, TimeUnit timeUnit, String metric, String... tags);
+  void timerStart(String metric, String... tags);
+  void timerEnd(String metric, String... tags);
+
+  Map<String, String[]> getAllMetricKeys();
+
+  // key is name + tags
+  Map<String[], Counter> getAllCounters();
+  Map<String[], Gauge> getAllGauges();
+  Map<String[], Rate> getAllMeters();
+  Map<String[], Histogram> getAllHistograms();
+  Map<String[], Timer> getAllTimers();
 }
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricRegistry.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricRegistry.java
deleted file mode 100644
index b61d5b6..0000000
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricRegistry.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.apache.iotdb.metrics;
-
-import org.apache.iotdb.metrics.type.Counter;
-import org.apache.iotdb.metrics.type.Gauge;
-import org.apache.iotdb.metrics.type.Histogram;
-import org.apache.iotdb.metrics.type.Meter;
-import org.apache.iotdb.metrics.type.Metric;
-import org.apache.iotdb.metrics.type.Timer;
-
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-public interface MetricRegistry {
-  //metric.counter(5, "insertRecords","interface","insertRecords","sg","sg1");
-  void count(int delta, String metric, String... tags);
-  void count(long delta, String metric, String... tags);
-  void histogram(int value, String metric, String... tags);
-  void histogram(long value, String metric, String... tags);
-  void gauge(int value, String metric, String... tags);
-  void gauge(long value, String metric, String... tags);
-  void meter(int value, String metric, String... tags);
-  void meter(long value, String metric, String... tags);
-  void timer(long delta, TimeUnit timeUnit, String metric, String... tags);
-  void timerStart(String metric, String... tags);
-  void timerEnd(String metric, String... tags);
-
-
-  Map<String, String[]> getAllMetricKeys();
-  Metric getMetricValue(String metric, String... tags);
-//  Object getMetricValue (String metric, String... tags);
-//  Object getMetricHistogram (String metric, String... tags);
-//  Object getMetricTimer (String metric, String... tags);
-
-  // key is name + tags
-  Map<String[], Counter> getAllCounters();
-  Map<String[], Gauge> getAllGauges();
-  Map<String[], Meter> getAllMeters();
-  Map<String[], Histogram> getAllHistograms();
-  Map<String[], Timer> getAllTimers();
-}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java
similarity index 90%
copy from metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java
copy to metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java
index 5b3c1b4..4a6056d 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricManager.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java
@@ -6,7 +6,7 @@ import java.util.Map;
 import java.util.ServiceLoader;
 import org.apache.iotdb.metrics.impl.DoNothingFactory;
 
-public class MetricManager {
+public class MetricService {
 
  private static List<MetricReporter> reporters = new ArrayList<>();
 
@@ -52,13 +52,13 @@ public class MetricManager {
   }
  }
 
- public static MetricRegistry getMetric(String namespace) {
+ public static MetricManager getMetric(String namespace) {
   return factory.getMetric(namespace);
  }
  public static void enableKnownMetric(KnownMetric metric) {
   factory.enableKnownMetric(metric);
  }
- public static Map<String, MetricRegistry> getAllMetrics() {
+ public static Map<String, MetricManager> getAllMetrics() {
   return factory.getAllMetrics();
  }
  public static boolean isEnable() {
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingFactory.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingFactory.java
index 9eb267e..9f1e54e 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingFactory.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingFactory.java
@@ -4,12 +4,12 @@ import java.util.Collections;
 import java.util.Map;
 import org.apache.iotdb.metrics.MetricFactory;
 import org.apache.iotdb.metrics.KnownMetric;
-import org.apache.iotdb.metrics.MetricRegistry;
+import org.apache.iotdb.metrics.MetricManager;
 
 public class DoNothingFactory implements MetricFactory {
-  private DoNothingMetricRegistry metric = new DoNothingMetricRegistry();
+  private DoNothingMetricManager metric = new DoNothingMetricManager();
   @Override
-  public MetricRegistry getMetric(String namespace) {
+  public MetricManager getMetric(String namespace) {
     return metric;
   }
 
@@ -19,7 +19,7 @@ public class DoNothingFactory implements MetricFactory {
   }
 
   @Override
-  public Map<String, MetricRegistry> getAllMetrics() {
+  public Map<String, MetricManager> getAllMetrics() {
     return Collections.emptyMap();
   }
 
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricRegistry.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java
similarity index 72%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricRegistry.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java
index 322e238..6e25d29 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricRegistry.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java
@@ -1,17 +1,41 @@
 package org.apache.iotdb.metrics.impl;
 
-import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
-import org.apache.iotdb.metrics.MetricRegistry;
+import org.apache.iotdb.metrics.MetricManager;
 import org.apache.iotdb.metrics.type.Counter;
 import org.apache.iotdb.metrics.type.Gauge;
 import org.apache.iotdb.metrics.type.Histogram;
-import org.apache.iotdb.metrics.type.Meter;
-import org.apache.iotdb.metrics.type.Metric;
+import org.apache.iotdb.metrics.type.Rate;
+import org.apache.iotdb.metrics.type.IMetric;
 import org.apache.iotdb.metrics.type.Timer;
 
-public class DoNothingMetricRegistry implements MetricRegistry {
+public class DoNothingMetricManager implements MetricManager {
+
+  @Override
+  public Counter counter(String metric, String... tags) {
+    return null;
+  }
+
+  @Override
+  public Gauge gauge(String metric, String... tags) {
+    return null;
+  }
+
+  @Override
+  public Histogram histogram(String metric, String... tags) {
+    return null;
+  }
+
+  @Override
+  public Rate rate(String metric, String... tags) {
+    return null;
+  }
+
+  @Override
+  public Timer timer(String metric, String... tags) {
+    return null;
+  }
 
   @Override
   public void count(int delta, String metric, String... tags) {
@@ -74,11 +98,6 @@ public class DoNothingMetricRegistry implements MetricRegistry {
   }
 
   @Override
-  public Metric getMetricValue(String metric, String... tags) {
-    return null;
-  }
-
-  @Override
   public Map<String[], Counter> getAllCounters() {
     return null;
   }
@@ -89,7 +108,7 @@ public class DoNothingMetricRegistry implements MetricRegistry {
   }
 
   @Override
-  public Map<String[], Meter> getAllMeters() {
+  public Map<String[], Rate> getAllMeters() {
     return null;
   }
 
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java
index a75fb2b..cc4ac5e 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.metrics.type;
 
-public interface Counter extends Metric {
+public interface Counter extends IMetric {
   void inc();
   void inc(long n);
   void dec();
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java
index 9637ee5..4fe5ae3 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.metrics.type;
 
-public interface Gauge<T> extends Metric {
-  T value();
+public interface Gauge extends IMetric {
+  long value();
+  void set(long value);
 }
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java
index edc85cf..a65ae37 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java
@@ -18,10 +18,10 @@
  */
 package org.apache.iotdb.metrics.type;
 
-public interface Histogram extends Metric {
+public interface Histogram extends IMetric {
   void update(int value);
   void update(long value);
   long count();
 
-  Snapshot takeSnapshot();
+  HistogramSnapshot takeSnapshot();
 }
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Snapshot.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java
similarity index 86%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Snapshot.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java
index 3975b24..0317ff2 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Snapshot.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java
@@ -23,7 +23,7 @@ import java.io.OutputStream;
 /**
  * used by Timer and Histogram
  */
-public interface Snapshot {
+public interface HistogramSnapshot {
 
   public abstract double getValue(double quantile);
 
@@ -31,11 +31,6 @@ public interface Snapshot {
   public abstract int size();
 
   public double getMedian();
-  public double get75thPercentile();
-  public double get95thPercentile();
-  public double get98thPercentile();
-  public double get99thPercentile();
-  public double get999thPercentile();
 
   public abstract long getMax();
   public abstract double getMean();
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Metric.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java
similarity index 96%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Metric.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java
index ff1d9fc..3646f73 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Metric.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java
@@ -18,5 +18,5 @@
  */
 package org.apache.iotdb.metrics.type;
 
-public interface Metric {
+public interface IMetric {
 }
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Meter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java
similarity index 96%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Meter.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java
index 0875dde..751b83c 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Meter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.metrics.type;
 
-public interface Meter extends Metric {
+public interface Rate extends IMetric {
   long getCount();
   double getOneMinuteRate();
   double getMeanRate();
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java
index 52ed45e..2f05b2a 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java
@@ -20,7 +20,7 @@ package org.apache.iotdb.metrics.type;
 
 import java.util.concurrent.TimeUnit;
 
-public interface Timer extends Metric {
+public interface Timer extends IMetric {
   void update(long duration, TimeUnit unit);
 
   default void updateMillis(long durationMillis) {
@@ -35,7 +35,7 @@ public interface Timer extends Metric {
     update(durationNanos, TimeUnit.NANOSECONDS);
   }
 
-  Snapshot takeSnapshot();
+  HistogramSnapshot takeSnapshot();
 
-  Meter getMeter();
+  Rate getMeter();
 }