This is an automated email from the ASF dual-hosted git repository.

xingtanzjr 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 f3ef81a73ea delay the initialization of DataRegion metrics (#10100)
f3ef81a73ea is described below

commit f3ef81a73ea93c580c613273e7fb23ab5f5f5762
Author: shuwenwei <[email protected]>
AuthorDate: Wed Jun 14 10:44:42 2023 +0800

    delay the initialization of DataRegion metrics (#10100)
---
 .../iotdb/db/service/metrics/WritingMetrics.java     | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java 
b/server/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
index 582d208f70e..4138ff20d47 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.commons.consensus.DataRegionId;
 import org.apache.iotdb.commons.service.metric.MetricService;
 import org.apache.iotdb.commons.service.metric.enums.Metric;
 import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.engine.StorageEngine;
 import org.apache.iotdb.db.engine.flush.FlushManager;
 import org.apache.iotdb.db.engine.storagegroup.DataRegion;
 import org.apache.iotdb.db.wal.WALManager;
@@ -36,6 +37,7 @@ import org.apache.iotdb.metrics.utils.MetricLevel;
 import org.apache.iotdb.metrics.utils.MetricType;
 
 import java.util.Arrays;
+import java.util.List;
 
 public class WritingMetrics implements IMetricSet {
   private static final WritingMetrics INSTANCE = new WritingMetrics();
@@ -341,6 +343,22 @@ public class WritingMetrics implements IMetricSet {
       "oldest_mem_table_ram_when_cause_flush";
   public static final String FLUSH_TSFILE_SIZE = "flush_tsfile_size";
 
+  public void bindDataRegionMetrics() {
+    List<DataRegion> allDataRegions = 
StorageEngine.getInstance().getAllDataRegions();
+    List<DataRegionId> allDataRegionIds = 
StorageEngine.getInstance().getAllDataRegionIds();
+    allDataRegions.forEach(this::createDataRegionMemoryCostMetrics);
+    allDataRegionIds.forEach(this::createFlushingMemTableStatusMetrics);
+  }
+
+  public void unbindDataRegionMetrics() {
+    List<DataRegionId> allDataRegionIds = 
StorageEngine.getInstance().getAllDataRegionIds();
+    allDataRegionIds.forEach(
+        dataRegionId -> {
+          removeDataRegionMemoryCostMetrics(dataRegionId);
+          removeFlushingMemTableStatusMetrics(dataRegionId);
+        });
+  }
+
   public void createDataRegionMemoryCostMetrics(DataRegion dataRegion) {
     DataRegionId dataRegionId = new 
DataRegionId(Integer.parseInt(dataRegion.getDataRegionId()));
     MetricService.getInstance()
@@ -641,6 +659,7 @@ public class WritingMetrics implements IMetricSet {
     bindFlushSubTaskMetrics(metricService);
     bindWALMetrics(metricService);
     bindWALCostMetrics(metricService);
+    bindDataRegionMetrics();
   }
 
   @Override
@@ -649,6 +668,7 @@ public class WritingMetrics implements IMetricSet {
     unbindFlushSubTaskMetrics(metricService);
     unbindWALMetrics(metricService);
     unbindWALCostMetrics(metricService);
+    unbindDataRegionMetrics();
   }
 
   public static WritingMetrics getInstance() {

Reply via email to