smjn commented on code in PR #18174:
URL: https://github.com/apache/kafka/pull/18174#discussion_r1887908162


##########
share-coordinator/src/main/java/org/apache/kafka/coordinator/share/metrics/ShareCoordinatorMetrics.java:
##########
@@ -153,4 +158,31 @@ public void record(String sensorName) {
             globalSensors.get(sensorName).record();
         }
     }
+
+    public void recordPrune(double value, TopicPartition tp) {
+        pruneMetrics.computeIfAbsent(tp, k -> new ShareGroupPruneMetrics(tp))
+            .pruneSensor.record(value);
+    }
+
+    private class ShareGroupPruneMetrics {
+        private final Sensor pruneSensor;
+
+        ShareGroupPruneMetrics(TopicPartition tp) {
+            String sensorNameSuffix = tp.toString();
+            Map<String, String> tags = Map.of(
+                "topic", tp.topic(),
+                "partition", Integer.toString(tp.partition())
+            );
+
+            pruneSensor = 
metrics.sensor(SHARE_COORDINATOR_STATE_TOPIC_PRUNE_SENSOR_NAME + 
sensorNameSuffix);
+
+            pruneSensor.add(
+                metrics.metricName("last-pruned-offset",

Review Comment:
   Like the case I mentioned our last pruned offset could be different we what 
the low water mark is (if we send something smaller). Current `Partition.scala` 
code simply swallows this condition with no specific indication.
   
   This metric provides pruners perspective, low water mark/LogStartOffset 
provide replicamanager/partition/Unified log perspectives.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to