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 07:13:00 UTC
[iotdb] branch master updated: [IOTDB-3158][metric] fix NPE exception (#5891)
This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new fe253ffdfd [IOTDB-3158][metric] fix NPE exception (#5891)
fe253ffdfd is described below
commit fe253ffdfdb94aec990472f99dc9ae20540ab859
Author: ZhangHongYin <46...@users.noreply.github.com>
AuthorDate: Sat May 14 15:12:53 2022 +0800
[IOTDB-3158][metric] fix NPE exception (#5891)
---
.../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 5446167fea..b2452d0dea 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
@@ -156,6 +156,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;
@@ -168,12 +171,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()),
@@ -184,12 +193,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 79525be24a..bc481f8b5b 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
@@ -73,38 +73,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);
+ });
+ }
});
}