This is an automated email from the ASF dual-hosted git repository.
morrysnow pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-3.1 by this push:
new 7437b610e93 branch-3.1: [fix](fe) fix TabletStatMgr
MetricRepo.GAUGE_MAX_TABLE_SIZE_BYTES npt #55182 (#55321)
7437b610e93 is described below
commit 7437b610e93c3935f606a55cd3692f399f91d574
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Aug 27 15:28:19 2025 +0800
branch-3.1: [fix](fe) fix TabletStatMgr
MetricRepo.GAUGE_MAX_TABLE_SIZE_BYTES npt #55182 (#55321)
Cherry-picked from #55182
Co-authored-by: Lei Zhang <[email protected]>
---
.../apache/doris/catalog/CloudTabletStatMgr.java | 63 ++++++++++++---------
.../org/apache/doris/catalog/TabletStatMgr.java | 64 +++++++++++++---------
2 files changed, 75 insertions(+), 52 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/CloudTabletStatMgr.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/CloudTabletStatMgr.java
index 725e74c5470..feae3f17e63 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/CloudTabletStatMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/CloudTabletStatMgr.java
@@ -286,34 +286,45 @@ public class CloudTabletStatMgr extends MasterDaemon {
}
this.cloudTableStatsMap = newCloudTableStatsMap;
- MetricRepo.GAUGE_MAX_TABLE_SIZE_BYTES.setValue(maxTableSize.second);
-
MetricRepo.GAUGE_MAX_PARTITION_SIZE_BYTES.setValue(maxPartitionSize.second);
- MetricRepo.GAUGE_MAX_TABLET_SIZE_BYTES.setValue(maxTabletSize.second);
- long minTableSizeTmp = minTableSize.second == Long.MAX_VALUE ? 0 :
minTableSize.second;
- MetricRepo.GAUGE_MIN_TABLE_SIZE_BYTES.setValue(minTableSizeTmp);
- long minPartitionSizeTmp = minPartitionSize.second == Long.MAX_VALUE ?
0 : minPartitionSize.second;
-
MetricRepo.GAUGE_MIN_PARTITION_SIZE_BYTES.setValue(minPartitionSizeTmp);
- long minTabletSizeTmp = minTabletSize.second == Long.MAX_VALUE ? 0 :
minTabletSize.second;
- MetricRepo.GAUGE_MIN_TABLET_SIZE_BYTES.setValue(minTabletSizeTmp);
- long avgTableSize = totalTableSize / Math.max(1, tableCount); // avoid
ArithmeticException: / by zero
- MetricRepo.GAUGE_AVG_TABLE_SIZE_BYTES.setValue(avgTableSize);
- long avgPartitionSize = totalTableSize / Math.max(1, partitionCount);
// avoid ArithmeticException: / by zero
- MetricRepo.GAUGE_AVG_PARTITION_SIZE_BYTES.setValue(avgPartitionSize);
- long avgTabletSize = totalTableSize / Math.max(1, tabletCount); //
avoid ArithmeticException: / by zero
- MetricRepo.GAUGE_AVG_TABLET_SIZE_BYTES.setValue(avgTabletSize);
+ if (MetricRepo.isInit) {
+
MetricRepo.GAUGE_MAX_TABLE_SIZE_BYTES.setValue(maxTableSize.second);
+
MetricRepo.GAUGE_MAX_PARTITION_SIZE_BYTES.setValue(maxPartitionSize.second);
+
MetricRepo.GAUGE_MAX_TABLET_SIZE_BYTES.setValue(maxTabletSize.second);
+ long minTableSizeTmp = minTableSize.second == Long.MAX_VALUE ? 0 :
minTableSize.second;
+ MetricRepo.GAUGE_MIN_TABLE_SIZE_BYTES.setValue(minTableSizeTmp);
+ long minPartitionSizeTmp = minPartitionSize.second ==
Long.MAX_VALUE ? 0 : minPartitionSize.second;
+
MetricRepo.GAUGE_MIN_PARTITION_SIZE_BYTES.setValue(minPartitionSizeTmp);
+ long minTabletSizeTmp = minTabletSize.second == Long.MAX_VALUE ? 0
: minTabletSize.second;
+ MetricRepo.GAUGE_MIN_TABLET_SIZE_BYTES.setValue(minTabletSizeTmp);
+ // avoid ArithmeticException: / by zero
+ long avgTableSize = totalTableSize / Math.max(1, tableCount);
+ MetricRepo.GAUGE_AVG_TABLE_SIZE_BYTES.setValue(avgTableSize);
+ // avoid ArithmeticException: / by zero
+ long avgPartitionSize = totalTableSize / Math.max(1,
partitionCount);
+
MetricRepo.GAUGE_AVG_PARTITION_SIZE_BYTES.setValue(avgPartitionSize);
+ // avoid ArithmeticException: / by zero
+ long avgTabletSize = totalTableSize / Math.max(1, tabletCount);
+ MetricRepo.GAUGE_AVG_TABLET_SIZE_BYTES.setValue(avgTabletSize);
+
+ LOG.info("OlapTable num=" + tableCount
+ + ", partition num=" + partitionCount + ", tablet num=" +
tabletCount
+ + ", max tablet byte size=" + maxTabletSize.second
+ + "(tablet_id=" + maxTabletSize.first + ")"
+ + ", min tablet byte size=" + minTabletSizeTmp
+ + "(tablet_id=" + minTabletSize.first + ")"
+ + ", avg tablet byte size=" + avgTabletSize
+ + ", max partition byte size=" + maxPartitionSize.second
+ + "(partition_id=" + maxPartitionSize.first + ")"
+ + ", min partition byte size=" + minPartitionSizeTmp
+ + "(partition_id=" + minPartitionSize.first + ")"
+ + ", avg partition byte size=" + avgPartitionSize
+ + ", max table byte size=" + maxTableSize.second +
"(table_id=" + maxTableSize.first + ")"
+ + ", min table byte size=" + minTableSizeTmp +
"(table_id=" + minTableSize.first + ")"
+ + ", avg table byte size=" + avgTableSize);
+ }
+
LOG.info("finished to update index row num of all databases. cost: {}
ms",
(System.currentTimeMillis() - start));
- LOG.info("Olap table num=" + tableCount + ", partition num=" +
partitionCount + ", tablet num=" + tabletCount
- + ", max tablet byte size=" + maxTabletSize.second +
"(tablet_id=" + maxTableSize.first + ")"
- + ", min tablet byte size=" + minTabletSizeTmp + "(tablet_id="
+ minTabletSize.first + ")"
- + ", avg tablet byte size=" + avgTabletSize
- + ", max partition byte size=" + maxPartitionSize.second +
"(partition_id=" + maxPartitionSize.first
- + ")"
- + ", min partition byte size=" + minPartitionSizeTmp +
"(partition_id=" + minPartitionSize.first + ")"
- + ", avg partition byte size=" + avgPartitionSize
- + ", max table byte size=" + maxTableSize.second +
"(table_id=" + maxTableSize.first + ")"
- + ", min table byte size=" + minTableSizeTmp + "(table_id=" +
minTableSize.first + ")"
- + ", avg table byte size=" + avgTableSize);
}
private void updateTabletStat(GetTabletStatsResponse response) {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
index b167578eaec..8cc3aa9e122 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TabletStatMgr.java
@@ -276,34 +276,46 @@ public class TabletStatMgr extends MasterDaemon {
totalTableSize += tableDataSize;
}
}
- MetricRepo.GAUGE_MAX_TABLE_SIZE_BYTES.setValue(maxTableSize.second);
-
MetricRepo.GAUGE_MAX_PARTITION_SIZE_BYTES.setValue(maxPartitionSize.second);
- MetricRepo.GAUGE_MAX_TABLET_SIZE_BYTES.setValue(maxTabletSize.second);
- long minTableSizeTmp = minTableSize.second == Long.MAX_VALUE ? 0 :
minTableSize.second;
- MetricRepo.GAUGE_MIN_TABLE_SIZE_BYTES.setValue(minTableSizeTmp);
- long minPartitionSizeTmp = minPartitionSize.second == Long.MAX_VALUE ?
0 : minPartitionSize.second;
-
MetricRepo.GAUGE_MIN_PARTITION_SIZE_BYTES.setValue(minPartitionSizeTmp);
- long minTabletSizeTmp = minTabletSize.second == Long.MAX_VALUE ? 0 :
minTabletSize.second;
- MetricRepo.GAUGE_MIN_TABLET_SIZE_BYTES.setValue(minTabletSizeTmp);
- long avgTableSize = totalTableSize / Math.max(1, tableCount); // avoid
ArithmeticException: / by zero
- MetricRepo.GAUGE_AVG_TABLE_SIZE_BYTES.setValue(avgTableSize);
- long avgPartitionSize = totalTableSize / Math.max(1, partitionCount);
// avoid ArithmeticException: / by zero
- MetricRepo.GAUGE_AVG_PARTITION_SIZE_BYTES.setValue(avgPartitionSize);
- long avgTabletSize = totalTableSize / Math.max(1, tabletCount); //
avoid ArithmeticException: / by zero
- MetricRepo.GAUGE_AVG_TABLET_SIZE_BYTES.setValue(avgTabletSize);
+
+ if (MetricRepo.isInit) {
+
MetricRepo.GAUGE_MAX_TABLE_SIZE_BYTES.setValue(maxTableSize.second);
+
MetricRepo.GAUGE_MAX_PARTITION_SIZE_BYTES.setValue(maxPartitionSize.second);
+
MetricRepo.GAUGE_MAX_TABLET_SIZE_BYTES.setValue(maxTabletSize.second);
+ long minTableSizeTmp = minTableSize.second == Long.MAX_VALUE ? 0 :
minTableSize.second;
+ MetricRepo.GAUGE_MIN_TABLE_SIZE_BYTES.setValue(minTableSizeTmp);
+ long minPartitionSizeTmp = minPartitionSize.second ==
Long.MAX_VALUE ? 0 : minPartitionSize.second;
+
MetricRepo.GAUGE_MIN_PARTITION_SIZE_BYTES.setValue(minPartitionSizeTmp);
+ long minTabletSizeTmp = minTabletSize.second == Long.MAX_VALUE ? 0
: minTabletSize.second;
+ MetricRepo.GAUGE_MIN_TABLET_SIZE_BYTES.setValue(minTabletSizeTmp);
+ // avoid ArithmeticException: / by zero
+ long avgTableSize = totalTableSize / Math.max(1, tableCount);
+ MetricRepo.GAUGE_AVG_TABLE_SIZE_BYTES.setValue(avgTableSize);
+ // avoid ArithmeticException: / by zero
+ long avgPartitionSize = totalTableSize / Math.max(1,
partitionCount);
+
MetricRepo.GAUGE_AVG_PARTITION_SIZE_BYTES.setValue(avgPartitionSize);
+ // avoid ArithmeticException: / by zero
+ long avgTabletSize = totalTableSize / Math.max(1, tabletCount);
+ MetricRepo.GAUGE_AVG_TABLET_SIZE_BYTES.setValue(avgTabletSize);
+
+ LOG.info("OlapTable num=" + tableCount
+ + ", partition num=" + partitionCount + ", tablet num=" +
tabletCount
+ + ", max tablet byte size=" + maxTabletSize.second
+ + "(tablet_id=" + maxTabletSize.first + ")"
+ + ", min tablet byte size=" + minTabletSizeTmp
+ + "(tablet_id=" + minTabletSize.first + ")"
+ + ", avg tablet byte size=" + avgTabletSize
+ + ", max partition byte size=" + maxPartitionSize.second
+ + "(partition_id=" + maxPartitionSize.first + ")"
+ + ", min partition byte size=" + minPartitionSizeTmp
+ + "(partition_id=" + minPartitionSize.first + ")"
+ + ", avg partition byte size=" + avgPartitionSize
+ + ", max table byte size=" + maxTableSize.second +
"(table_id=" + maxTableSize.first + ")"
+ + ", min table byte size=" + minTableSizeTmp +
"(table_id=" + minTableSize.first + ")"
+ + ", avg table byte size=" + avgTableSize);
+ }
+
LOG.info("finished to update index row num of all databases. cost: {}
ms",
(System.currentTimeMillis() - start));
- LOG.info("Olap table num=" + tableCount + ", partition num=" +
partitionCount + ", tablet num=" + tabletCount
- + ", max tablet byte size=" + maxTabletSize.second +
"(tablet_id=" + maxTableSize.first + ")"
- + ", min tablet byte size=" + minTabletSizeTmp + "(tablet_id="
+ minTabletSize.first + ")"
- + ", avg tablet byte size=" + avgTabletSize
- + ", max partition byte size=" + maxPartitionSize.second +
"(partition_id=" + maxPartitionSize.first
- + ")"
- + ", min partition byte size=" + minPartitionSizeTmp +
"(partition_id=" + minPartitionSize.first + ")"
- + ", avg partition byte size=" + avgPartitionSize
- + ", max table byte size=" + maxTableSize.second +
"(table_id=" + maxTableSize.first + ")"
- + ", min table byte size=" + minTableSizeTmp + "(table_id=" +
minTableSize.first + ")"
- + ", avg table byte size=" + avgTableSize);
}
public void waitForTabletStatUpdate() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]