From 46f5135d91de672aab63085a2b223ff5f376cd1f Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Mon, 18 Mar 2013 08:23:24 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[LUCYSUS-1744]?= =?UTF-8?q?=20endpoint=EB=A5=BC=20=EC=A0=95=EA=B7=9C=ED=99=94=20=ED=95=98?= =?UTF-8?q?=EC=97=AC=20ip=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=9C=84?= =?UTF-8?q?=EC=A3=BC=EB=A1=9C=20=EC=B9=98=ED=99=98=ED=95=98=EB=8A=94?= =?UTF-8?q?=EA=B2=83=EC=9C=BC=EB=A1=9C=20=EC=88=98=EC=A0=95=ED=95=A8.?= 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-tomcat-profiler/trunk@1344 84d0f5b1-2673-498c-a247-62c4ff18d310 --- src/main/java/com/profiler/Agent.java | 4 +++- ...seOperationTransitionStateInterceptor.java | 2 +- .../Execute2MethodInterceptor.java | 2 +- .../interceptor/ExecuteMethodInterceptor.java | 2 +- .../interceptor/ConnectMethodInterceptor.java | 2 +- .../interceptor/DriverConnectInterceptor.java | 2 +- .../PreparedStatementCreateInterceptor.java | 2 +- ...paredStatementExecuteQueryInterceptor.java | 2 +- .../StatementExecuteQueryInterceptor.java | 2 +- .../StatementExecuteUpdateInterceptor.java | 2 +- .../interceptor/TransactionInterceptor.java | 10 ++++---- .../modifier/db/util/DatabaseInfo.java | 23 +++++++++++++++++-- .../StandardHostValveInvokeInterceptor.java | 2 -- .../modifier/db/util/JDBCUrlParserTest.java | 1 + 14 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/profiler/Agent.java b/src/main/java/com/profiler/Agent.java index e9e316dd6..fd7e3131f 100644 --- a/src/main/java/com/profiler/Agent.java +++ b/src/main/java/com/profiler/Agent.java @@ -141,7 +141,9 @@ public class Agent implements Runnable { private void changeStatus(AgentStatus status) { this.agentStatus = status; - logger.severe("Agent status is changed. " + status); + if (logger.isLoggable(Level.FINE)) { + logger.fine("Agent status is changed. " + status); + } } private short getShortIdentifier() { diff --git a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java index 1eb83e57d..e00640c2a 100644 --- a/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java +++ b/src/main/java/com/profiler/modifier/arcus/interceptors/BaseOperationTransitionStateInterceptor.java @@ -62,7 +62,7 @@ public class BaseOperationTransitionStateInterceptor implements StaticBeforeInte SocketAddress socketAddress = handlingNode.getSocketAddress(); if (socketAddress instanceof InetSocketAddress) { InetSocketAddress address = (InetSocketAddress) socketAddress; - asyncTrace.recordEndPoint("ARCUS:" + address.getHostName() + ":" + address.getPort()); + asyncTrace.recordEndPoint(address.getHostName() + ":" + address.getPort()); } String serviceCode = (String) getServiceCode.invoke(target); diff --git a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java index e9ac7ba52..1bdf8feb7 100644 --- a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java @@ -64,7 +64,7 @@ public class Execute2MethodInterceptor implements StaticAroundInterceptor, ByteC trace.recordServiceType(ServiceType.HTTP_CLIENT); int port = host.getPort(); - trace.recordEndPoint(host.getHostName() + ((port > 0) ? ":" + port : "")); +// trace.recordEndPoint(host.getHostName() + ((port > 0) ? ":" + port : "")); trace.recordDestinationId(host.getHostName() + ((port > 0) ? ":" + port : "")); trace.recordAttribute(AnnotationKey.HTTP_URL, request.getRequestLine().getUri()); } diff --git a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java index d06b1d3e8..6abf022e7 100644 --- a/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java @@ -65,7 +65,7 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo trace.recordServiceType(ServiceType.HTTP_CLIENT); int port = host.getPort(); - trace.recordEndPoint(host.getHostName() + ((port > 0) ? ":" + port : "")); +// trace.recordEndPoint(host.getHostName() + ((port > 0) ? ":" + port : "")); trace.recordDestinationId(host.getHostName() + ((port > 0) ? ":" + port : "")); trace.recordAttribute(AnnotationKey.HTTP_URL, request.getRequestLine().getUri()); diff --git a/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java index 762867b3e..dd4c6529c 100644 --- a/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java +++ b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java @@ -57,7 +57,7 @@ public class ConnectMethodInterceptor implements StaticAroundInterceptor, ByteCo int port = request.getURL().getPort(); // TODO protocol은 어떻게 표기하지??? - trace.recordEndPoint(host + ((port > 0) ? ":" + port : "")); +// trace.recordEndPoint(host + ((port > 0) ? ":" + port : "")); trace.recordDestinationId(host + ((port > 0) ? ":" + port : "")); trace.recordAttribute(AnnotationKey.HTTP_URL, request.getURL().toString()); diff --git a/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java index 5255e0905..6b430147f 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/DriverConnectInterceptor.java @@ -75,7 +75,7 @@ public class DriverConnectInterceptor implements StaticAroundInterceptor, ByteCo trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); diff --git a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java index c8edf62eb..ed215b327 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementCreateInterceptor.java @@ -49,7 +49,7 @@ public class PreparedStatementCreateInterceptor implements StaticAroundIntercept trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); diff --git a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java index 3e1f29321..c6559b7ba 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/PreparedStatementExecuteQueryInterceptor.java @@ -53,7 +53,7 @@ public class PreparedStatementExecuteQueryInterceptor implements StaticAroundInt trace.recordServiceType(databaseInfo.getExecuteQueryType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); diff --git a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java index 6b5f5c7a2..1f91c2d11 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteQueryInterceptor.java @@ -50,7 +50,7 @@ public class StatementExecuteQueryInterceptor implements StaticAroundInterceptor trace.recordServiceType(databaseInfo.getExecuteQueryType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); diff --git a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java index f2eae3545..46fa4758f 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/StatementExecuteUpdateInterceptor.java @@ -51,7 +51,7 @@ public class StatementExecuteUpdateInterceptor implements StaticAroundIntercepto trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); diff --git a/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java b/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java index 2205c3c7f..bfebfab47 100644 --- a/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java +++ b/src/main/java/com/profiler/modifier/db/interceptor/TransactionInterceptor.java @@ -81,7 +81,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); } @@ -109,7 +109,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); @@ -121,7 +121,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); @@ -147,7 +147,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); } @@ -159,7 +159,7 @@ public class TransactionInterceptor implements StaticAroundInterceptor, ByteCode trace.recordServiceType(databaseInfo.getType()); - trace.recordEndPoint(databaseInfo.getUrl()); + trace.recordEndPoint(databaseInfo.getMultipleHost()); trace.recordDestinationId(databaseInfo.getDatabaseId()); trace.recordDestinationAddress(databaseInfo.getHost()); diff --git a/src/main/java/com/profiler/modifier/db/util/DatabaseInfo.java b/src/main/java/com/profiler/modifier/db/util/DatabaseInfo.java index 6518884f0..d95c59a1d 100644 --- a/src/main/java/com/profiler/modifier/db/util/DatabaseInfo.java +++ b/src/main/java/com/profiler/modifier/db/util/DatabaseInfo.java @@ -16,6 +16,7 @@ public class DatabaseInfo { private String realUrl; private String normalizedUrl; private List host; + private String multipleHost; public DatabaseInfo(ServiceType type, ServiceType executeQueryType, String realUrl, String normalizedUrl, List host, String databaseId) { this.type = type; @@ -23,17 +24,35 @@ public class DatabaseInfo { this.realUrl = realUrl; this.normalizedUrl = normalizedUrl; this.host = host; + this.multipleHost = merge(host); this.databaseId = databaseId; } + private String merge(List host) { + if (host.size() == 0) { + return ""; + } + String single = host.get(0); + StringBuilder sb = new StringBuilder(); + sb.append(single); + for(int i =1; i getHost() { + + public List getHost() { // host와 port의 경우 replication 설정등으로 n개가 될수 있어 애매하다. return host; } + public String getMultipleHost() { + return multipleHost; + } - public String getDatabaseId() { + public String getDatabaseId() { return databaseId; } diff --git a/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java b/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java index d3faeab50..25975b718 100644 --- a/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java +++ b/src/main/java/com/profiler/modifier/tomcat/interceptors/StandardHostValveInvokeInterceptor.java @@ -46,9 +46,7 @@ public class StandardHostValveInvokeInterceptor implements StaticAroundIntercept TraceID traceId = populateTraceIdFromRequest(request); Trace trace; if (traceId != null) { - // TraceID nextTraceId = traceId.getNextTraceId(); if (logger.isLoggable(Level.INFO)) { - // logger.info("TraceID exist. continue trace. " + nextTraceId); logger.info("TraceID exist. continue trace. " + traceId); logger.log(Level.FINE, "requestUrl:" + requestURL + ", remoteAddr:" + remoteAddr); } diff --git a/src/test/java/com/profiler/modifier/db/util/JDBCUrlParserTest.java b/src/test/java/com/profiler/modifier/db/util/JDBCUrlParserTest.java index 0d658ffb3..c278dc187 100644 --- a/src/test/java/com/profiler/modifier/db/util/JDBCUrlParserTest.java +++ b/src/test/java/com/profiler/modifier/db/util/JDBCUrlParserTest.java @@ -58,6 +58,7 @@ public class JDBCUrlParserTest { Assert.assertEquals(dbInfo.getDatabaseId(), "test_lucy_db"); Assert.assertEquals(dbInfo.getUrl(), "jdbc:mysql://10.98.133.22:3306/test_lucy_db"); logger.info(dbInfo.toString()); + logger.info(dbInfo.getMultipleHost()); } @Test