You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by zy...@apache.org on 2022/12/20 12:52:37 UTC
[iotdb] branch master updated: [IOTDB-5232] Add schema memory metric (#8545)
This is an automated email from the ASF dual-hosted git repository.
zyk 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 f65389577c [IOTDB-5232] Add schema memory metric (#8545)
f65389577c is described below
commit f65389577cd1dac018bde1199c68b576b650f1f6
Author: Marcos_Zyk <38...@users.noreply.github.com>
AuthorDate: Tue Dec 20 20:52:32 2022 +0800
[IOTDB-5232] Add schema memory metric (#8545)
[IOTDB-5232] Add schema memory metric (#8545)
---
docs/UserGuide/Monitor-Alert/Metric-Tool.md | 12 ++++---
docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md | 12 ++++---
.../db/metadata/rescon/SchemaResourceManager.java | 4 ++-
...rics.java => SchemaResourceManagerMetrics.java} | 41 +++++++++++++++++++---
4 files changed, 54 insertions(+), 15 deletions(-)
diff --git a/docs/UserGuide/Monitor-Alert/Metric-Tool.md b/docs/UserGuide/Monitor-Alert/Metric-Tool.md
index c57222130a..151a43d522 100644
--- a/docs/UserGuide/Monitor-Alert/Metric-Tool.md
+++ b/docs/UserGuide/Monitor-Alert/Metric-Tool.md
@@ -181,11 +181,13 @@ Core-level metrics are enabled by default during system operation. The addition
| thrift_active_threads | name="ClientRPC-Service" | AutoGauge | The number of thrift active connections of client |
#### 4.2.6. Memory
-| Metric | Tags | Type | Description |
-| ------ | ----------------------------- | --------- | ------------------------------------------------------------------ |
-| mem | name="database_{{name}}" | AutoGauge | The memory usage of DataRegion in DataNode, Unit: byte |
-| mem | name="chunkMetaData_{{name}}" | AutoGauge | The memory usage of chunkMetaData when writting TsFile, Unit: byte |
-| mem | name="IoTConsensus" | AutoGauge | The memory usage of IoTConsensus, Unit: byte |
+| Metric | Tags | Type | Description |
+| ------ |--------------------------------------| --------- | ------------------------------------------------------------------ |
+| mem | name="database_{{name}}" | AutoGauge | The memory usage of DataRegion in DataNode, Unit: byte |
+| mem | name="chunkMetaData_{{name}}" | AutoGauge | The memory usage of chunkMetaData when writting TsFile, Unit: byte |
+| mem | name="IoTConsensus" | AutoGauge | The memory usage of IoTConsensus, Unit: byte |
+| mem | name="schema_region_total_usage" | AutoGauge | The memory usage of all SchemaRegion, Unit: byte |
+| mem | name="schema_region_total_remaining" | AutoGauge | The memory remaining for all SchemaRegion, Unit: byte |
#### 4.2.7. Task
| Metric | Tags | Type | Description |
diff --git a/docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md b/docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md
index 0d11b7c0fa..cb40dee7d4 100644
--- a/docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md
+++ b/docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md
@@ -177,11 +177,13 @@ Core 级别的监控指标在系统运行中默认开启,每一个 Core 级别
| thrift_active_threads | name="ClientRPC-Service" | AutoGauge | Client 建立的活跃 Thrift 连接数 |
#### 4.2.6. 内存统计
-| Metric | Tags | Type | Description |
-| ------ | ----------------------------- | --------- | ------------------------------------------------- |
-| mem | name="database_{{name}}" | AutoGauge | DataNode内对应DataRegion的内存占用,单位为byte |
-| mem | name="chunkMetaData_{{name}}" | AutoGauge | 写入TsFile时的ChunkMetaData的内存占用,单位为byte |
-| mem | name="IoTConsensus" | AutoGauge | IoT共识协议的内存占用,单位为byte |
+| Metric | Tags | Type | Description |
+| ------ |--------------------------------------| --------- | ------------------------------------------------- |
+| mem | name="database_{{name}}" | AutoGauge | DataNode内对应DataRegion的内存占用,单位为byte |
+| mem | name="chunkMetaData_{{name}}" | AutoGauge | 写入TsFile时的ChunkMetaData的内存占用,单位为byte |
+| mem | name="IoTConsensus" | AutoGauge | IoT共识协议的内存占用,单位为byte |
+| mem | name="schema_region_total_usage" | AutoGauge | 所有SchemaRegion的总内存占用,单位为byte |
+| mem | name="schema_region_total_remaining" | AutoGauge | 所有SchemaRegion的总内存剩余,单位为byte |
#### 4.2.7. 任务统计
| Metric | Tags | Type | Description |
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManager.java
index 8f95c73ad7..d46cb7addf 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManager.java
@@ -32,7 +32,9 @@ public class SchemaResourceManager {
public static void initSchemaResource() {
MetricService.getInstance()
- .addMetricSet(new SchemaStatisticsManagerMetrics(SchemaStatisticsManager.getInstance()));
+ .addMetricSet(
+ new SchemaResourceManagerMetrics(
+ SchemaStatisticsManager.getInstance(), MemoryStatistics.getInstance()));
MemoryStatistics.getInstance().init();
if (IoTDBDescriptor.getInstance()
.getConfig()
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaStatisticsManagerMetrics.java b/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManagerMetrics.java
similarity index 62%
rename from server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaStatisticsManagerMetrics.java
rename to server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManagerMetrics.java
index 350adda4c0..1782c7a046 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaStatisticsManagerMetrics.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/rescon/SchemaResourceManagerMetrics.java
@@ -28,11 +28,15 @@ import org.apache.iotdb.metrics.utils.MetricType;
import java.util.Objects;
-public class SchemaStatisticsManagerMetrics implements IMetricSet {
- private SchemaStatisticsManager schemaStatisticsManager;
+public class SchemaResourceManagerMetrics implements IMetricSet {
+ private final SchemaStatisticsManager schemaStatisticsManager;
- public SchemaStatisticsManagerMetrics(SchemaStatisticsManager schemaStatisticsManager) {
+ private final MemoryStatistics memoryStatistics;
+
+ public SchemaResourceManagerMetrics(
+ SchemaStatisticsManager schemaStatisticsManager, MemoryStatistics memoryStatistics) {
this.schemaStatisticsManager = schemaStatisticsManager;
+ this.memoryStatistics = memoryStatistics;
}
@Override
@@ -44,19 +48,48 @@ public class SchemaStatisticsManagerMetrics implements IMetricSet {
SchemaStatisticsManager::getTotalSeriesNumber,
Tag.NAME.toString(),
"timeSeries");
+
+ metricService.createAutoGauge(
+ Metric.MEM.toString(),
+ MetricLevel.IMPORTANT,
+ memoryStatistics,
+ MemoryStatistics::getMemoryUsage,
+ Tag.NAME.toString(),
+ "schema_region_total_usage");
+
+ metricService.createAutoGauge(
+ Metric.MEM.toString(),
+ MetricLevel.IMPORTANT,
+ memoryStatistics,
+ memoryStatistics ->
+ memoryStatistics.getMemoryCapacity() - memoryStatistics.getMemoryUsage(),
+ Tag.NAME.toString(),
+ "schema_region_total_remaining");
}
@Override
public void unbindFrom(AbstractMetricService metricService) {
metricService.remove(
MetricType.AUTO_GAUGE, Metric.QUANTITY.toString(), Tag.NAME.toString(), "timeSeries");
+
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ Metric.MEM.toString(),
+ Tag.NAME.toString(),
+ "schema_region_total_usage");
+
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ Metric.MEM.toString(),
+ Tag.NAME.toString(),
+ "schema_region_total_remaining");
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- SchemaStatisticsManagerMetrics that = (SchemaStatisticsManagerMetrics) o;
+ SchemaResourceManagerMetrics that = (SchemaResourceManagerMetrics) o;
return Objects.equals(schemaStatisticsManager, that.schemaStatisticsManager);
}