This is an automated email from the ASF dual-hosted git repository.
tanxinyu 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 01e1420fa0a Add Memory Threshold (#14597)
01e1420fa0a is described below
commit 01e1420fa0a75f44b59f6d71998d30c05f915c94
Author: ZhangHongYin <[email protected]>
AuthorDate: Fri Jan 10 19:20:52 2025 +0800
Add Memory Threshold (#14597)
---
.../db/service/metrics/DataNodeMetricsHelper.java | 4 +-
.../metrics/memory/ConsensusMemoryMetrics.java | 73 +++++++
.../metrics/memory/GlobalMemoryMetrics.java | 132 +++++++++++++
.../metrics/memory/QueryEngineMemoryMetrics.java | 179 ++++++++++++++++++
.../metrics/memory/SchemaEngineMemoryMetrics.java | 124 ++++++++++++
.../metrics/memory/StorageEngineMemoryMetrics.java | 210 +++++++++++++++++++++
.../metrics/memory/StreamEngineMemoryMetrics.java | 73 +++++++
.../metrics/memory/ThresholdMemoryMetrics.java | 194 -------------------
.../iotdb/commons/service/metric/enums/Metric.java | 3 +-
9 files changed, 795 insertions(+), 197 deletions(-)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
index dda0a403bc5..8ac2fa1fde4 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
@@ -39,7 +39,7 @@ import
org.apache.iotdb.db.queryengine.metric.QueryPlanCostMetricSet;
import org.apache.iotdb.db.queryengine.metric.QueryRelatedResourceMetricSet;
import org.apache.iotdb.db.queryengine.metric.QueryResourceMetricSet;
import org.apache.iotdb.db.queryengine.metric.SeriesScanCostMetricSet;
-import org.apache.iotdb.db.service.metrics.memory.ThresholdMemoryMetrics;
+import org.apache.iotdb.db.service.metrics.memory.GlobalMemoryMetrics;
import
org.apache.iotdb.db.storageengine.load.metrics.ActiveLoadingFilesNumberMetricsSet;
import
org.apache.iotdb.db.storageengine.load.metrics.ActiveLoadingFilesSizeMetricsSet;
import org.apache.iotdb.db.storageengine.load.metrics.LoadTsFileCostMetricsSet;
@@ -105,7 +105,7 @@ public class DataNodeMetricsHelper {
metricService.addMetricSet(ActiveLoadingFilesSizeMetricsSet.getInstance());
// bind memory related metrics
- metricService.addMetricSet(ThresholdMemoryMetrics.getInstance());
+ metricService.addMetricSet(GlobalMemoryMetrics.getInstance());
}
private static void initSystemMetrics(MetricService metricService) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/ConsensusMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/ConsensusMemoryMetrics.java
new file mode 100644
index 00000000000..b3f108892e7
--- /dev/null
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/ConsensusMemoryMetrics.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.service.metrics.memory;
+
+import org.apache.iotdb.commons.service.metric.enums.Metric;
+import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.metrics.AbstractMetricService;
+import org.apache.iotdb.metrics.metricsets.IMetricSet;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.MetricType;
+
+public class ConsensusMemoryMetrics implements IMetricSet {
+ private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
+ private static final String CONSENSUS = "Consensus";
+
+ @Override
+ public void bindTo(AbstractMetricService metricService) {
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ CONSENSUS,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1])
+ .set(config.getAllocateMemoryForConsensus());
+ }
+
+ @Override
+ public void unbindFrom(AbstractMetricService metricService) {
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ CONSENSUS,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1]);
+ }
+
+ public static ConsensusMemoryMetrics getInstance() {
+ return ConsensusMemoryMetricsHolder.INSTANCE;
+ }
+
+ private static class ConsensusMemoryMetricsHolder {
+
+ private static final ConsensusMemoryMetrics INSTANCE = new
ConsensusMemoryMetrics();
+
+ private ConsensusMemoryMetricsHolder() {}
+ }
+}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/GlobalMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/GlobalMemoryMetrics.java
new file mode 100644
index 00000000000..cca3f46f1d8
--- /dev/null
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/GlobalMemoryMetrics.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.service.metrics.memory;
+
+import org.apache.iotdb.commons.service.metric.enums.Metric;
+import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.storageengine.rescon.memory.SystemInfo;
+import org.apache.iotdb.metrics.AbstractMetricService;
+import org.apache.iotdb.metrics.metricsets.IMetricSet;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.MetricType;
+
+import java.util.Arrays;
+import java.util.Collections;
+
+public class GlobalMemoryMetrics implements IMetricSet {
+ private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
+ private static final SystemInfo systemInfo = SystemInfo.getInstance();
+
+ private static final String TOTAL = "Total";
+ public static final String ON_HEAP = "OnHeap";
+ public static final String OFF_HEAP = "OffHeap";
+ public static final String[] LEVELS = {"0", "1", "2", "3", "4"};
+
+ private static final String DIRECT_BUFFER = "DirectBuffer";
+
+ @Override
+ public void bindTo(AbstractMetricService metricService) {
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ TOTAL,
+ Tag.TYPE.toString(),
+ ON_HEAP,
+ Tag.LEVEL.toString(),
+ LEVELS[0])
+ .set(Runtime.getRuntime().maxMemory());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ TOTAL,
+ Tag.TYPE.toString(),
+ OFF_HEAP,
+ Tag.LEVEL.toString(),
+ LEVELS[0])
+ .set(config.getMaxOffHeapMemoryBytes());
+ StorageEngineMemoryMetrics.getInstance().bindTo(metricService);
+ QueryEngineMemoryMetrics.getInstance().bindTo(metricService);
+ SchemaEngineMemoryMetrics.getInstance().bindTo(metricService);
+ ConsensusMemoryMetrics.getInstance().bindTo(metricService);
+ StreamEngineMemoryMetrics.getInstance().bindTo(metricService);
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ DIRECT_BUFFER,
+ Tag.TYPE.toString(),
+ OFF_HEAP,
+ Tag.LEVEL.toString(),
+ LEVELS[1])
+ .set(systemInfo.getTotalDirectBufferMemorySizeLimit());
+ }
+
+ @Override
+ public void unbindFrom(AbstractMetricService metricService) {
+ Arrays.asList(ON_HEAP, OFF_HEAP)
+ .forEach(
+ type -> {
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ TOTAL,
+ Tag.TYPE.toString(),
+ type,
+ Tag.LEVEL.toString(),
+ LEVELS[0]);
+ });
+ StorageEngineMemoryMetrics.getInstance().unbindFrom(metricService);
+ QueryEngineMemoryMetrics.getInstance().unbindFrom(metricService);
+ SchemaEngineMemoryMetrics.getInstance().unbindFrom(metricService);
+ ConsensusMemoryMetrics.getInstance().unbindFrom(metricService);
+ StreamEngineMemoryMetrics.getInstance().unbindFrom(metricService);
+ Collections.singletonList(DIRECT_BUFFER)
+ .forEach(
+ name ->
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ name,
+ Tag.TYPE.toString(),
+ OFF_HEAP,
+ Tag.LEVEL.toString(),
+ LEVELS[1]));
+ }
+
+ public static GlobalMemoryMetrics getInstance() {
+ return GlobalMemoryMetricsHolder.INSTANCE;
+ }
+
+ private static class GlobalMemoryMetricsHolder {
+
+ private static final GlobalMemoryMetrics INSTANCE = new
GlobalMemoryMetrics();
+
+ private GlobalMemoryMetricsHolder() {}
+ }
+}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/QueryEngineMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/QueryEngineMemoryMetrics.java
new file mode 100644
index 00000000000..67538646525
--- /dev/null
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/QueryEngineMemoryMetrics.java
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.service.metrics.memory;
+
+import org.apache.iotdb.commons.service.metric.enums.Metric;
+import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.metrics.AbstractMetricService;
+import org.apache.iotdb.metrics.metricsets.IMetricSet;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.MetricType;
+
+import java.util.Arrays;
+
+public class QueryEngineMemoryMetrics implements IMetricSet {
+ private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
+ private static final String QUERY_ENGINE = "QueryEngine";
+ private static final String QUERY_ENGINE_BLOOM_FILTER_CACHE =
"QueryEngine-BloomFilterCache";
+ private static final String QUERY_ENGINE_CHUNK_CACHE =
"QueryEngine-ChunkCache";
+ private static final String QUERY_ENGINE_TIME_SERIES_METADATA_CACHE =
+ "QueryEngine-TimeSeriesMetadataCache";
+ private static final String QUERY_ENGINE_OPERATORS = "QueryEngine-Operators";
+ private static final String QUERY_ENGINE_DATA_EXCHANGE =
"QueryEngine-DataExchange";
+ private static final String QUERY_ENGINE_TIME_INDEX =
"QueryEngine-TimeIndex";
+ private static final String QUERY_ENGINE_COORDINATOR =
"QueryEngine-Coordinator";
+
+ @Override
+ public void bindTo(AbstractMetricService metricService) {
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1])
+ .set(config.getAllocateMemoryForRead());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_BLOOM_FILTER_CACHE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForBloomFilterCache());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_CHUNK_CACHE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForChunkCache());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_TIME_SERIES_METADATA_CACHE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForTimeSeriesMetaDataCache());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_OPERATORS,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForOperators());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_DATA_EXCHANGE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForDataExchange());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_TIME_INDEX,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForTimeIndex());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ QUERY_ENGINE_COORDINATOR,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForCoordinator());
+ }
+
+ @Override
+ public void unbindFrom(AbstractMetricService metricService) {
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ QUERY_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1]);
+ Arrays.asList(
+ QUERY_ENGINE_BLOOM_FILTER_CACHE,
+ QUERY_ENGINE_CHUNK_CACHE,
+ QUERY_ENGINE_TIME_SERIES_METADATA_CACHE,
+ QUERY_ENGINE_OPERATORS,
+ QUERY_ENGINE_DATA_EXCHANGE,
+ QUERY_ENGINE_TIME_INDEX,
+ QUERY_ENGINE_COORDINATOR)
+ .forEach(
+ name ->
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ name,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2]));
+ }
+
+ public static QueryEngineMemoryMetrics getInstance() {
+ return QueryEngineMemoryMetricsHolder.INSTANCE;
+ }
+
+ private static class QueryEngineMemoryMetricsHolder {
+
+ private static final QueryEngineMemoryMetrics INSTANCE = new
QueryEngineMemoryMetrics();
+
+ private QueryEngineMemoryMetricsHolder() {}
+ }
+}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/SchemaEngineMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/SchemaEngineMemoryMetrics.java
new file mode 100644
index 00000000000..5b075726363
--- /dev/null
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/SchemaEngineMemoryMetrics.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.service.metrics.memory;
+
+import org.apache.iotdb.commons.service.metric.enums.Metric;
+import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.metrics.AbstractMetricService;
+import org.apache.iotdb.metrics.metricsets.IMetricSet;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.MetricType;
+
+import java.util.Arrays;
+
+public class SchemaEngineMemoryMetrics implements IMetricSet {
+ private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
+ private static final String SCHEMA_ENGINE = "SchemaEngine";
+ private static final String SCHEMA_ENGINE_SCHEMA_REGION =
"SchemaEngine-SchemaRegion";
+ private static final String SCHEMA_ENGINE_SCHEMA_CACHE =
"SchemaEngine-SchemaCache";
+ private static final String SCHEMA_ENGINE_PARTITION_CACHE =
"SchemaEngine-PartitionCache";
+
+ @Override
+ public void bindTo(AbstractMetricService metricService) {
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ SCHEMA_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1])
+ .set(config.getAllocateMemoryForSchema());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ SCHEMA_ENGINE_SCHEMA_REGION,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForSchemaRegion());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ SCHEMA_ENGINE_SCHEMA_CACHE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForSchemaCache());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ SCHEMA_ENGINE_PARTITION_CACHE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(config.getAllocateMemoryForPartitionCache());
+ }
+
+ @Override
+ public void unbindFrom(AbstractMetricService metricService) {
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ SCHEMA_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1]);
+ Arrays.asList(
+ SCHEMA_ENGINE_SCHEMA_REGION, SCHEMA_ENGINE_SCHEMA_CACHE,
SCHEMA_ENGINE_PARTITION_CACHE)
+ .forEach(
+ name ->
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ name,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2]));
+ }
+
+ public static SchemaEngineMemoryMetrics getInstance() {
+ return SchemaEngineMemoryMetricsHolder.INSTANCE;
+ }
+
+ private static class SchemaEngineMemoryMetricsHolder {
+
+ private static final SchemaEngineMemoryMetrics INSTANCE = new
SchemaEngineMemoryMetrics();
+
+ private SchemaEngineMemoryMetricsHolder() {}
+ }
+}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/StorageEngineMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/StorageEngineMemoryMetrics.java
new file mode 100644
index 00000000000..2fd726272d5
--- /dev/null
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/StorageEngineMemoryMetrics.java
@@ -0,0 +1,210 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.service.metrics.memory;
+
+import org.apache.iotdb.commons.service.metric.enums.Metric;
+import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.metrics.AbstractMetricService;
+import org.apache.iotdb.metrics.metricsets.IMetricSet;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.MetricType;
+
+import java.util.Arrays;
+
+public class StorageEngineMemoryMetrics implements IMetricSet {
+ private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
+ private static final String STORAGE_ENGINE = "StorageEngine";
+ private static final String STORAGE_ENGINE_WRITE = "StorageEngine-Write";
+ private static final String STORAGE_ENGINE_WRITE_MEMTABLE =
"StorageEngine-Write-Memtable";
+ private static final String STORAGE_ENGINE_WRITE_MEMTABLE_CACHE =
+ "StorageEngine-Write-Memtable-DevicePathCache";
+ private static final String STORAGE_ENGINE_WRITE_MEMTABLE_BUFFERED_ARRAYS =
+ "StorageEngine-Write-Memtable-BufferedArrays";
+ private static final String STORAGE_ENGINE_WRITE_TIME_PARTITION_INFO =
+ "StorageEngine-Write-TimePartitionInfo";
+ private static final String STORAGE_ENGINE_COMPACTION =
"StorageEngine-Compaction";
+
+ @Override
+ public void bindTo(AbstractMetricService metricService) {
+ long storageEngineSize = config.getAllocateMemoryForStorageEngine();
+ // Total memory size of storage engine
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1])
+ .set(storageEngineSize);
+ // The memory of storage engine divided into Write and Compaction
+ long writeSize =
+ (long)
+ (config.getAllocateMemoryForStorageEngine() * (1 -
config.getCompactionProportion()));
+ long compactionSize = storageEngineSize - writeSize;
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE_WRITE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(writeSize);
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE_COMPACTION,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2])
+ .set(compactionSize);
+ // The write memory of storage engine divided into MemTable and
TimePartitionInfo
+ long memtableSize =
+ (long)
+ (config.getAllocateMemoryForStorageEngine() *
config.getWriteProportionForMemtable());
+ long timePartitionInfoSize =
config.getAllocateMemoryForTimePartitionInfo();
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE_WRITE_MEMTABLE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[3])
+ .set(memtableSize);
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE_WRITE_TIME_PARTITION_INFO,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[3])
+ .set(timePartitionInfoSize);
+ // The memtable memory of storage engine contain DataNodeDevicePathCache
(NOTICE: This part of
+ // memory is not divided)
+ long dataNodeDevicePathCacheSize =
+ (long)
+ (config.getAllocateMemoryForStorageEngine()
+ * config.getWriteProportionForMemtable()
+ * config.getDevicePathCacheProportion());
+ long bufferedArraySize =
+ (long)
+ (config.getAllocateMemoryForStorageEngine()
+ * config.getBufferedArraysMemoryProportion());
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE_WRITE_MEMTABLE_CACHE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[4])
+ .set(dataNodeDevicePathCacheSize);
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STORAGE_ENGINE_WRITE_MEMTABLE_BUFFERED_ARRAYS,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[4])
+ .set(bufferedArraySize);
+ }
+
+ @Override
+ public void unbindFrom(AbstractMetricService metricService) {
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ STORAGE_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1]);
+ Arrays.asList(STORAGE_ENGINE_WRITE, STORAGE_ENGINE_COMPACTION)
+ .forEach(
+ name ->
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ name,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[2]));
+ Arrays.asList(STORAGE_ENGINE_WRITE_MEMTABLE,
STORAGE_ENGINE_WRITE_TIME_PARTITION_INFO)
+ .forEach(
+ name ->
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ name,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[3]));
+ Arrays.asList(
+ STORAGE_ENGINE_WRITE_MEMTABLE_CACHE,
STORAGE_ENGINE_WRITE_MEMTABLE_BUFFERED_ARRAYS)
+ .forEach(
+ name ->
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ name,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[4]));
+ }
+
+ public static StorageEngineMemoryMetrics getInstance() {
+ return StorageEngineMemoryMetricsHolder.INSTANCE;
+ }
+
+ private static class StorageEngineMemoryMetricsHolder {
+
+ private static final StorageEngineMemoryMetrics INSTANCE = new
StorageEngineMemoryMetrics();
+
+ private StorageEngineMemoryMetricsHolder() {}
+ }
+}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/StreamEngineMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/StreamEngineMemoryMetrics.java
new file mode 100644
index 00000000000..2fd8da49cf4
--- /dev/null
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/StreamEngineMemoryMetrics.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.db.service.metrics.memory;
+
+import org.apache.iotdb.commons.service.metric.enums.Metric;
+import org.apache.iotdb.commons.service.metric.enums.Tag;
+import org.apache.iotdb.db.conf.IoTDBConfig;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.metrics.AbstractMetricService;
+import org.apache.iotdb.metrics.metricsets.IMetricSet;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.MetricType;
+
+public class StreamEngineMemoryMetrics implements IMetricSet {
+ private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
+ private static final String STREAM_ENGINE = "StreamEngine";
+
+ @Override
+ public void bindTo(AbstractMetricService metricService) {
+ metricService
+ .getOrCreateGauge(
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ MetricLevel.NORMAL,
+ Tag.NAME.toString(),
+ STREAM_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1])
+ .set(config.getAllocateMemoryForPipe());
+ }
+
+ @Override
+ public void unbindFrom(AbstractMetricService metricService) {
+ metricService.remove(
+ MetricType.GAUGE,
+ Metric.MEMORY_THRESHOLD_SIZE.toString(),
+ Tag.NAME.toString(),
+ STREAM_ENGINE,
+ Tag.TYPE.toString(),
+ GlobalMemoryMetrics.ON_HEAP,
+ Tag.LEVEL.toString(),
+ GlobalMemoryMetrics.LEVELS[1]);
+ }
+
+ public static StreamEngineMemoryMetrics getInstance() {
+ return StreamEngineMemoryMetricsHolder.INSTANCE;
+ }
+
+ private static class StreamEngineMemoryMetricsHolder {
+
+ private static final StreamEngineMemoryMetrics INSTANCE = new
StreamEngineMemoryMetrics();
+
+ private StreamEngineMemoryMetricsHolder() {}
+ }
+}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/ThresholdMemoryMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/ThresholdMemoryMetrics.java
deleted file mode 100644
index bd31e32f4b9..00000000000
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/memory/ThresholdMemoryMetrics.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.iotdb.db.service.metrics.memory;
-
-import org.apache.iotdb.commons.service.metric.enums.Metric;
-import org.apache.iotdb.commons.service.metric.enums.Tag;
-import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.storageengine.rescon.memory.SystemInfo;
-import org.apache.iotdb.metrics.AbstractMetricService;
-import org.apache.iotdb.metrics.metricsets.IMetricSet;
-import org.apache.iotdb.metrics.utils.MetricLevel;
-import org.apache.iotdb.metrics.utils.MetricType;
-
-public class ThresholdMemoryMetrics implements IMetricSet {
- private static final IoTDBConfig config =
IoTDBDescriptor.getInstance().getConfig();
- private static final SystemInfo systemInfo = SystemInfo.getInstance();
-
- @Override
- public void bindTo(AbstractMetricService metricService) {
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "Total",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "0")
- .set(Runtime.getRuntime().maxMemory());
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "StorageEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1")
- .set(config.getAllocateMemoryForStorageEngine());
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "QueryEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1")
- .set(config.getAllocateMemoryForRead());
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "SchemaEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1")
- .set(config.getAllocateMemoryForSchema());
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "Consensus",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1")
- .set(config.getAllocateMemoryForConsensus());
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "StreamEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1")
- .set(config.getAllocateMemoryForPipe());
- metricService
- .getOrCreateGauge(
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- MetricLevel.NORMAL,
- Tag.NAME.toString(),
- "DirectBuffer",
- Tag.TYPE.toString(),
- "OffHeap",
- Tag.LEVEL.toString(),
- "1")
- .set(systemInfo.getTotalDirectBufferMemorySizeLimit());
- }
-
- @Override
- public void unbindFrom(AbstractMetricService metricService) {
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "Total",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "0");
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "StorageEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1");
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "QueryEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1");
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "SchemaEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1");
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "Consensus",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1");
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "StreamEngine",
- Tag.TYPE.toString(),
- "OnHeap",
- Tag.LEVEL.toString(),
- "1");
- metricService.remove(
- MetricType.GAUGE,
- Metric.THRESHOLD_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
- "DirectBuffer",
- Tag.TYPE.toString(),
- "OffHeap",
- Tag.LEVEL.toString(),
- "1");
- }
-
- public static ThresholdMemoryMetrics getInstance() {
- return ThresholdMemoryMetrics.ThresholdMemoryMetricsHolder.INSTANCE;
- }
-
- private static class ThresholdMemoryMetricsHolder {
-
- private static final ThresholdMemoryMetrics INSTANCE = new
ThresholdMemoryMetrics();
-
- private ThresholdMemoryMetricsHolder() {}
- }
-}
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
index 064a47f2b89..906c9f05968 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
@@ -188,7 +188,8 @@ public enum Metric {
MEMTABLE_POINT_COUNT("memtable_point_count"),
BINARY_ALLOCATOR("binary_allocator"),
// memory related
- THRESHOLD_MEMORY_SIZE("threshold_memory_size"),
+ MEMORY_THRESHOLD_SIZE("memory_threshold_size"),
+ MEMORY_ACTUAL_SIZE("memory_actual_size"),
;
final String value;