You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2023/04/19 01:47:42 UTC

[iotdb] 01/01: little improve

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

tanxinyu pushed a commit to branch metric_performance
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 4e42ef1ea243383372498d68508f076c8651b3e7
Author: OneSizeFitQuorum <ta...@apache.org>
AuthorDate: Wed Apr 19 09:47:25 2023 +0800

    little improve
    
    Signed-off-by: OneSizeFitQuorum <ta...@apache.org>
---
 .../metrics/dropwizard/DropwizardMetricManager.java     |  2 +-
 .../iotdb/metrics/dropwizard/type/DropwizardTimer.java  | 17 +++++++++++------
 .../metrics/reporter/prometheus/PrometheusReporter.java |  2 +-
 .../main/java/org/apache/iotdb/metrics/type/Timer.java  |  4 ++++
 .../iotdb/metrics/micrometer/type/MicrometerTimer.java  |  5 +++++
 .../org/apache/iotdb/db/metric/MetricServiceTest.java   |  2 +-
 6 files changed, 23 insertions(+), 9 deletions(-)

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 5fa25f3a45..623cd269ff 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 @@ public class DropwizardMetricManager extends AbstractMetricManager {
   @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 24a084937b..404f42df6e 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 org.apache.iotdb.metrics.type.Timer;
 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 a4f0beb889..a243d5c016 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 @@ public class PrometheusReporter implements Reporter {
               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 020d209f93..a1f5fb825b 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 @@ public interface Timer extends IMetric {
   /** 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 c9fa79045d..0c841a8bc4 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
@@ -47,6 +47,11 @@ public class MicrometerTimer implements Timer {
     return new MicrometerTimerHistogramSnapshot(timer.takeSnapshot(), timer.baseTimeUnit());
   }
 
+  @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 e0c7fc91b8..dc9b35fc25 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 @@ public class MetricServiceTest {
     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);