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
commit cfc973bec1c33509e6fa0a82d4a3ef43b5e37c62 Author: xiangdong huang <[email protected]> AuthorDate: Sat Feb 20 17:24:13 2021 +0800 apply spotless --- .../org/apache/iotdb/metrics/MetricFactory.java | 22 ++++----- .../org/apache/iotdb/metrics/MetricManager.java | 21 +++++++- .../org/apache/iotdb/metrics/MetricReporter.java | 2 + .../org/apache/iotdb/metrics/MetricService.java | 20 ++++---- .../iotdb/metrics/impl/DoNothingFactory.java | 12 ++--- .../iotdb/metrics/impl/DoNothingMetricManager.java | 52 ++++++-------------- .../org/apache/iotdb/metrics/type/Counter.java | 1 + .../java/org/apache/iotdb/metrics/type/Gauge.java | 1 + .../org/apache/iotdb/metrics/type/Histogram.java | 2 + .../iotdb/metrics/type/HistogramSnapshot.java | 8 ++-- .../org/apache/iotdb/metrics/type/IMetric.java | 3 +- .../java/org/apache/iotdb/metrics/type/Rate.java | 5 ++ .../micrometer/MicrometerMetricFactory.java | 9 ++-- .../micrometer/MicrometerMetricManager.java | 56 +++++++--------------- .../micrometer/MicrometerMetricReporter.java | 27 ++++++----- 15 files changed, 115 insertions(+), 126 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 95a3d3f..4896aaa 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 @@ -22,17 +22,17 @@ import java.util.Map; public interface MetricFactory { - /** - * - * repeated calling the method will return the same Object instance. - * - * @param namespace - * @return - */ - MetricManager getMetric(String namespace); + /** + * repeated calling the method will return the same Object instance. + * + * @param namespace + * @return + */ + MetricManager getMetric(String namespace); - void enableKnownMetric(KnownMetric metric); - Map<String, MetricManager> getAllMetrics(); - boolean isEnable(); + void enableKnownMetric(KnownMetric metric); + 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 d2329d0..d61bdb7 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 @@ -22,7 +22,6 @@ 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; import java.util.Map; @@ -31,30 +30,48 @@ 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"); + // 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/MetricReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricReporter.java index 26176f7..a1af228 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricReporter.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricReporter.java @@ -20,6 +20,8 @@ package org.apache.iotdb.metrics; public interface MetricReporter { boolean start(); + void setMetricFactory(MetricFactory metricFactory); + boolean stop(); } diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java index 6002d7c..1934300 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/MetricService.java @@ -18,19 +18,17 @@ */ 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; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** - * MetricService is the entr - */ +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.ServiceLoader; +/** MetricService is the entr */ public class MetricService { private static final Logger logger = LoggerFactory.getLogger(MetricService.class); @@ -55,9 +53,9 @@ public class MetricService { continue; } size++; -// if (size > 1) { -// throw new RuntimeException("More than one Metric Implementation is detected."); -// } + // if (size > 1) { + // throw new RuntimeException("More than one Metric Implementation is detected."); + // } factory = mf; break; } 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 50f12e2..bce4ec8 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 @@ -18,23 +18,23 @@ */ package org.apache.iotdb.metrics.impl; -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.MetricFactory; import org.apache.iotdb.metrics.MetricManager; +import java.util.Collections; +import java.util.Map; + public class DoNothingFactory implements MetricFactory { private DoNothingMetricManager metric = new DoNothingMetricManager(); + @Override public MetricManager getMetric(String namespace) { return metric; } @Override - public void enableKnownMetric(KnownMetric metric) { - - } + public void enableKnownMetric(KnownMetric metric) {} @Override public Map<String, MetricManager> getAllMetrics() { diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java index 7abaa12..5f0480c 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/impl/DoNothingMetricManager.java @@ -18,16 +18,16 @@ */ package org.apache.iotdb.metrics.impl; -import java.util.Map; -import java.util.concurrent.TimeUnit; 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.Rate; -import org.apache.iotdb.metrics.type.IMetric; import org.apache.iotdb.metrics.type.Timer; +import java.util.Map; +import java.util.concurrent.TimeUnit; + public class DoNothingMetricManager implements MetricManager { @Override @@ -56,59 +56,37 @@ public class DoNothingMetricManager implements MetricManager { } @Override - public void count(int delta, String metric, String... tags) { - - } + public void count(int delta, String metric, String... tags) {} @Override - public void count(long delta, String metric, String... tags) { - - } + public void count(long delta, String metric, String... tags) {} @Override - public void histogram(int value, String metric, String... tags) { - - } + public void histogram(int value, String metric, String... tags) {} @Override - public void histogram(long value, String metric, String... tags) { - - } + public void histogram(long value, String metric, String... tags) {} @Override - public void gauge(int value, String metric, String... tags) { - - } + public void gauge(int value, String metric, String... tags) {} @Override - public void gauge(long value, String metric, String... tags) { - - } + public void gauge(long value, String metric, String... tags) {} @Override - public void meter(int value, String metric, String... tags) { - - } + public void meter(int value, String metric, String... tags) {} @Override - public void meter(long value, String metric, String... tags) { - - } + public void meter(long value, String metric, String... tags) {} @Override - public void timer(long delta, TimeUnit timeUnit, String metric, String... tags) { - - } + public void timer(long delta, TimeUnit timeUnit, String metric, String... tags) {} @Override - public void timerStart(String metric, String... tags) { - - } + public void timerStart(String metric, String... tags) {} @Override - public void timerEnd(String metric, String... tags) { - - } + public void timerEnd(String metric, String... tags) {} @Override public Map<String, String[]> getAllMetricKeys() { @@ -139,6 +117,4 @@ public class DoNothingMetricManager implements MetricManager { public Map<String[], Timer> getAllTimers() { 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 1c96e72..5af908c 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 @@ -20,6 +20,7 @@ package org.apache.iotdb.metrics.type; public interface Counter extends IMetric { void inc(); + void inc(long n); long count(); 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 4fe5ae3..c3038ff 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 @@ -20,5 +20,6 @@ package org.apache.iotdb.metrics.type; 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 a65ae37..44f9036 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 @@ -20,7 +20,9 @@ package org.apache.iotdb.metrics.type; public interface Histogram extends IMetric { void update(int value); + void update(long value); + long count(); HistogramSnapshot takeSnapshot(); diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java index 0317ff2..54adeec 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java @@ -20,21 +20,23 @@ package org.apache.iotdb.metrics.type; import java.io.OutputStream; -/** - * used by Timer and Histogram - */ +/** used by Timer and Histogram */ public interface HistogramSnapshot { public abstract double getValue(double quantile); public abstract long[] getValues(); + public abstract int size(); public double getMedian(); public abstract long getMax(); + public abstract double getMean(); + public abstract long getMin(); + public abstract double getStdDev(); /** diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java index 3646f73..d4776c6 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/IMetric.java @@ -18,5 +18,4 @@ */ package org.apache.iotdb.metrics.type; -public interface IMetric { -} +public interface IMetric {} diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java index 751b83c..d64fb3f 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java @@ -20,11 +20,16 @@ package org.apache.iotdb.metrics.type; public interface Rate extends IMetric { long getCount(); + double getOneMinuteRate(); + double getMeanRate(); + double getFiveMinuteRate(); + double getFifteenMinuteRate(); void mark(); + void mark(long n); } diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricFactory.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricFactory.java index 29a8130..67aba66 100644 --- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricFactory.java +++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricFactory.java @@ -19,6 +19,10 @@ package org.apache.iotdb.metrics.micrometer; +import org.apache.iotdb.metrics.KnownMetric; +import org.apache.iotdb.metrics.MetricFactory; +import org.apache.iotdb.metrics.MetricManager; + import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics; import io.micrometer.core.instrument.binder.jvm.JvmCompilationMetrics; @@ -26,9 +30,6 @@ import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics; import io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics; import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics; import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics; -import org.apache.iotdb.metrics.KnownMetric; -import org.apache.iotdb.metrics.MetricFactory; -import org.apache.iotdb.metrics.MetricManager; import java.util.Collections; import java.util.Map; @@ -72,7 +73,7 @@ public class MicrometerMetricFactory implements MetricFactory { JvmCompilationMetrics jvmCompilationMetrics = new JvmCompilationMetrics(); jvmCompilationMetrics.bindTo(meterRegistry); try (JvmGcMetrics jvmGcMetrics = new JvmGcMetrics(); - JvmHeapPressureMetrics jvmHeapPressureMetrics = new JvmHeapPressureMetrics()) { + JvmHeapPressureMetrics jvmHeapPressureMetrics = new JvmHeapPressureMetrics()) { jvmGcMetrics.bindTo(meterRegistry); jvmHeapPressureMetrics.bindTo(meterRegistry); } diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java index 4b6b660..ca22f68 100644 --- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java +++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java @@ -19,10 +19,6 @@ package org.apache.iotdb.metrics.micrometer; -import io.micrometer.core.instrument.Meter; -import io.micrometer.core.instrument.MeterRegistry; -import io.micrometer.prometheus.PrometheusConfig; -import io.micrometer.prometheus.PrometheusMeterRegistry; import org.apache.iotdb.metrics.MetricManager; import org.apache.iotdb.metrics.micrometer.type.MicrometerCounter; import org.apache.iotdb.metrics.type.Counter; @@ -32,6 +28,11 @@ import org.apache.iotdb.metrics.type.IMetric; import org.apache.iotdb.metrics.type.Rate; import org.apache.iotdb.metrics.type.Timer; +import io.micrometer.core.instrument.Meter; +import io.micrometer.core.instrument.MeterRegistry; +import io.micrometer.prometheus.PrometheusConfig; +import io.micrometer.prometheus.PrometheusMeterRegistry; + import java.util.Map; import java.util.concurrent.TimeUnit; @@ -50,7 +51,8 @@ public class MicrometerMetricManager implements MetricManager { @Override public Counter counter(String metric, String... tags) { - io.micrometer.core.instrument.Counter innerCounter = prometheusMeterRegistry.counter(metric, tags); + io.micrometer.core.instrument.Counter innerCounter = + prometheusMeterRegistry.counter(metric, tags); IMetric counter = currentMeters.get(innerCounter.getId()); if (counter == null) { counter = new MicrometerCounter(innerCounter); @@ -80,59 +82,37 @@ public class MicrometerMetricManager implements MetricManager { } @Override - public void count(int delta, String metric, String... tags) { - - } + public void count(int delta, String metric, String... tags) {} @Override - public void count(long delta, String metric, String... tags) { - - } + public void count(long delta, String metric, String... tags) {} @Override - public void histogram(int value, String metric, String... tags) { - - } + public void histogram(int value, String metric, String... tags) {} @Override - public void histogram(long value, String metric, String... tags) { - - } + public void histogram(long value, String metric, String... tags) {} @Override - public void gauge(int value, String metric, String... tags) { - - } + public void gauge(int value, String metric, String... tags) {} @Override - public void gauge(long value, String metric, String... tags) { - - } + public void gauge(long value, String metric, String... tags) {} @Override - public void meter(int value, String metric, String... tags) { - - } + public void meter(int value, String metric, String... tags) {} @Override - public void meter(long value, String metric, String... tags) { - - } + public void meter(long value, String metric, String... tags) {} @Override - public void timer(long delta, TimeUnit timeUnit, String metric, String... tags) { - - } + public void timer(long delta, TimeUnit timeUnit, String metric, String... tags) {} @Override - public void timerStart(String metric, String... tags) { - - } + public void timerStart(String metric, String... tags) {} @Override - public void timerEnd(String metric, String... tags) { - - } + public void timerEnd(String metric, String... tags) {} @Override public Map<String, String[]> getAllMetricKeys() { diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricReporter.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricReporter.java index f738baa..518a4d0 100644 --- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricReporter.java +++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricReporter.java @@ -19,11 +19,12 @@ package org.apache.iotdb.metrics.micrometer; -import com.sun.net.httpserver.HttpServer; -import io.micrometer.prometheus.PrometheusMeterRegistry; import org.apache.iotdb.metrics.MetricFactory; import org.apache.iotdb.metrics.MetricReporter; +import com.sun.net.httpserver.HttpServer; +import io.micrometer.prometheus.PrometheusMeterRegistry; + import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; @@ -36,15 +37,19 @@ public class MicrometerMetricReporter implements MetricReporter { public boolean start() { try { HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0); - server.createContext("/prometheus", httpExchange -> { - String response = ((PrometheusMeterRegistry) - ((MicrometerMetricManager) micrometerMetricFactory.getMetric("iotdb")) - .getMeterRegistry()).scrape(); - httpExchange.sendResponseHeaders(200, response.getBytes().length); - try (OutputStream os = httpExchange.getResponseBody()) { - os.write(response.getBytes()); - } - }); + server.createContext( + "/prometheus", + httpExchange -> { + String response = + ((PrometheusMeterRegistry) + ((MicrometerMetricManager) micrometerMetricFactory.getMetric("iotdb")) + .getMeterRegistry()) + .scrape(); + httpExchange.sendResponseHeaders(200, response.getBytes().length); + try (OutputStream os = httpExchange.getResponseBody()) { + os.write(response.getBytes()); + } + }); runThread = new Thread(server::start); runThread.start();
