mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-18 01:06:03 +10:00
[유치수] [profiler-36] ClosableAsyncHttpClient 인터셉터 추가.
git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-commons/trunk@3967 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 사용자 또는 알 수 없는 호출자인가?
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user