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:17 UTC
[iotdb] branch rel/1.0 updated: [To rel/1.0][IOTDB-5232] Add schema memory metric (#8544)
This is an automated email from the ASF dual-hosted git repository.
zyk pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.0 by this push:
new 02357a93a5 [To rel/1.0][IOTDB-5232] Add schema memory metric (#8544)
02357a93a5 is described below
commit 02357a93a5ab83f931bbc45bc9d6da02c007a81b
Author: Marcos_Zyk <38...@users.noreply.github.com>
AuthorDate: Tue Dec 20 20:52:11 2022 +0800
[To rel/1.0][IOTDB-5232] Add schema memory metric (#8544)
[To rel/1.0][IOTDB-5232] Add schema memory metric (#8544)
---
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 de2302c8b5..92cd563eb6 100644
--- a/docs/UserGuide/Monitor-Alert/Metric-Tool.md
+++ b/docs/UserGuide/Monitor-Alert/Metric-Tool.md
@@ -173,11 +173,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 3ffc58ac91..cafd2f257e 100644
--- a/docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md
+++ b/docs/zh/UserGuide/Monitor-Alert/Metric-Tool.md
@@ -176,11 +176,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);
}