You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by er...@apache.org on 2022/01/26 02:14:31 UTC

[iotdb] branch master updated: [IOTDB-2490] Fix metric bugs with wrong stats (#4975)

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

ericpai 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 dfc571c  [IOTDB-2490] Fix metric bugs with wrong stats (#4975)
dfc571c is described below

commit dfc571c9666f6783fd58ed12d80490d589ac5167
Author: xinzhongtianxia <45...@qq.com>
AuthorDate: Wed Jan 26 10:13:56 2022 +0800

    [IOTDB-2490] Fix metric bugs with wrong stats (#4975)
---
 .../db/engine/storagegroup/TsFileProcessorInfo.java  | 20 ++++++++++++++++----
 .../storagegroup/VirtualStorageGroupProcessor.java   |  6 +++---
 .../main/java/org/apache/iotdb/db/service/IoTDB.java |  2 +-
 3 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorInfo.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorInfo.java
index 22b7e17..c98077a 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorInfo.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorInfo.java
@@ -44,7 +44,11 @@ public class TsFileProcessorInfo {
     if (MetricConfigDescriptor.getInstance().getMetricConfig().getEnableMetric()) {
       MetricsService.getInstance()
           .getMetricManager()
-          .getOrCreateGauge(Metric.MEM.toString(), Tag.NAME.toString(), "chunkMetaData")
+          .getOrCreateGauge(
+              Metric.MEM.toString(),
+              Tag.NAME.toString(),
+              "chunkMetaData_"
+                  + storageGroupInfo.getVirtualStorageGroupProcessor().getLogicalStorageGroupName())
           .incr(cost);
     }
   }
@@ -56,7 +60,11 @@ public class TsFileProcessorInfo {
     if (MetricConfigDescriptor.getInstance().getMetricConfig().getEnableMetric()) {
       MetricsService.getInstance()
           .getMetricManager()
-          .getOrCreateGauge(Metric.MEM.toString(), Tag.NAME.toString(), "chunkMetaData")
+          .getOrCreateGauge(
+              Metric.MEM.toString(),
+              Tag.NAME.toString(),
+              "chunkMetaData_"
+                  + storageGroupInfo.getVirtualStorageGroupProcessor().getLogicalStorageGroupName())
           .decr(cost);
     }
   }
@@ -64,12 +72,16 @@ public class TsFileProcessorInfo {
   /** called when closing TSP */
   public void clear() {
     storageGroupInfo.releaseStorageGroupMemCost(memCost);
-    memCost = 0L;
     if (MetricConfigDescriptor.getInstance().getMetricConfig().getEnableMetric()) {
       MetricsService.getInstance()
           .getMetricManager()
-          .getOrCreateGauge(Metric.MEM.toString(), Tag.NAME.toString(), "chunkMetaData")
+          .getOrCreateGauge(
+              Metric.MEM.toString(),
+              Tag.NAME.toString(),
+              "chunkMetaData_"
+                  + storageGroupInfo.getVirtualStorageGroupProcessor().getLogicalStorageGroupName())
           .decr(memCost);
     }
+    memCost = 0L;
   }
 }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java
index a021a2f..743e911 100755
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/VirtualStorageGroupProcessor.java
@@ -417,10 +417,10 @@ public class VirtualStorageGroupProcessor {
           .getMetricManager()
           .getOrCreateAutoGauge(
               Metric.MEM.toString(),
-              storageGroupInfo.getMemCost(),
-              Long::longValue,
+              storageGroupInfo,
+              StorageGroupInfo::getMemCost,
               Tag.NAME.toString(),
-              "storageGroup");
+              "storageGroup_" + getLogicalStorageGroupName());
     }
 
     // start trim task at last
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index 358b5ee..7720f6f 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -120,6 +120,7 @@ public class IoTDB implements IoTDBMBean {
 
     Runtime.getRuntime().addShutdownHook(new IoTDBShutdownHook());
     setUncaughtExceptionHandler();
+    registerManager.register(MetricsService.getInstance());
     logger.info("recover the schema...");
     initMManager();
     initServiceProvider();
@@ -133,7 +134,6 @@ public class IoTDB implements IoTDBMBean {
     registerManager.register(TemporaryQueryDataFileService.getInstance());
     registerManager.register(UDFClassLoaderManager.getInstance());
     registerManager.register(UDFRegistrationService.getInstance());
-    registerManager.register(MetricsService.getInstance());
 
     // in cluster mode, RPC service is not enabled.
     if (IoTDBDescriptor.getInstance().getConfig().isEnableRpcService()) {