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);