You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2021/10/29 18:03:45 UTC
[pulsar] 01/02: Add debug log for WebSocket. (#12458)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch branch-2.9
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit fe4bc9af39022cab75fb1677eff231285c6ad5fa
Author: lipenghui <pe...@apache.org>
AuthorDate: Fri Oct 22 14:57:05 2021 +0800
Add debug log for WebSocket. (#12458)
---
.../org/apache/pulsar/websocket/ConsumerHandler.java | 20 ++++++++++++++++++++
.../org/apache/pulsar/websocket/ProducerHandler.java | 8 ++++++++
2 files changed, 28 insertions(+)
diff --git a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ConsumerHandler.java b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ConsumerHandler.java
index a1c76d2..d30c084 100644
--- a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ConsumerHandler.java
+++ b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ConsumerHandler.java
@@ -232,6 +232,10 @@ public class ConsumerHandler extends AbstractWebSocketHandler {
// Check and notify consumer if reached end of topic.
private void handleEndOfTopic() {
+ if (log.isDebugEnabled()) {
+ log.debug("[{}/{}] Received check reach the end of topic request from {} ", consumer.getTopic(),
+ subscription, getRemote().getInetSocketAddress().toString());
+ }
try {
String msg = ObjectMapperFactory.getThreadLocal().writeValueAsString(
new EndOfTopicResponse(consumer.hasReachedEndOfTopic()));
@@ -259,6 +263,10 @@ public class ConsumerHandler extends AbstractWebSocketHandler {
}
private void handleUnsubscribe(ConsumerCommand command) throws PulsarClientException {
+ if (log.isDebugEnabled()) {
+ log.debug("[{}/{}] Received unsubscribe request from {} ", consumer.getTopic(),
+ subscription, getRemote().getInetSocketAddress().toString());
+ }
consumer.unsubscribe();
}
@@ -276,6 +284,10 @@ public class ConsumerHandler extends AbstractWebSocketHandler {
// We should have received an ack
MessageId msgId = MessageId.fromByteArrayWithTopic(Base64.getDecoder().decode(command.messageId),
topic.toString());
+ if (log.isDebugEnabled()) {
+ log.debug("[{}/{}] Received ack request of message {} from {} ", consumer.getTopic(),
+ subscription, msgId, getRemote().getInetSocketAddress().toString());
+ }
consumer.acknowledgeAsync(msgId).thenAccept(consumer -> numMsgsAcked.increment());
checkResumeReceive();
}
@@ -283,11 +295,19 @@ public class ConsumerHandler extends AbstractWebSocketHandler {
private void handleNack(ConsumerCommand command) throws IOException {
MessageId msgId = MessageId.fromByteArrayWithTopic(Base64.getDecoder().decode(command.messageId),
topic.toString());
+ if (log.isDebugEnabled()) {
+ log.debug("[{}/{}] Received negative ack request of message {} from {} ", consumer.getTopic(),
+ subscription, msgId, getRemote().getInetSocketAddress().toString());
+ }
consumer.negativeAcknowledge(msgId);
checkResumeReceive();
}
private void handlePermit(ConsumerCommand command) throws IOException {
+ if (log.isDebugEnabled()) {
+ log.debug("[{}/{}] Received {} permits request from {} ", consumer.getTopic(),
+ subscription, command.permitMessages, getRemote().getInetSocketAddress().toString());
+ }
if (command.permitMessages == null) {
throw new IOException("Missing required permitMessages field for 'permit' command");
}
diff --git a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
index 9552d42..9b6593d 100644
--- a/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
+++ b/pulsar-websocket/src/main/java/org/apache/pulsar/websocket/ProducerHandler.java
@@ -131,6 +131,10 @@ public class ProducerHandler extends AbstractWebSocketHandler {
@Override
public void onWebSocketText(String message) {
+ if (log.isDebugEnabled()) {
+ log.debug("[{}] Received new message from producer {} ", producer.getTopic(),
+ getRemote().getInetSocketAddress().toString());
+ }
ProducerMessage sendRequest;
byte[] rawPayload = null;
String requestContext = null;
@@ -188,6 +192,10 @@ public class ProducerHandler extends AbstractWebSocketHandler {
final long now = System.nanoTime();
builder.sendAsync().thenAccept(msgId -> {
+ if (log.isDebugEnabled()) {
+ log.debug("[{}] Success fully write the message to broker with returned message ID {} from producer {}",
+ producer.getTopic(), msgId, getRemote().getInetSocketAddress().toString());
+ }
updateSentMsgStats(msgSize, TimeUnit.NANOSECONDS.toMicros(System.nanoTime() - now));
if (isConnected()) {
String messageId = Base64.getEncoder().encodeToString(msgId.toByteArray());