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 4315055 add log output; implement counter
4315055 is described below
commit 4315055a5ef9c39057c6c38e51aea10c28e15ef8
Author: xiangdong huang <[email protected]>
AuthorDate: Sun Feb 21 11:08:20 2021 +0800
add log output; implement counter
---
.../org/apache/iotdb/metrics/MetricService.java | 7 +++---
.../micrometer/MicrometerMetricManager.java | 27 ++++++++++++----------
2 files changed, 18 insertions(+), 16 deletions(-)
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 1934300..50b0d7d 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
@@ -53,16 +53,14 @@ public class MetricService {
continue;
}
size++;
- // if (size > 1) {
- // throw new RuntimeException("More than one Metric
Implementation is detected.");
- // }
factory = mf;
- break;
}
// if no more implementation, we use nothingFactory.
if (size == 0) {
factory = nothingFactory;
+ } else if (size > 1) {
+ logger.warn("detect more than one MetricFactory, will use {}",
factory.getClass().getName());
}
ServiceLoader<MetricReporter> reporter =
ServiceLoader.load(MetricReporter.class);
@@ -70,6 +68,7 @@ public class MetricService {
reporters.add(r);
r.setMetricFactory(factory);
r.start();
+ logger.info("detect MetricReporter {}", r.getClass().getName());
}
}
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 ca22f68..5eb65e4 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
@@ -34,6 +34,7 @@ import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
public class MicrometerMetricManager implements MetricManager {
@@ -43,6 +44,7 @@ public class MicrometerMetricManager implements MetricManager
{
public MicrometerMetricManager() {
prometheusMeterRegistry = new
PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
+ currentMeters = new ConcurrentHashMap<>();
}
public MeterRegistry getMeterRegistry() {
@@ -53,15 +55,22 @@ public class MicrometerMetricManager implements
MetricManager {
public Counter counter(String metric, String... tags) {
io.micrometer.core.instrument.Counter innerCounter =
prometheusMeterRegistry.counter(metric, tags);
- IMetric counter = currentMeters.get(innerCounter.getId());
- if (counter == null) {
- counter = new MicrometerCounter(innerCounter);
- currentMeters.put(innerCounter.getId(), counter);
- }
- return (Counter) counter;
+ return (Counter)
+ currentMeters.computeIfAbsent(
+ innerCounter.getId(), key -> new MicrometerCounter(innerCounter));
}
@Override
+ public void count(int delta, String metric, String... tags) {
+ io.micrometer.core.instrument.Counter innerCounter =
+ prometheusMeterRegistry.counter(metric, tags);
+ innerCounter.increment(delta);
+ }
+
+ @Override
+ public void count(long delta, String metric, String... tags) {}
+
+ @Override
public Gauge gauge(String metric, String... tags) {
return null;
}
@@ -82,12 +91,6 @@ public class MicrometerMetricManager implements
MetricManager {
}
@Override
- public void count(int delta, String metric, String... tags) {}
-
- @Override
- public void count(long delta, String metric, String... tags) {}
-
- @Override
public void histogram(int value, String metric, String... tags) {}
@Override