little improve Signed-off-by: OneSizeFitQuorum <tanxinyu@apache.org>
diff --git a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java index 5fa25f3..623cd26 100644 --- a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java +++ b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java
@@ -88,7 +88,7 @@ @Override public Timer createTimer(MetricInfo metricInfo) { return new DropwizardTimer( - metricRegistry.timer(DropwizardMetricNameTool.toFlatString(metricInfo))); + metricRegistry.histogram(DropwizardMetricNameTool.toFlatString(metricInfo))); } @Override
diff --git a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardTimer.java b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardTimer.java index 24a0849..404f42d 100644 --- a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardTimer.java +++ b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardTimer.java
@@ -26,24 +26,29 @@ import java.util.concurrent.TimeUnit; public class DropwizardTimer implements Timer { - com.codahale.metrics.Timer timer; + com.codahale.metrics.Histogram histogram; - public DropwizardTimer(com.codahale.metrics.Timer timer) { - this.timer = timer; + public DropwizardTimer(com.codahale.metrics.Histogram histogram) { + this.histogram = histogram; } @Override public void update(long duration, TimeUnit unit) { - timer.update(duration, unit); + histogram.update(unit.toNanos(duration)); } @Override public HistogramSnapshot takeSnapshot() { - return new DropwizardHistogramSnapshot(timer.getSnapshot()); + return new DropwizardHistogramSnapshot(histogram.getSnapshot()); + } + + @Override + public long getCount() { + return histogram.getCount(); } @Override public Rate getImmutableRate() { - return new DropwizardRate(timer); + return null; } }
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java index a4f0beb..a243d5c 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java
@@ -152,7 +152,7 @@ metricInfo.getTags(), metricType, snapshot, - timer.getImmutableRate().getCount(), + timer.getCount(), prometheusTextWriter); } }
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 020d209..a1f5fb8 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
@@ -48,6 +48,10 @@ /** It's not safe to use the update interface of this rate. */ Rate getImmutableRate(); + default long getCount() { + return 0; + } + @Override default void constructValueMap(Map<String, Object> result) { takeSnapshot().constructValueMap(result);
diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimer.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimer.java index c9fa790..0c841a8 100644 --- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimer.java +++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimer.java
@@ -48,6 +48,11 @@ } @Override + public long getCount() { + return micrometerRate.getCount(); + } + + @Override public Rate getImmutableRate() { return micrometerRate; }
diff --git a/server/src/test/java/org/apache/iotdb/db/metric/MetricServiceTest.java b/server/src/test/java/org/apache/iotdb/db/metric/MetricServiceTest.java index e0c7fc9..dc9b35f 100644 --- a/server/src/test/java/org/apache/iotdb/db/metric/MetricServiceTest.java +++ b/server/src/test/java/org/apache/iotdb/db/metric/MetricServiceTest.java
@@ -231,7 +231,7 @@ metricService.timer(6, TimeUnit.MILLISECONDS, "timer1", MetricLevel.IMPORTANT, "tag", "value"); metricService.timer(8, TimeUnit.MILLISECONDS, "timer1", MetricLevel.IMPORTANT, "tag", "value"); metricService.timer(10, TimeUnit.MILLISECONDS, "timer1", MetricLevel.IMPORTANT, "tag", "value"); - assertEquals(5, timer1.getImmutableRate().getCount()); + assertEquals(5, timer1.getCount()); assertEquals(5, timer1.takeSnapshot().size()); Timer timer2 = metricService.getOrCreateTimer("timer1", MetricLevel.IMPORTANT, "tag", "value"); assertEquals(timer1, timer2);