You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ma...@apache.org on 2023/01/12 13:30:01 UTC

[iotdb] 02/02: update summary in metrics

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

marklau99 pushed a commit to branch IOTDB-5140
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit d34055fffb65246f280d61f8104767ee0cf8c2fb
Author: Liu Xuxin <li...@outlook.com>
AuthorDate: Thu Jan 12 21:29:48 2023 +0800

    update summary in metrics
---
 .../execute/task/CompactionTaskSummary.java        | 24 +++++++++++
 .../execute/task/CrossSpaceCompactionTask.java     |  4 ++
 .../execute/task/InnerSpaceCompactionTask.java     |  3 ++
 .../recorder/CompactionMetricsRecorder.java        | 46 ++++++++++++++++++++++
 4 files changed, 77 insertions(+)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java
index db8da24d98..56e5002e67 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CompactionTaskSummary.java
@@ -114,6 +114,30 @@ public class CompactionTaskSummary {
     this.processPointNum = processPointNum;
   }
 
+  public int getProcessChunkNum() {
+    return processChunkNum;
+  }
+
+  public int getDirectlyFlushChunkNum() {
+    return directlyFlushChunkNum;
+  }
+
+  public int getDeserializeChunkCount() {
+    return deserializeChunkCount;
+  }
+
+  public int getDeserializePageCount() {
+    return deserializePageCount;
+  }
+
+  public int getMergedChunkNum() {
+    return mergedChunkNum;
+  }
+
+  public long getProcessPointNum() {
+    return processPointNum;
+  }
+
   enum Status {
     NOT_STARTED,
     STARTED,
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
index 277ba96843..8ae67744ba 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/CrossSpaceCompactionTask.java
@@ -34,6 +34,7 @@ import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceList;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
 import org.apache.iotdb.db.rescon.SystemInfo;
+import org.apache.iotdb.db.service.metrics.recorder.CompactionMetricsRecorder;
 
 import org.apache.commons.io.FileUtils;
 import org.slf4j.Logger;
@@ -205,6 +206,9 @@ public class CrossSpaceCompactionTask extends AbstractCompactionTask {
             .deleteFile(sequenceFileSize, true, selectedSequenceFiles.size());
         TsFileMetricManager.getInstance()
             .deleteFile(unsequenceFileSize, false, selectedUnsequenceFiles.size());
+
+        CompactionMetricsRecorder.updateSummary(summary);
+
         long costTime = (System.currentTimeMillis() - startTime) / 1000;
 
         LOGGER.info(
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
index e5f606ffa6..12525a6610 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/execute/task/InnerSpaceCompactionTask.java
@@ -33,6 +33,7 @@ import org.apache.iotdb.db.engine.storagegroup.TsFileNameGenerator;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceList;
 import org.apache.iotdb.db.engine.storagegroup.TsFileResourceStatus;
+import org.apache.iotdb.db.service.metrics.recorder.CompactionMetricsRecorder;
 import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
 import org.apache.iotdb.tsfile.exception.write.TsFileNotCompleteException;
 
@@ -240,6 +241,8 @@ public class InnerSpaceCompactionTask extends AbstractCompactionTask {
       TsFileMetricManager.getInstance()
           .deleteFile(totalSizeOfDeletedFile, sequence, selectedTsFileResourceList.size());
 
+      CompactionMetricsRecorder.updateSummary(summary);
+
       double costTime = (System.currentTimeMillis() - startTime) / 1000.0d;
       LOGGER.info(
           "{}-{} [Compaction] InnerSpaceCompaction task finishes successfully, target file is {},"
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
index 295d3b6c72..9a1d5e121d 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/recorder/CompactionMetricsRecorder.java
@@ -22,6 +22,7 @@ import org.apache.iotdb.commons.service.metric.MetricService;
 import org.apache.iotdb.commons.service.metric.enums.Metric;
 import org.apache.iotdb.commons.service.metric.enums.Tag;
 import org.apache.iotdb.db.engine.compaction.execute.task.AbstractCompactionTask;
+import org.apache.iotdb.db.engine.compaction.execute.task.CompactionTaskSummary;
 import org.apache.iotdb.db.engine.compaction.execute.task.CrossSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.execute.task.InnerSpaceCompactionTask;
 import org.apache.iotdb.db.engine.compaction.schedule.constant.CompactionTaskStatus;
@@ -68,6 +69,51 @@ public class CompactionMetricsRecorder {
             "compaction");
   }
 
+  public static void updateSummary(CompactionTaskSummary summary) {
+    MetricService.getInstance()
+        .count(
+            summary.getProcessPointNum(),
+            "Compacted_Point_Num",
+            MetricLevel.IMPORTANT,
+            Tag.NAME.toString(),
+            "compaction");
+    MetricService.getInstance()
+        .count(
+            summary.getProcessChunkNum(),
+            "Compacted_Chunk_Num",
+            MetricLevel.IMPORTANT,
+            Tag.NAME.toString(),
+            "compaction");
+    MetricService.getInstance()
+        .count(
+            summary.getDirectlyFlushChunkNum(),
+            "Directly_Flush_Chunk_Num",
+            MetricLevel.NORMAL,
+            Tag.NAME.toString(),
+            "compaction");
+    MetricService.getInstance()
+        .count(
+            summary.getDeserializeChunkCount(),
+            "Deserialized_Chunk_Num",
+            MetricLevel.NORMAL,
+            Tag.NAME.toString(),
+            "compaction");
+    MetricService.getInstance()
+        .count(
+            summary.getMergedChunkNum(),
+            "Merged_Chunk_Num",
+            MetricLevel.NORMAL,
+            Tag.NAME.toString(),
+            "compaction");
+    MetricService.getInstance()
+        .count(
+            summary.getDeserializePageCount(),
+            "Deserialized_Page_Num",
+            MetricLevel.NORMAL,
+            Tag.NAME.toString(),
+            "compaction");
+  }
+
   public static void recordTaskInfo(
       AbstractCompactionTask task, CompactionTaskStatus status, int size) {
     String taskType = "unknown";