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

jackietien 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 44ed96111ab Add device number metric
44ed96111ab is described below

commit 44ed96111abe1d4f3bb0f7a8696ea9397a3466ae
Author: Chen YZ <[email protected]>
AuthorDate: Thu May 16 14:44:45 2024 +0800

    Add device number metric
---
 .../schemaengine/metric/SchemaEngineMemMetric.java  | 15 ++++++++++++++-
 .../schemaengine/metric/SchemaRegionMemMetric.java  | 21 +++++++++++++++++++++
 .../rescon/ISchemaEngineStatistics.java             |  2 ++
 .../rescon/MemSchemaEngineStatistics.java           | 14 ++++++++++++++
 .../rescon/MemSchemaRegionStatistics.java           |  3 +++
 5 files changed, 54 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaEngineMemMetric.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaEngineMemMetric.java
index 88080782e16..b80f0f6b6ef 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaEngineMemMetric.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaEngineMemMetric.java
@@ -37,7 +37,7 @@ public class SchemaEngineMemMetric implements 
ISchemaEngineMetric {
   private static final String TOTAL_MEM_USAGE = 
"schema_region_total_mem_usage";
   private static final String MEM_CAPACITY = "schema_region_mem_capacity";
   private static final String REGION_NUMBER = "schema_region_number";
-
+  private static final String DEVICE_NUMBER = "schema_region_total_device_cnt";
   private static final String SCHEMA_CONSENSUS = "schema_region_consensus";
   private static final String SCHEMA_ENGINE_MODE = "schema_engine_mode";
 
@@ -49,6 +49,13 @@ public class SchemaEngineMemMetric implements 
ISchemaEngineMetric {
 
   @Override
   public void bindTo(AbstractMetricService metricService) {
+    metricService.createAutoGauge(
+        Metric.MEM.toString(),
+        MetricLevel.IMPORTANT,
+        engineStatistics,
+        ISchemaEngineStatistics::getTotalDevicesNumber,
+        Tag.NAME.toString(),
+        DEVICE_NUMBER);
     metricService.createAutoGauge(
         Metric.MEM.toString(),
         MetricLevel.IMPORTANT,
@@ -94,6 +101,8 @@ public class SchemaEngineMemMetric implements 
ISchemaEngineMetric {
 
   @Override
   public void unbindFrom(AbstractMetricService metricService) {
+    metricService.remove(
+        MetricType.AUTO_GAUGE, Metric.MEM.toString(), Tag.NAME.toString(), 
DEVICE_NUMBER);
     metricService.remove(
         MetricType.AUTO_GAUGE,
         Metric.MEM.toString(),
@@ -108,6 +117,10 @@ public class SchemaEngineMemMetric implements 
ISchemaEngineMetric {
         MetricType.AUTO_GAUGE, Metric.SCHEMA_ENGINE.toString(), 
Tag.NAME.toString(), MEM_CAPACITY);
     metricService.remove(
         MetricType.AUTO_GAUGE, Metric.SCHEMA_ENGINE.toString(), 
Tag.NAME.toString(), REGION_NUMBER);
+    metricService.remove(
+        MetricType.GAUGE, Metric.SCHEMA_ENGINE.toString(), 
Tag.NAME.toString(), SCHEMA_ENGINE_MODE);
+    metricService.remove(
+        MetricType.GAUGE, Metric.SCHEMA_ENGINE.toString(), 
Tag.NAME.toString(), SCHEMA_CONSENSUS);
   }
 
   /**
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaRegionMemMetric.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaRegionMemMetric.java
index 1437d5d651e..ae255cc0caa 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaRegionMemMetric.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/metric/SchemaRegionMemMetric.java
@@ -34,6 +34,7 @@ public class SchemaRegionMemMetric implements 
ISchemaRegionMetric {
 
   private static final String MEM_USAGE = "schema_region_mem_usage";
   private static final String SERIES_CNT = "schema_region_series_cnt";
+  private static final String DEVICE_NUMBER = "schema_region_device_cnt";
   private static final String TEMPLATE_CNT = "activated_template_cnt";
   private static final String TEMPLATE_SERIES_CNT = "template_series_cnt";
   private static final String TRAVERSER_TIMER = 
"schema_region_traverser_timer";
@@ -52,6 +53,17 @@ public class SchemaRegionMemMetric implements 
ISchemaRegionMetric {
 
   @Override
   public void bindTo(AbstractMetricService metricService) {
+    metricService.createAutoGauge(
+        Metric.SCHEMA_REGION.toString(),
+        MetricLevel.IMPORTANT,
+        regionStatistics,
+        MemSchemaRegionStatistics::getDevicesNumber,
+        Tag.NAME.toString(),
+        DEVICE_NUMBER,
+        Tag.REGION.toString(),
+        regionTagValue,
+        Tag.DATABASE.toString(),
+        database);
     metricService.createAutoGauge(
         Metric.SCHEMA_REGION.toString(),
         MetricLevel.IMPORTANT,
@@ -111,6 +123,15 @@ public class SchemaRegionMemMetric implements 
ISchemaRegionMetric {
   @Override
   public void unbindFrom(AbstractMetricService metricService) {
     traverserTimer = DoNothingMetricManager.DO_NOTHING_TIMER;
+    metricService.remove(
+        MetricType.AUTO_GAUGE,
+        Metric.SCHEMA_REGION.toString(),
+        Tag.NAME.toString(),
+        DEVICE_NUMBER,
+        Tag.REGION.toString(),
+        regionTagValue,
+        Tag.DATABASE.toString(),
+        database);
     metricService.remove(
         MetricType.AUTO_GAUGE,
         Metric.SCHEMA_REGION.toString(),
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/ISchemaEngineStatistics.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/ISchemaEngineStatistics.java
index 1cdd6aa11b2..cca3cecfc69 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/ISchemaEngineStatistics.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/ISchemaEngineStatistics.java
@@ -31,6 +31,8 @@ public interface ISchemaEngineStatistics {
 
   long getTotalSeriesNumber();
 
+  long getTotalDevicesNumber();
+
   int getSchemaRegionNumber();
 
   long getTemplateSeriesNumber();
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaEngineStatistics.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaEngineStatistics.java
index b48d27fb798..9bc847634dd 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaEngineStatistics.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaEngineStatistics.java
@@ -44,6 +44,7 @@ public class MemSchemaEngineStatistics implements 
ISchemaEngineStatistics {
   protected final AtomicLong memoryUsage = new AtomicLong(0);
   private final AtomicLong totalMeasurementNumber = new AtomicLong(0);
   private final AtomicLong totalViewNumber = new AtomicLong(0);
+  private final AtomicLong totalDeviceNumber = new AtomicLong(0);
   private final Map<Integer, Integer> templateUsage = new 
ConcurrentHashMap<>();
   private volatile boolean allowToCreateNewSeries = true;
 
@@ -116,6 +117,11 @@ public class MemSchemaEngineStatistics implements 
ISchemaEngineStatistics {
     return totalMeasurementNumber.get() + totalViewNumber.get() + 
getTemplateSeriesNumber();
   }
 
+  @Override
+  public long getTotalDevicesNumber() {
+    return totalDeviceNumber.get();
+  }
+
   @Override
   public int getSchemaRegionNumber() {
     return SchemaEngine.getInstance().getSchemaRegionNumber();
@@ -165,6 +171,14 @@ public class MemSchemaEngineStatistics implements 
ISchemaEngineStatistics {
     totalViewNumber.addAndGet(-deletedNum);
   }
 
+  public void addDevice() {
+    totalDeviceNumber.incrementAndGet();
+  }
+
+  public void deleteDevice(long cnt) {
+    totalDeviceNumber.addAndGet(-cnt);
+  }
+
   @Override
   public MemSchemaEngineStatistics getAsMemSchemaEngineStatistics() {
     return this;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaRegionStatistics.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaRegionStatistics.java
index c5fd13ad93f..be960b3807b 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaRegionStatistics.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/schemaengine/rescon/MemSchemaRegionStatistics.java
@@ -96,10 +96,12 @@ public class MemSchemaRegionStatistics implements 
ISchemaRegionStatistics {
 
   public void addDevice() {
     devicesNumber.incrementAndGet();
+    schemaEngineStatistics.addDevice();
   }
 
   public void deleteDevice() {
     devicesNumber.decrementAndGet();
+    schemaEngineStatistics.deleteDevice(1L);
   }
 
   @Override
@@ -162,6 +164,7 @@ public class MemSchemaRegionStatistics implements 
ISchemaRegionStatistics {
     schemaEngineStatistics.releaseMemory(memoryUsage.get());
     schemaEngineStatistics.deleteMeasurement(measurementNumber.get());
     schemaEngineStatistics.deleteView(viewNumber.get());
+    schemaEngineStatistics.deleteDevice(devicesNumber.get());
     memoryUsage.getAndSet(0);
     measurementNumber.getAndSet(0);
     devicesNumber.getAndSet(0);

Reply via email to