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]

Reply via email to