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

yihua pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git


The following commit(s) were added to refs/heads/master by this push:
     new e3bb9f02ac47 feat(metrics): Publish log block compaction metrics 
(#17518)
e3bb9f02ac47 is described below

commit e3bb9f02ac476ad77a6b1e5b37c2aa4800ace961
Author: Surya Prasanna <[email protected]>
AuthorDate: Mon Dec 8 21:53:02 2025 -0800

    feat(metrics): Publish log block compaction metrics (#17518)
---
 .../src/main/java/org/apache/hudi/metrics/HoodieMetrics.java   |  6 ++++++
 .../org/apache/hudi/common/model/HoodieCommitMetadata.java     | 10 ++++++++++
 2 files changed, 16 insertions(+)

diff --git 
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/HoodieMetrics.java
 
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/HoodieMetrics.java
index cba0e11ca213..1745a4626183 100644
--- 
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/HoodieMetrics.java
+++ 
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/HoodieMetrics.java
@@ -59,6 +59,8 @@ public class HoodieMetrics {
   public static final String TOTAL_COMPACTED_RECORDS_UPDATED_STR = 
"totalCompactedRecordsUpdated";
   public static final String TOTAL_LOG_FILES_COMPACTED_STR = 
"totalLogFilesCompacted";
   public static final String TOTAL_LOG_FILES_SIZE_STR = "totalLogFilesSize";
+  public static final String TOTAL_LOG_BLOCKS_COMPACTED_STR = 
"totalLogBlocksCompacted";
+  public static final String TOTAL_LOG_RECORDS_COMPACTED_STR = 
"totalLogRecordsCompacted";
   public static final String TOTAL_RECORDS_DELETED = "totalRecordsDeleted";
   public static final String TOTAL_CORRUPTED_LOG_BLOCKS_STR = 
"totalCorruptedLogBlocks";
   public static final String TOTAL_ROLLBACK_LOG_BLOCKS_STR = 
"totalRollbackLogBlocks";
@@ -286,6 +288,7 @@ public class HoodieMetrics {
       long totalTimeTakenForInsert = metadata.getTotalCreateTime();
       long totalTimeTakenForUpsert = metadata.getTotalUpsertTime();
       long totalCompactedRecordsUpdated = 
metadata.getTotalCompactedRecordsUpdated();
+      long totalLogRecordsCompacted = metadata.getTotalLogRecordsCompacted();
       long totalLogFilesCompacted = metadata.getTotalLogFilesCompacted();
       long totalLogFilesSize = metadata.getTotalLogFilesSize();
       metrics.registerGauge(getMetricsName(actionType, 
TOTAL_PARTITIONS_WRITTEN_STR), totalPartitionsWritten);
@@ -300,13 +303,16 @@ public class HoodieMetrics {
       metrics.registerGauge(getMetricsName(actionType, TOTAL_UPSERT_TIME_STR), 
totalTimeTakenForUpsert);
       metrics.registerGauge(getMetricsName(actionType, 
TOTAL_COMPACTED_RECORDS_UPDATED_STR), totalCompactedRecordsUpdated);
       metrics.registerGauge(getMetricsName(actionType, 
TOTAL_LOG_FILES_COMPACTED_STR), totalLogFilesCompacted);
+      metrics.registerGauge(getMetricsName(actionType, 
TOTAL_LOG_RECORDS_COMPACTED_STR), totalLogRecordsCompacted);
       metrics.registerGauge(getMetricsName(actionType, 
TOTAL_LOG_FILES_SIZE_STR), totalLogFilesSize);
       metrics.registerGauge(getMetricsName(actionType, TOTAL_RECORDS_DELETED), 
totalRecordsDeleted);
       if (config.isCompactionLogBlockMetricsOn()) {
         long totalCorruptedLogBlocks = metadata.getTotalCorruptLogBlocks();
         long totalRollbackLogBlocks = metadata.getTotalRollbackLogBlocks();
+        long totalLogBlocksCompacted = metadata.getTotalLogBlocksCompacted();
         metrics.registerGauge(getMetricsName(actionType, 
TOTAL_CORRUPTED_LOG_BLOCKS_STR), totalCorruptedLogBlocks);
         metrics.registerGauge(getMetricsName(actionType, 
TOTAL_ROLLBACK_LOG_BLOCKS_STR), totalRollbackLogBlocks);
+        metrics.registerGauge(getMetricsName(actionType, 
TOTAL_LOG_BLOCKS_COMPACTED_STR), totalLogBlocksCompacted);
       }
     }
   }
diff --git 
a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
 
b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
index 5d8f7e271a7d..3392f7000636 100644
--- 
a/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
+++ 
b/hudi-common/src/main/java/org/apache/hudi/common/model/HoodieCommitMetadata.java
@@ -386,6 +386,16 @@ public class HoodieCommitMetadata implements Serializable {
     return totalLogFiles;
   }
 
+  public Long getTotalLogBlocksCompacted() {
+    Long totalLogBlocks = 0L;
+    for (Map.Entry<String, List<HoodieWriteStat>> entry : 
partitionToWriteStats.entrySet()) {
+      for (HoodieWriteStat writeStat : entry.getValue()) {
+        totalLogBlocks += writeStat.getTotalLogBlocks();
+      }
+    }
+    return totalLogBlocks;
+  }
+
   public Long getTotalCompactedRecordsUpdated() {
     Long totalUpdateRecords = 0L;
     for (Map.Entry<String, List<HoodieWriteStat>> entry : 
partitionToWriteStats.entrySet()) {

Reply via email to