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