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

penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new e417fe78952 [improve] [admin] Make the default value of param 
--get-subscription-backlog-size of admin API topics stats true (#19302)
e417fe78952 is described below

commit e417fe7895253f7cf4e6b2d019ab615f4574098a
Author: fengyubiao <[email protected]>
AuthorDate: Sat Jan 28 20:19:46 2023 +0800

    [improve] [admin] Make the default value of param 
--get-subscription-backlog-size of admin API topics stats true (#19302)
---
 .../java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java   | 4 ++--
 .../pulsar/broker/service/persistent/PersistentSubscription.java   | 2 ++
 .../src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java | 7 +++++--
 .../test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java | 6 +++---
 .../src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java       | 6 +++---
 .../pulsar/common/policies/data/stats/SubscriptionStatsImpl.java   | 2 +-
 6 files changed, 16 insertions(+), 11 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
index 2c02955c5ab..7eeaec403d8 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/v2/PersistentTopics.java
@@ -1178,7 +1178,7 @@ public class PersistentTopics extends 
PersistentTopicsBase {
             @QueryParam("getPreciseBacklog") @DefaultValue("false") boolean 
getPreciseBacklog,
             @ApiParam(value = "If return backlog size for each subscription, 
require locking on ledger so be careful "
                     + "not to use when there's heavy traffic.")
-            @QueryParam("subscriptionBacklogSize") @DefaultValue("false") 
boolean subscriptionBacklogSize,
+            @QueryParam("subscriptionBacklogSize") @DefaultValue("true") 
boolean subscriptionBacklogSize,
             @ApiParam(value = "If return time of the earliest message in 
backlog")
             @QueryParam("getEarliestTimeInBacklog") @DefaultValue("false") 
boolean getEarliestTimeInBacklog) {
         validateTopicName(tenant, namespace, encodedTopic);
@@ -1280,7 +1280,7 @@ public class PersistentTopics extends 
PersistentTopicsBase {
             @QueryParam("getPreciseBacklog") @DefaultValue("false") boolean 
getPreciseBacklog,
             @ApiParam(value = "If return backlog size for each subscription, 
require locking on ledger so be careful "
                     + "not to use when there's heavy traffic.")
-            @QueryParam("subscriptionBacklogSize") @DefaultValue("false") 
boolean subscriptionBacklogSize,
+            @QueryParam("subscriptionBacklogSize") @DefaultValue("true") 
boolean subscriptionBacklogSize,
             @ApiParam(value = "If return the earliest time in backlog")
             @QueryParam("getEarliestTimeInBacklog") @DefaultValue("false") 
boolean getEarliestTimeInBacklog) {
         try {
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
index 21a49758724..2012aa06b30 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
@@ -1131,6 +1131,8 @@ public class PersistentSubscription extends 
AbstractSubscription implements Subs
         if (subscriptionBacklogSize) {
             subStats.backlogSize = ((ManagedLedgerImpl) 
topic.getManagedLedger())
                     .getEstimatedBacklogSize((PositionImpl) 
cursor.getMarkDeletedPosition());
+        } else {
+            subStats.backlogSize = -1;
         }
         if (getEarliestTimeInBacklog && subStats.msgBacklog > 0) {
             ManagedLedgerImpl managedLedger = ((ManagedLedgerImpl) 
cursor.getManagedLedger());
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
index bfd015705cd..938b3cbb63a 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest.java
@@ -1234,14 +1234,16 @@ public class AdminApiTest extends 
MockedPulsarServiceBaseTest {
 
         assertEquals(topicStats.getEarliestMsgPublishTimeInBacklogs(), 0);
         
assertEquals(topicStats.getSubscriptions().get(subName).getEarliestMsgPublishTimeInBacklog(),
 0);
+        
assertEquals(topicStats.getSubscriptions().get(subName).getBacklogSize(), -1);
 
         // publish several messages
         publishMessagesOnPersistentTopic(topic, 10);
         Thread.sleep(1000);
 
-        topicStats = admin.topics().getStats(topic, false, false, true);
+        topicStats = admin.topics().getStats(topic, false, true, true);
         assertTrue(topicStats.getEarliestMsgPublishTimeInBacklogs() > 0);
         
assertTrue(topicStats.getSubscriptions().get(subName).getEarliestMsgPublishTimeInBacklog()
 > 0);
+        assertTrue(topicStats.getSubscriptions().get(subName).getBacklogSize() 
> 0);
 
         for (int i = 0; i < 10; i++) {
             Message<byte[]> message = consumer.receive();
@@ -1249,9 +1251,10 @@ public class AdminApiTest extends 
MockedPulsarServiceBaseTest {
         }
         Thread.sleep(1000);
 
-        topicStats = admin.topics().getStats(topic, false, false, true);
+        topicStats = admin.topics().getStats(topic, false, true, true);
         assertEquals(topicStats.getEarliestMsgPublishTimeInBacklogs(), 0);
         
assertEquals(topicStats.getSubscriptions().get(subName).getEarliestMsgPublishTimeInBacklog(),
 0);
+        
assertEquals(topicStats.getSubscriptions().get(subName).getBacklogSize(), 0);
     }
 
 
diff --git 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
index 2a16d09ad0a..37b8c33e114 100644
--- 
a/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
+++ 
b/pulsar-client-tools-test/src/test/java/org/apache/pulsar/admin/cli/PulsarAdminToolTest.java
@@ -1493,7 +1493,7 @@ public class PulsarAdminToolTest {
         
verify(mockTopics).deleteSubscription("persistent://myprop/clust/ns1/ds1", 
"sub1", false);
 
         cmdTopics.run(split("stats persistent://myprop/clust/ns1/ds1"));
-        verify(mockTopics).getStats("persistent://myprop/clust/ns1/ds1", 
false, false, false);
+        verify(mockTopics).getStats("persistent://myprop/clust/ns1/ds1", 
false, true, false);
 
         cmdTopics.run(split("stats-internal 
persistent://myprop/clust/ns1/ds1"));
         
verify(mockTopics).getInternalStats("persistent://myprop/clust/ns1/ds1", false);
@@ -1541,7 +1541,7 @@ public class PulsarAdminToolTest {
 
         cmdTopics.run(split("partitioned-stats 
persistent://myprop/clust/ns1/ds1 --per-partition"));
         
verify(mockTopics).getPartitionedStats("persistent://myprop/clust/ns1/ds1",
-                true, false, false, false);
+                true, false, true, false);
 
         cmdTopics.run(split("partitioned-stats-internal 
persistent://myprop/clust/ns1/ds1"));
         
verify(mockTopics).getPartitionedInternalStats("persistent://myprop/clust/ns1/ds1");
@@ -2107,7 +2107,7 @@ public class PulsarAdminToolTest {
         CmdTopics topics = new CmdTopics(() -> admin);
 
         topics.run(split("stats non-persistent://myprop/ns1/ds1"));
-        verify(mockTopics).getStats("non-persistent://myprop/ns1/ds1", false, 
false, false);
+        verify(mockTopics).getStats("non-persistent://myprop/ns1/ds1", false, 
true, false);
 
         topics.run(split("stats-internal non-persistent://myprop/ns1/ds1"));
         verify(mockTopics).getInternalStats("non-persistent://myprop/ns1/ds1", 
false);
diff --git 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
index 827699283bf..8b11990dc53 100644
--- 
a/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
+++ 
b/pulsar-client-tools/src/main/java/org/apache/pulsar/admin/cli/CmdTopics.java
@@ -792,8 +792,8 @@ public class CmdTopics extends CmdBase {
 
         @Parameter(names = { "-sbs",
                 "--get-subscription-backlog-size" }, description = "Set true 
to get backlog size for each subscription"
-        + ", locking required.")
-        private boolean subscriptionBacklogSize = false;
+        + ", locking required. If set to false, the attribute 'backlogSize' in 
the response will be -1")
+        private boolean subscriptionBacklogSize = true;
 
         @Parameter(names = { "-etb",
                 "--get-earliest-time-in-backlog" }, description = "Set true to 
get earliest time in backlog")
@@ -858,7 +858,7 @@ public class CmdTopics extends CmdBase {
         @Parameter(names = { "-sbs",
                 "--get-subscription-backlog-size" }, description = "Set true 
to get backlog size for each subscription"
                 + ", locking required.")
-        private boolean subscriptionBacklogSize = false;
+        private boolean subscriptionBacklogSize = true;
 
         @Parameter(names = { "-etb",
                 "--get-earliest-time-in-backlog" }, description = "Set true to 
get earliest time in backlog")
diff --git 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
index 8eb77e981a8..90b1e24f3c1 100644
--- 
a/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
+++ 
b/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/SubscriptionStatsImpl.java
@@ -58,7 +58,7 @@ public class SubscriptionStatsImpl implements 
SubscriptionStats {
     /** Number of entries in the subscription backlog. */
     public long msgBacklog;
 
-    /** Size of backlog in byte. **/
+    /** Size of backlog in byte, -1 means that the argument 
"subscriptionBacklogSize" is false when calling the API. **/
     public long backlogSize;
 
     /** Get the publish time of the earliest message in the backlog. */

Reply via email to