You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ro...@apache.org on 2022/05/14 08:43:35 UTC
[iotdb] branch rel/0.13 updated: [IOTDB-3158][metric] fix NPE exception (#5891) (#5907)
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/0.13 by this push:
new fe68d84413 [IOTDB-3158][metric] fix NPE exception (#5891) (#5907)
fe68d84413 is described below
commit fe68d844133ef622433632a68551166887971974
Author: ZhangHongYin <46...@users.noreply.github.com>
AuthorDate: Sat May 14 16:43:31 2022 +0800
[IOTDB-3158][metric] fix NPE exception (#5891) (#5907)
(cherry picked from commit fe253ffdfdb94aec990472f99dc9ae20540ab859)
---
.../metrics/dropwizard/reporter/IoTDBReporter.java | 15 +++++
.../micrometer/reporter/IoTDBMeterRegistry.java | 66 +++++++++++-----------
2 files changed, 49 insertions(+), 32 deletions(-)
diff --git a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java
index f9b08dd2ff..06693b7491 100644
--- a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java
+++ b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java
@@ -165,6 +165,9 @@ public class IoTDBReporter extends ScheduledReporter {
}
private void sendGauge(String name, Gauge gauge) {
+ if (null == gauge) {
+ return;
+ }
MetricName metricName = new MetricName(name);
Object obj = gauge.getValue();
double value;
@@ -177,12 +180,18 @@ public class IoTDBReporter extends ScheduledReporter {
}
private void sendCounter(String name, Counter counter) {
+ if (null == counter) {
+ return;
+ }
MetricName metricName = new MetricName(name);
double value = counter.getCount();
updateValue(prefixed(metricName.getName()), metricName.getTags(), value);
}
private void sendHistogram(String name, Histogram histogram) {
+ if (null == histogram) {
+ return;
+ }
MetricName metricName = new MetricName(name);
writeSnapshotAndCount(
prefixed(metricName.getName()),
@@ -193,12 +202,18 @@ public class IoTDBReporter extends ScheduledReporter {
}
private void sendMeter(String name, Meter meter) {
+ if (null == meter) {
+ return;
+ }
MetricName metricName = new MetricName(name);
double value = meter.getCount();
updateValue(prefixed(metricName.getName()), metricName.getTags(), value);
}
private void sendTimer(String name, Timer timer) {
+ if (null == timer) {
+ return;
+ }
MetricName metricName = new MetricName(name);
writeSnapshotAndCount(
prefixed(metricName.getName()),
diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java
index 979919cfeb..9ec5a3816f 100644
--- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java
+++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java
@@ -88,38 +88,40 @@ public class IoTDBMeterRegistry extends StepMeterRegistry {
getMeters()
.forEach(
meter -> {
- Meter.Id id = meter.getId();
- String name = id.getName();
- List<Tag> tags = id.getTags();
- Map<String, String> labels = tagsConvertToMap(tags);
- meter.use(
- gauge -> {
- updateValue(name, labels, gauge.value(), time);
- },
- counter -> {
- updateValue(name, labels, counter.count(), time);
- },
- timer -> {
- writeSnapshotAndCount(name, labels, timer.takeSnapshot(), time);
- },
- summary -> {
- writeSnapshotAndCount(name, labels, summary.takeSnapshot(), time);
- },
- longTaskTimer -> {
- updateValue(name, labels, (double) longTaskTimer.activeTasks(), time);
- },
- timeGauge -> {
- updateValue(name, labels, timeGauge.value(getBaseTimeUnit()), time);
- },
- functionCounter -> {
- updateValue(name, labels, functionCounter.count(), time);
- },
- functionTimer -> {
- updateValue(name, labels, functionTimer.count(), time);
- },
- m -> {
- logger.debug("unknown meter:" + meter);
- });
+ if (null != meter) {
+ Meter.Id id = meter.getId();
+ String name = id.getName();
+ List<Tag> tags = id.getTags();
+ Map<String, String> labels = tagsConvertToMap(tags);
+ meter.use(
+ gauge -> {
+ updateValue(name, labels, gauge.value(), time);
+ },
+ counter -> {
+ updateValue(name, labels, counter.count(), time);
+ },
+ timer -> {
+ writeSnapshotAndCount(name, labels, timer.takeSnapshot(), time);
+ },
+ summary -> {
+ writeSnapshotAndCount(name, labels, summary.takeSnapshot(), time);
+ },
+ longTaskTimer -> {
+ updateValue(name, labels, (double) longTaskTimer.activeTasks(), time);
+ },
+ timeGauge -> {
+ updateValue(name, labels, timeGauge.value(getBaseTimeUnit()), time);
+ },
+ functionCounter -> {
+ updateValue(name, labels, functionCounter.count(), time);
+ },
+ functionTimer -> {
+ updateValue(name, labels, functionTimer.count(), time);
+ },
+ m -> {
+ logger.debug("unknown meter:" + meter);
+ });
+ }
});
}