This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new 5ea0fe53725 Add WAL entry number for one TsFile metric (#15818)
(#16011)
5ea0fe53725 is described below
commit 5ea0fe537255bc079b5cc6e5c0b09cfbdb8f5c50
Author: Haonan <[email protected]>
AuthorDate: Mon Jul 28 10:03:05 2025 +0800
Add WAL entry number for one TsFile metric (#15818) (#16011)
---
.../org/apache/iotdb/db/service/metrics/WritingMetrics.java | 13 +++++++++++++
.../storageengine/dataregion/memtable/TsFileProcessor.java | 7 +++++++
2 files changed, 20 insertions(+)
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
index d3cda241a9f..69cb7bb41dd 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/WritingMetrics.java
@@ -185,11 +185,13 @@ public class WritingMetrics implements IMetricSet {
public static final String READ_WAL_BUFFER_COST_NS = "read_wal_buffer_cost";
public static final String WRITE_WAL_BUFFER_COST_NS =
"write_wal_buffer_cost";
public static final String ENTRIES_COUNT = "entries_count";
+ public static final String WAL_ENTRY_NUM_FOR_ONE_TSFILE =
"wal_entry_num_for_one_tsfile";
public static final String WAL_QUEUE_CURRENT_MEM_COST =
"wal_queue_current_mem_cost";
public static final String WAL_QUEUE_MAX_MEM_COST = "wal_queue_max_mem_cost";
private Histogram usedRatioHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
private Histogram entriesCountHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
+ private Histogram walEntryNumForOneTsFileHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
private Histogram serializedWALBufferSizeHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
private Histogram wroteWALBufferSizeHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
private Histogram walCompressCostHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
@@ -216,6 +218,12 @@ public class WritingMetrics implements IMetricSet {
MetricLevel.IMPORTANT,
Tag.NAME.toString(),
ENTRIES_COUNT);
+ walEntryNumForOneTsFileHistogram =
+ metricService.getOrCreateHistogram(
+ Metric.WAL_BUFFER.toString(),
+ MetricLevel.IMPORTANT,
+ Tag.NAME.toString(),
+ WAL_ENTRY_NUM_FOR_ONE_TSFILE);
serializedWALBufferSizeHistogram =
metricService.getOrCreateHistogram(
@@ -280,6 +288,7 @@ public class WritingMetrics implements IMetricSet {
MetricType.AUTO_GAUGE, Metric.WAL_NODE_NUM.toString(),
Tag.NAME.toString(), WAL_NODES_NUM);
usedRatioHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
entriesCountHistogram = DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
+ walEntryNumForOneTsFileHistogram =
DoNothingMetricManager.DO_NOTHING_HISTOGRAM;
Arrays.asList(
USED_RATIO,
ENTRIES_COUNT,
@@ -920,6 +929,10 @@ public class WritingMetrics implements IMetricSet {
entriesCountHistogram.update(count);
}
+ public void recordWALEntryNumForOneTsFile(long count) {
+ walEntryNumForOneTsFileHistogram.update(count);
+ }
+
public void recordWALQueueMaxMemorySize(long size) {
walQueueMaxMemSizeGauge.set(size);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
index 451986b2f52..702b0fdc8ad 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/memtable/TsFileProcessor.java
@@ -207,6 +207,8 @@ public class TsFileProcessor {
public static final int MEMTABLE_NOT_EXIST = -1;
+ private int walEntryNum = 0;
+
@SuppressWarnings("squid:S107")
public TsFileProcessor(
String storageGroupName,
@@ -315,6 +317,7 @@ public class TsFileProcessor {
// recordScheduleWalCost
costsForMetrics[2] += System.nanoTime() - startTime;
}
+ walEntryNum++;
startTime = System.nanoTime();
@@ -413,6 +416,7 @@ public class TsFileProcessor {
// recordScheduleWalCost
costsForMetrics[2] += System.nanoTime() - startTime;
}
+ walEntryNum++;
startTime = System.nanoTime();
@@ -528,6 +532,7 @@ public class TsFileProcessor {
} finally {
PERFORMANCE_OVERVIEW_METRICS.recordScheduleWalCost(System.nanoTime() -
startTime);
}
+ walEntryNum++;
startTime = System.nanoTime();
@@ -1059,6 +1064,7 @@ public class TsFileProcessor {
}
public WALFlushListener logDeleteDataNodeInWAL(DeleteDataNode
deleteDataNode) {
+ walEntryNum++;
return walNode.log(workMemTable.getMemTableId(), deleteDataNode);
}
@@ -1277,6 +1283,7 @@ public class TsFileProcessor {
.recordMemTableLiveDuration(System.currentTimeMillis() -
getWorkMemTableCreatedTime());
WritingMetrics.getInstance()
.recordActiveMemTableCount(dataRegionInfo.getDataRegion().getDataRegionId(),
-1);
+ WritingMetrics.getInstance().recordWALEntryNumForOneTsFile(walEntryNum);
workMemTable = null;
return FlushManager.getInstance().registerTsFileProcessor(this);
}