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()) {