From f12c17a6d886aa606bb2f4a4e01ac44a7b6cb6e7 Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Tue, 17 Dec 2013 06:30:50 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[PINPOINT-244]?= =?UTF-8?q?=20udp=20l4=20=ED=8C=A8=ED=82=B7=EC=9D=B4=20=EC=99=94=EC=9D=84?= =?UTF-8?q?=20=EA=B2=BD=EC=9A=B0=20=EB=AC=B4=EC=8B=9C=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-server/trunk@3031 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../collector/receiver/tcp/TCPReceiver.java | 9 +++++++++ .../collector/receiver/udp/UDPReceiver.java | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/main/java/com/nhn/pinpoint/collector/receiver/tcp/TCPReceiver.java b/src/main/java/com/nhn/pinpoint/collector/receiver/tcp/TCPReceiver.java index 3aeba95b5..0aa140691 100644 --- a/src/main/java/com/nhn/pinpoint/collector/receiver/tcp/TCPReceiver.java +++ b/src/main/java/com/nhn/pinpoint/collector/receiver/tcp/TCPReceiver.java @@ -19,6 +19,7 @@ import com.nhn.pinpoint.rpc.server.PinpointServerSocket; import com.nhn.pinpoint.rpc.server.ServerMessageListener; import com.nhn.pinpoint.rpc.server.ServerStreamChannel; import com.nhn.pinpoint.rpc.server.SocketChannel; +import com.nhn.pinpoint.thrift.io.L4Packet; import com.nhn.pinpoint.thrift.io.SafeHeaderTBaseSerializer; import org.apache.thrift.TBase; import org.apache.thrift.TException; @@ -160,6 +161,14 @@ public class TCPReceiver { SocketAddress remoteAddress = socketChannel.getRemoteAddress(); try { TBase tBase = deserializer.deserialize(bytes); + if (tBase instanceof L4Packet) { + // 동적으로 패스가 가능하도록 보완해야 될듯 하다. + if (logger.isDebugEnabled()) { + L4Packet packet = (L4Packet) tBase; + logger.debug("tcp l4 packet {}", packet.getHeader()); + } + return; + } TBase result = dispatchHandler.dispatch(tBase, bytes, Header.HEADER_SIZE, bytes.length); if (result != null) { SafeHeaderTBaseSerializer serializer = new SafeHeaderTBaseSerializer(); diff --git a/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java b/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java index abadb5e21..d1b4bcf7c 100644 --- a/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java +++ b/src/main/java/com/nhn/pinpoint/collector/receiver/udp/UDPReceiver.java @@ -13,6 +13,7 @@ import com.nhn.pinpoint.thrift.io.Header; import com.nhn.pinpoint.thrift.io.HeaderTBaseDeserializer; import com.nhn.pinpoint.common.util.ExecutorFactory; import com.nhn.pinpoint.rpc.util.CpuUtils; +import com.nhn.pinpoint.thrift.io.L4Packet; import org.apache.thrift.TBase; import org.apache.thrift.TException; import org.slf4j.Logger; @@ -123,6 +124,12 @@ public class UDPReceiver implements DataReceiver { if (packet == null) { continue; } + if (packet.getLength() == 0) { + if (debugEnabled) { + logger.debug("length is 0 ip:{}, port:{}", packet.getAddress(), packet.getPort()); + } + return; + } if (debugEnabled) { logger.debug("pool getActiveCount:{}", worker.getActiveCount()); } @@ -263,6 +270,14 @@ public class UDPReceiver implements DataReceiver { TBase tBase = null; try { tBase = deserializer.deserialize(packet.getData()); + if (tBase instanceof L4Packet) { + // 동적으로 패스가 가능하도록 보완해야 될듯 하다. + if (logger.isDebugEnabled()) { + L4Packet packet = (L4Packet) tBase; + logger.debug("udp l4 packet {}", packet.getHeader()); + } + return; + } // dispatch는 비지니스 로직 실행을 의미. dispatchHandler.dispatch(tBase, packet.getData(), Header.HEADER_SIZE, packet.getLength()); } catch (TException e) {