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

yunhong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fluss.git


The following commit(s) were added to refs/heads/main by this push:
     new 62a49a248 [metric] add bucket and partition count metric for table 
(#2800)
62a49a248 is described below

commit 62a49a248d3ca370be80ef582da73d28db19df49
Author: xiaozhou <[email protected]>
AuthorDate: Fri Mar 6 13:35:45 2026 +0800

    [metric] add bucket and partition count metric for table (#2800)
---
 .../server/metrics/group/CoordinatorMetricGroup.java    | 17 +++++++++++++++++
 .../org/apache/fluss/server/replica/ReplicaManager.java |  2 +-
 .../docs/maintenance/observability/monitor-metrics.md   | 17 ++++++++++++++---
 3 files changed, 32 insertions(+), 4 deletions(-)

diff --git 
a/fluss-server/src/main/java/org/apache/fluss/server/metrics/group/CoordinatorMetricGroup.java
 
b/fluss-server/src/main/java/org/apache/fluss/server/metrics/group/CoordinatorMetricGroup.java
index 4045fbae7..72ff328a7 100644
--- 
a/fluss-server/src/main/java/org/apache/fluss/server/metrics/group/CoordinatorMetricGroup.java
+++ 
b/fluss-server/src/main/java/org/apache/fluss/server/metrics/group/CoordinatorMetricGroup.java
@@ -21,6 +21,7 @@ import org.apache.fluss.metadata.PhysicalTablePath;
 import org.apache.fluss.metadata.TableBucket;
 import org.apache.fluss.metadata.TablePath;
 import org.apache.fluss.metrics.CharacterFilter;
+import org.apache.fluss.metrics.MetricNames;
 import org.apache.fluss.metrics.groups.AbstractMetricGroup;
 import org.apache.fluss.metrics.groups.MetricGroup;
 import org.apache.fluss.metrics.registry.MetricRegistry;
@@ -33,6 +34,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 
 import static org.apache.fluss.metrics.utils.MetricGroupUtils.makeScope;
@@ -146,6 +148,9 @@ public class CoordinatorMetricGroup extends 
AbstractMetricGroup {
 
             this.tablePath = tablePath;
             this.registry = registry;
+
+            // Register table-level metrics
+            registerTableMetrics();
         }
 
         @Override
@@ -200,6 +205,18 @@ public class CoordinatorMetricGroup extends 
AbstractMetricGroup {
             SimpleBucketMetricGroup metricGroup = buckets.remove(tb);
             metricGroup.close();
         }
+
+        private void registerTableMetrics() {
+            gauge(MetricNames.BUCKET_COUNT, buckets::size);
+            gauge(
+                    MetricNames.PARTITION_COUNT,
+                    () ->
+                            buckets.keySet().stream()
+                                    .map(TableBucket::getPartitionId)
+                                    .filter(Objects::nonNull)
+                                    .distinct()
+                                    .count());
+        }
     }
 
     /** The metric group for bucket. */
diff --git 
a/fluss-server/src/main/java/org/apache/fluss/server/replica/ReplicaManager.java
 
b/fluss-server/src/main/java/org/apache/fluss/server/replica/ReplicaManager.java
index eea783dba..c891e5d3d 100644
--- 
a/fluss-server/src/main/java/org/apache/fluss/server/replica/ReplicaManager.java
+++ 
b/fluss-server/src/main/java/org/apache/fluss/server/replica/ReplicaManager.java
@@ -414,7 +414,7 @@ public class ReplicaManager {
 
     /**
      * Receive a request to make these replicas to become leader or follower, 
if the replica doesn't
-     * exit, we will create it.
+     * exist, we will create it.
      */
     public void becomeLeaderOrFollower(
             int requestCoordinatorEpoch,
diff --git a/website/docs/maintenance/observability/monitor-metrics.md 
b/website/docs/maintenance/observability/monitor-metrics.md
index bf62746b4..58d0fdaaa 100644
--- a/website/docs/maintenance/observability/monitor-metrics.md
+++ b/website/docs/maintenance/observability/monitor-metrics.md
@@ -294,7 +294,7 @@ Some metrics might not be exposed when using other JVM 
implementations (e.g. IBM
   </thead>
   <tbody>
     <tr>
-      <th rowspan="15"><strong>coordinator</strong></th>
+      <th rowspan="17"><strong>coordinator</strong></th>
       <td style={{textAlign: 'center', verticalAlign: 'middle' }} 
rowspan="8">-</td>
       <td>activeCoordinatorCount</td>
       <td>The number of active CoordinatorServer in this cluster.</td>
@@ -361,16 +361,27 @@ Some metrics might not be exposed when using other JVM 
implementations (e.g. IBM
       <td>remoteKvSize</td>
       <td>The physical storage size of remote KV store.</td>
       <td>Gauge</td>
+    </tr>
+     <tr>
+      <td rowspan="2">table</td>
+      <td>bucketCount</td>
+      <td>The number of buckets of each table.</td>
+      <td>Gauge</td>
+    </tr>
+     <tr>
+      <td>partitionCount</td>
+      <td>The number of partitions of each table.</td>
+      <td>Gauge</td>
     </tr>
      <tr>
       <td rowspan="2">table_bucket</td>
       <td>numKvSnapshots</td>
-      <td>number of kv snapshots of each table bucket.</td>
+      <td>The number of kv snapshots of each table bucket.</td>
       <td>Gauge</td>
     </tr>
      <tr>
       <td>allKvSnapshotSize</td>
-      <td>all kv snapshot size of each table bucket.</td>
+      <td>All kv snapshot size of each table bucket.</td>
       <td>Gauge</td>
     </tr>
   </tbody>

Reply via email to