From 650bc2c66f0f51610bf979ff73b3fa3740791103 Mon Sep 17 00:00:00 2001 From: Chisu Yu Date: Sun, 1 Jun 2014 01:51:20 +0000 Subject: [PATCH] =?UTF-8?q?[=EC=9C=A0=EC=B9=98=EC=88=98]=20[profiler-36]?= =?UTF-8?q?=20ClosableAsyncHttpClient=20=EC=9D=B8=ED=84=B0=EC=85=89?= =?UTF-8?q?=ED=84=B0=20=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-commons/trunk@3967 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../com/nhn/pinpoint/common/ServiceType.java | 121 +++++++++++------- .../pinpoint/common/ServiceTypeConstants.java | 12 ++ 2 files changed, 87 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/nhn/pinpoint/common/ServiceTypeConstants.java diff --git a/src/main/java/com/nhn/pinpoint/common/ServiceType.java b/src/main/java/com/nhn/pinpoint/common/ServiceType.java index 61aaa903b..3e80f27e0 100644 --- a/src/main/java/com/nhn/pinpoint/common/ServiceType.java +++ b/src/main/java/com/nhn/pinpoint/common/ServiceType.java @@ -1,8 +1,18 @@ package com.nhn.pinpoint.common; -import com.nhn.pinpoint.common.util.RpcCodeRange; +import static com.nhn.pinpoint.common.HistogramSchema.FAST_SCHEMA; +import static com.nhn.pinpoint.common.HistogramSchema.NORMAL_SCHEMA; +import static com.nhn.pinpoint.common.ServiceTypeConstants.INCLUDE_DESTINATION; +import static com.nhn.pinpoint.common.ServiceTypeConstants.RECORD_STATISTICS; +import static com.nhn.pinpoint.common.ServiceTypeConstants.TERMINAL; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.nhn.pinpoint.common.util.RpcCodeRange; /** * @author emeroad @@ -13,84 +23,103 @@ public enum ServiceType { /** * 정의되지 않은 서비스 코드, */ - UNDEFINED((short) -1, "UNDEFINED", true, false, false, HistogramSchema.NORMAL_SCHEMA), + UNDEFINED((short) -1, "UNDEFINED", TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), /** * agent가 설치되지 않은 피호출자. */ - UNKNOWN((short) 1, "UNKNOWN", false, true, false, HistogramSchema.NORMAL_SCHEMA), + UNKNOWN((short) 1, "UNKNOWN", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), /** * 사용자 */ - USER((short) 2, "USER", false, true, false, HistogramSchema.NORMAL_SCHEMA), + USER((short) 2, "USER", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), /** * UNKNOWN의 그룹, UI에서만 사용함. */ - UNKNOWN_GROUP((short) 3, "UNKNOWN_GROUP", false, true, false, HistogramSchema.NORMAL_SCHEMA), + UNKNOWN_GROUP((short) 3, "UNKNOWN_GROUP", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), /** * TEST의 그룹 - 테스트 실행 시 사용 */ - TEST((short) 5, "TEST", false, false, false, HistogramSchema.NORMAL_SCHEMA), - - // WAS류 1000번 부터 시작 - STAND_ALONE((short) 1000, "STAND_ALONE", false, true, false, HistogramSchema.NORMAL_SCHEMA), - // testcase를 돌릴때 사용하는 was로 정의 하자. - TEST_STAND_ALONE((short) 1005, "TEST_STAND_ALONE", false, true, false, HistogramSchema.NORMAL_SCHEMA), - TOMCAT((short) 1010, "TOMCAT", false, true, false, HistogramSchema.NORMAL_SCHEMA), - BLOC((short) 1020, "BLOC", false, true, false, HistogramSchema.NORMAL_SCHEMA), + TEST((short) 5, "TEST", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), /** + * Java applications, WAS + */ + STAND_ALONE((short) 1000, "STAND_ALONE", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + TEST_STAND_ALONE((short) 1005, "TEST_STAND_ALONE", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + TOMCAT((short) 1010, "TOMCAT", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + BLOC((short) 1020, "BLOC", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + + /** + * Database * xxx_EXECUTE_QUERY만 server map통계정보에 집계된다. */ // DB 2000 - UNKNOWN_DB((short) 2050, "UNKNOWN_DB", true, false, true, HistogramSchema.NORMAL_SCHEMA), - UNKNOWN_DB_EXECUTE_QUERY((short) 2051, "UNKNOWN_DB", true, true, true, HistogramSchema.NORMAL_SCHEMA), + UNKNOWN_DB((short) 2050, "UNKNOWN_DB", TERMINAL, !RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), + UNKNOWN_DB_EXECUTE_QUERY((short) 2051, "UNKNOWN_DB", TERMINAL, RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), - MYSQL((short) 2100, "MYSQL", true, false, true, HistogramSchema.NORMAL_SCHEMA), - MYSQL_EXECUTE_QUERY((short) 2101, "MYSQL", true, true, true, HistogramSchema.NORMAL_SCHEMA), + MYSQL((short) 2100, "MYSQL", TERMINAL, !RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), + MYSQL_EXECUTE_QUERY((short) 2101, "MYSQL", TERMINAL, RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), - MSSQL((short) 2200, "MSSQL", true, false, true, HistogramSchema.NORMAL_SCHEMA), - MSSQL_EXECUTE_QUERY((short) 2201, "MSSQL", true, true, true, HistogramSchema.NORMAL_SCHEMA), + MSSQL((short) 2200, "MSSQL", TERMINAL, !RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), + MSSQL_EXECUTE_QUERY((short) 2201, "MSSQL", TERMINAL, RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), - ORACLE((short) 2300, "ORACLE", true, false, true, HistogramSchema.NORMAL_SCHEMA), - ORACLE_EXECUTE_QUERY((short) 2301, "ORACLE", true, true, true, HistogramSchema.NORMAL_SCHEMA), + ORACLE((short) 2300, "ORACLE", TERMINAL, !RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), + ORACLE_EXECUTE_QUERY((short) 2301, "ORACLE", TERMINAL, RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), - CUBRID((short) 2400, "CUBRID", true, false, true, HistogramSchema.NORMAL_SCHEMA), - CUBRID_EXECUTE_QUERY((short) 2401, "CUBRID", true, true, true, HistogramSchema.NORMAL_SCHEMA), + CUBRID((short) 2400, "CUBRID", TERMINAL, !RECORD_STATISTICS, INCLUDE_DESTINATION, NORMAL_SCHEMA), + CUBRID_EXECUTE_QUERY((short) 2401, "CUBRID", TERMINAL, RECORD_STATISTICS, true, NORMAL_SCHEMA), + /** + * Internal method + */ // FIXME internal method를 여기에 넣기 애매하긴 하나.. 일단 그대로 둠. - INTERNAL_METHOD((short) 5000, "INTERNAL_METHOD", false, false, false, HistogramSchema.NORMAL_SCHEMA), + INTERNAL_METHOD((short) 5000, "INTERNAL_METHOD", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), - SPRING((short) 5050, "SPRING", false, false, false, HistogramSchema.NORMAL_SCHEMA), - SPRING_MVC((short) 5051, "SPRING", false, false, false, HistogramSchema.NORMAL_SCHEMA), + /** + * Spring framework + */ + SPRING((short) 5050, "SPRING", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + SPRING_MVC((short) 5051, "SPRING", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), // FIXME 스프링 관련 코드들 어떻게 가져갈지 정리 필요 - SPRING_ORM_IBATIS((short) 5061, "SPRING", false, false, false, HistogramSchema.NORMAL_SCHEMA), + SPRING_ORM_IBATIS((short) 5061, "SPRING", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), - IBATIS((short) 5500, "IBATIS", false, false, false, HistogramSchema.NORMAL_SCHEMA), - MYBATIS((short) 5510, "MYBATIS", false, false, false, HistogramSchema.NORMAL_SCHEMA), + /** + * xBatis + */ + IBATIS((short) 5500, "IBATIS", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + MYBATIS((short) 5510, "MYBATIS", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), - DBCP((short) 6050, "DBCP", false, false, false, HistogramSchema.NORMAL_SCHEMA), + /** + * DBCP + */ + DBCP((short) 6050, "DBCP", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), - // memory cache 8000 - MEMCACHED((short) 8050, "MEMCACHED", true, true, false, HistogramSchema.FAST_SCHEMA), - MEMCACHED_FUTURE_GET((short) 8051, "MEMCACHED", true, false, false, HistogramSchema.FAST_SCHEMA), - ARCUS((short) 8100, "ARCUS", true, true, true, HistogramSchema.FAST_SCHEMA), - ARCUS_FUTURE_GET((short) 8101, "ARCUS", true, false, true, HistogramSchema.FAST_SCHEMA), + /** + * Memory cache + */ + MEMCACHED((short) 8050, "MEMCACHED", TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, FAST_SCHEMA), + MEMCACHED_FUTURE_GET((short) 8051, "MEMCACHED", TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, FAST_SCHEMA), + ARCUS((short) 8100, "ARCUS", TERMINAL, RECORD_STATISTICS, INCLUDE_DESTINATION, FAST_SCHEMA), + ARCUS_FUTURE_GET((short) 8101, "ARCUS", TERMINAL, !RECORD_STATISTICS, INCLUDE_DESTINATION, FAST_SCHEMA), - // connector류 - HTTP_CLIENT((short) 9050, "HTTP_CLIENT", false, true, false, HistogramSchema.NORMAL_SCHEMA), - JDK_HTTPURLCONNECTOR((short) 9055, "JDK_HTTPCONNECTOR", false, true, false, HistogramSchema.NORMAL_SCHEMA), - NPC_CLIENT((short) 9060, "NPC_CLIENT", false, true, false, HistogramSchema.NORMAL_SCHEMA), - NIMM_CLIENT((short) 9070, "NIMM_CLIENT", false, true, false, HistogramSchema.NORMAL_SCHEMA); + /** + * Connector, Client + */ + HTTP_CLIENT((short) 9050, "HTTP_CLIENT", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + HTTP_CLIENT_INTERNAL((short) 9051, "HTTP_CLIENT", !TERMINAL, !RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + JDK_HTTPURLCONNECTOR((short) 9055, "JDK_HTTPCONNECTOR", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + NPC_CLIENT((short) 9060, "NPC_CLIENT", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA), + NIMM_CLIENT((short) 9070, "NIMM_CLIENT", !TERMINAL, RECORD_STATISTICS, !INCLUDE_DESTINATION, NORMAL_SCHEMA); private final short code; private final String desc; private final boolean terminal; - // TODO rpc 호출에 대해서만 통계정보를 남길 것이니, rpc()로 바꾸는건 어떨지??? + // FIXME rpc 호출에 대해서만 통계정보를 남길 것이니, isRecordRpc()로 바꾸는건 어떨지??? private final boolean recordStatistics; // DetinationId를 포함시켜 api를 출력하지 여부 @@ -125,7 +154,7 @@ public enum ServiceType { return !terminal && !isRpcClient() && code > 1000; } - // TODO rpc 호출에 대해서만 통계정보를 남길 것이니, isRpc()로 바꾸는건 어떨지??? + // FIXME rpc 호출에 대해서만 통계정보를 남길 것이니, isRecordRpc()로 바꾸는건 어떨지??? public boolean isRecordStatistics() { return recordStatistics; } @@ -135,9 +164,9 @@ public enum ServiceType { * * @return */ - public boolean isUnknown() { - return this == ServiceType.UNKNOWN; // || this == ServiceType.UNKNOWN_CLOUD; - } + public boolean isUnknown() { + return this == ServiceType.UNKNOWN; // || this == ServiceType.UNKNOWN_CLOUD; + } /** * 사용자 또는 알 수 없는 호출자인가? diff --git a/src/main/java/com/nhn/pinpoint/common/ServiceTypeConstants.java b/src/main/java/com/nhn/pinpoint/common/ServiceTypeConstants.java new file mode 100644 index 000000000..f3f908aab --- /dev/null +++ b/src/main/java/com/nhn/pinpoint/common/ServiceTypeConstants.java @@ -0,0 +1,12 @@ +package com.nhn.pinpoint.common; + +/** + * + * @author netspider + * + */ +public class ServiceTypeConstants { + public static final boolean TERMINAL = true; + public static final boolean RECORD_STATISTICS = true; + public static final boolean INCLUDE_DESTINATION = true; +}