From 35e8a53f8cef7d13c2e603faf67016ec348984df Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Tue, 28 Dec 2021 19:46:32 +0200 Subject: [PATCH] mqtt: log.info replaced with log.debug for connect/disconnect event. It reduces log, CPU and disk overhead when few thousand devices in place. As alternative to debug mqtt - logback.xml adjusted --- application/src/main/resources/logback.xml | 3 +++ .../server/transport/mqtt/MqttTransportHandler.java | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/application/src/main/resources/logback.xml b/application/src/main/resources/logback.xml index caf78e1537..18c023bb80 100644 --- a/application/src/main/resources/logback.xml +++ b/application/src/main/resources/logback.xml @@ -40,6 +40,9 @@ + + + diff --git a/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java b/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java index 693b47d42f..bf474cc266 100644 --- a/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java +++ b/common/transport/mqtt/src/main/java/org/thingsboard/server/transport/mqtt/MqttTransportHandler.java @@ -753,7 +753,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement } void processConnect(ChannelHandlerContext ctx, MqttConnectMessage msg) { - log.info("[{}] Processing connect msg for client: {}!", sessionId, msg.payload().clientIdentifier()); + log.debug("[{}] Processing connect msg for client: {}!", sessionId, msg.payload().clientIdentifier()); String userName = msg.payload().userName(); String clientId = msg.payload().clientIdentifier(); if (DataConstants.PROVISION.equals(userName) || DataConstants.PROVISION.equals(clientId)) { @@ -771,7 +771,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement private void processAuthTokenConnect(ChannelHandlerContext ctx, MqttConnectMessage connectMessage) { String userName = connectMessage.payload().userName(); - log.info("[{}] Processing connect msg for client with user name: {}!", sessionId, userName); + log.debug("[{}] Processing connect msg for client with user name: {}!", sessionId, userName); TransportProtos.ValidateBasicMqttCredRequestMsg.Builder request = TransportProtos.ValidateBasicMqttCredRequestMsg.newBuilder() .setClientId(connectMessage.payload().clientIdentifier()); if (userName != null) { @@ -917,7 +917,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement public void doDisconnect() { if (deviceSessionCtx.isConnected()) { - log.info("[{}] Client disconnected!", sessionId); + log.debug("[{}] Client disconnected!", sessionId); transportService.process(deviceSessionCtx.getSessionInfo(), DefaultTransportService.getSessionEventMsg(SessionEvent.CLOSED), null); transportService.deregisterSession(deviceSessionCtx.getSessionInfo()); if (gatewaySessionHandler != null) { @@ -944,7 +944,7 @@ public class MqttTransportHandler extends ChannelInboundHandlerAdapter implement checkGatewaySession(sessionMetaData); ctx.writeAndFlush(createMqttConnAckMsg(CONNECTION_ACCEPTED, connectMessage)); deviceSessionCtx.setConnected(true); - log.info("[{}] Client connected!", sessionId); + log.debug("[{}] Client connected!", sessionId); transportService.getCallbackExecutor().execute(() -> processMsgQueue(ctx)); //this callback will execute in Producer worker thread and hard or blocking work have to be submitted to the separate thread. }