codelipenghui commented on code in PR #21488:
URL: https://github.com/apache/pulsar/pull/21488#discussion_r1383381295


##########
pip/pip-314.md:
##########
@@ -0,0 +1,57 @@
+# PIP-314: Add metrics pulsar_subscription_redelivery_messages
+
+# Background knowledge
+
+## Delivery of messages in normal
+
+To simplify the description of the mechanism, let's take the policy [Auto 
Split Hash 
Range](https://pulsar.apache.org/docs/3.0.x/concepts-messaging/#auto-split-hash-range)
  as an example:
+
+| `0 ~ 16,384`      | `16,385 ~ 32,768` | `32,769 ~ 65,536`              |
+|-------------------|-------------------|--------------------------------|
+| ------- C1 ------ | ------- C2 ------ | ------------- C3 ------------- |
+
+- If the entry key is between `-1(non-include) ~ 16,384(include)`, it is 
delivered to C1
+- If the entry key is between `16,384(non-include) ~ 32,768(include)`, it is 
delivered to C2
+- If the entry key is between `32,768(non-include) ~ 65,536(include)`, it is 
delivered to C3
+
+# Motivation
+
+For the example above, if `C1` is stuck or consumed slowly, the Broker will 
push the entries that should be delivered to `C1` into a memory collection 
`redelivery_messages` and read next entries continue, then the collection 
`redelivery_messages` becomes larger and larger and take up a lot of memory. 
When sending messages, it will also determine the key of the entries in the 
collection `redelivery_messages`, affecting performance.
+
+# Goals
+- Add metrics
+  - Broker level:
+    - Add a metric `pulsar_broker_max_subscription_redelivery_messages_total` 
to indicate the max one `{redelivery_messages}` of subscriptions in the broker, 
used by pushing an alert if it is too large. Nit: The Broker will print a log, 
which contains the name of the subscription(which has the maximum count of 
redelivery messages). This will help find the issue subscription.

Review Comment:
   It doesn't make sense for a broker-level metrics, right? Because we will not 
have topic level metrics for the redelivery messages.



##########
pip/pip-314.md:
##########
@@ -0,0 +1,57 @@
+# PIP-314: Add metrics pulsar_subscription_redelivery_messages
+
+# Background knowledge
+
+## Delivery of messages in normal
+
+To simplify the description of the mechanism, let's take the policy [Auto 
Split Hash 
Range](https://pulsar.apache.org/docs/3.0.x/concepts-messaging/#auto-split-hash-range)
  as an example:
+
+| `0 ~ 16,384`      | `16,385 ~ 32,768` | `32,769 ~ 65,536`              |
+|-------------------|-------------------|--------------------------------|
+| ------- C1 ------ | ------- C2 ------ | ------------- C3 ------------- |
+
+- If the entry key is between `-1(non-include) ~ 16,384(include)`, it is 
delivered to C1
+- If the entry key is between `16,384(non-include) ~ 32,768(include)`, it is 
delivered to C2
+- If the entry key is between `32,768(non-include) ~ 65,536(include)`, it is 
delivered to C3
+
+# Motivation
+
+For the example above, if `C1` is stuck or consumed slowly, the Broker will 
push the entries that should be delivered to `C1` into a memory collection 
`redelivery_messages` and read next entries continue, then the collection 
`redelivery_messages` becomes larger and larger and take up a lot of memory. 
When sending messages, it will also determine the key of the entries in the 
collection `redelivery_messages`, affecting performance.
+
+# Goals
+- Add metrics
+  - Broker level:
+    - Add a metric `pulsar_broker_max_subscription_redelivery_messages_total` 
to indicate the max one `{redelivery_messages}` of subscriptions in the broker, 
used by pushing an alert if it is too large. Nit: The Broker will print a log, 
which contains the name of the subscription(which has the maximum count of 
redelivery messages). This will help find the issue subscription.

Review Comment:
   And I'm confused here.
   Will we introduce 2 metrics
   
   - pulsar_broker_max_subscription_redelivery_messages_total
   - pulsar_broker_memory_usage_of_redelivery_messages_bytes
   
   How can they work together?



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to