exemONE Java Agent 추가

This commit is contained in:
ByeonJungHun
2024-04-19 13:57:22 +09:00
parent 9cb85e3d11
commit 837512e69a
20 changed files with 818 additions and 1 deletions

View File

View File

@@ -0,0 +1 @@
# ip.port.databasename=alias

View File

@@ -0,0 +1,439 @@
#################### Transport Options ####################
# eg) 127.0.0.1:1314
RECEIVER_ADDR=
# default 1000ms (Min 500, Max 60000)
RECEIVER_RECONNECT_DELAY_TIME=
#################### Runtime Immutable Options ####################
# default 200
TXN_BUFFER_COUNT=
# default 10000
TXN_REGISTRY_SIZE=
# default 200000
MTD_REGISTRY_SIZE=
# default 60KB
MTD_MAX_SIZE=
# default false
USE_RUNTIME_REDEFINE=
# default true
USE_RUNTIME_REDEFINE_HTTP_REMOTE=
# default false
REMOVE_JDBC_ADVICE=
# default false
REMOVE_JDBC_BIND_ADVICE=
# default false
DISABLE_SQL_SID=
# default false
USE_ORACLE_RAC=
# default false
USE_TIBERO_TAC=
# default false
DISABLE_CLASS_SOURCE=
# default false
DISABLE_CLASS_META_CACHING=
#################### Runtime Changeable Options ####################
# eg) thread name pattern (startsWith)
EXCLUDE_THREAD=
# default false
DISABLE_EXCLUDE_THREAD=
# eg) gif, js, css, xml, jpg, jpeg, png, ico, woff, woff2
EXCLUDE_SERVICE=gif, js, css, xml, jpg, jpeg, png, ico, woff, woff2
# eg) gif, js, css
EXCLUDE_SERVICE_AT_END_TIME=
# eg) prefix1, prefix2
EXCLUDE_TXCODE=
# eg) type.Exception
EXCLUDE_EXCEPTION=weblogic.servlet.jsp.AddToMapException
# eg) type.Exception
INCLUDE_EXCEPTION=
# eg) type.Exception
INCLUDE_EXCEPTION_FOR_ALARM=
# default 0
TXN_ELAPSE_TIME=
# ${TXNNAME}:${TXNTIME(ms)},${TXNNAME}:${TXNTIME(ms)}
CURR_TRACE_TXN=*:3000
# txn name 0:default, 1:parameter, 2:param_nouri, 3:attribute
TRX_NAME_TYPE=
# txn key
TRX_NAME_KEY=
# default false
TRX_NAME_USE_ENCODING=
# default ISO-8859-1
TRX_NAME_ENCODING_FROM=
# default UTF-8
TRX_NAME_ENCODING_TO=
# default UTF-8
REQ_SET_ENCODING_TO=
# default false
USE_TRX_NAME_WHEN_LEAVE=
# default false
ENABLE_TRACE_JSP_CLASS=
# eg) replace number patterns [0-9]+
REPLACE_URL_PATTERNS=
# default 0
TXN_NAME_SET_INDEX=
# default 0
TXN_NAME_SET_INDEX2=
# default 0
TXN_NAME_APPEND_INDEX=
# txn login name 0:default, 1:attribute, 2:cookie
TRX_LOGIN_TYPE=
# txn login key
TRX_LOGIN_KEY=
# default false
ENABLE_ENCRYPT_LOGIN_NAME=
# default empty string
TRX_IP_KEY=
# txn error 0: default, 1: response(500), 2: response(400)
TRX_ERR_TYPE=
# default empty string
TRX_ERR_STATUS=
# 0: none(default), 1: error thread dump, 2: all thread dump
TRX_ERR_STATUS_TYPE=
# default true
DISABLE_WEBID=
# default false
USE_SESSIONID_FOR_WEBID=
# default false
ENABLE_WEB_ID_WHEN_NO_USERAGENT=
# default false
ENABLE_UPDATE_WEBID_COOKIE_TIME=
# default false
TRACE_THREAD_NAME=
# default false
DISABLE_ROOT_METHOD=
# default true
TRACE_DBPOOL_NAME=
# default false
USE_METHOD_SEQ=
# default false
METHOD_DEBUG=
# default 0
MTD_ELAPSE_TIME=
# default 2500
MTD_BUFFER_SIZE=
# default 100
MTD_EXCEPTION_BUFFER_SIZE=
# default 100
MTD_STACK_BUFFER_SIZE=
# default 128
MTD_ERROR_LIMIT=256
# default 100000
MTD_LIMIT=
# default false
MTD_PARAM_TRACE=
# default false
RMI_GET_PARAM=
# default 400, max 400
ACTIVE_TOP_COUNT=
# default 0ms
ACTIVE_ELAPSE_TIME=
# default false
USE_ETOE_ONLY=
# default true
RT_RMI=
# default ext
RT_RMI_VENDOR=
# default 3: normal, 1: pkey, 2: ckey, 3: pckey
RT_RMI_TYPE=
# default 0ms
RT_RMI_ELAPSE_TIME=
# default 0x00 eg) FILE_OPEN,FILE_CLOSE
RT_FILE=
# default 0x10 eg) SOCKET_OPEN,SOCKET_CLOSE
RT_SOCKET=
# default false
USE_MTD_EXT=
# default false
USE_XRT_HANDLE=
# default false
USE_INACTIVE_SOCKET_RT=
# default false
USE_TRACE_COLLECTION_LEAK=
# default 1000
TRACE_COLLECTION_SIZE=
# default 10000
TRACE_COLLECTION_STACKTRACE_SIZE=
# default 600000ms(10minutes)
TRACE_COLLECTION_REPORT_PERIOD=
# default true
TRACE_JDBC=
# default false
DISABLE_SQL=
# default false
DISABLE_SQL_BIND=
# default false
DISABLE_SQL_FETCH=
# default true
DISABLE_JDBC_ALARM=
# default false
DISABLE_JDBC_CONNECTION_FAIL=
# default 20
LIMIT_SQL=
# default false
USE_SQL_SEQ=
# default 2000, max MTD_BUFFER_SIZE
TXN_SQL_LIMIT_COUNT=
# default 0(ms)
SQL_DETAIL_ELAPSE_LIMIT=
# default 60927
SQL_TEXT_BUFFER_SIZE=
# default false
USE_LONG_SQL=
# default true
USE_SQL_ELLIPSIS=
# default false
COMPRESS_SQL=
# default false
CONVERT_SQL_ASCII_TO_KSC5601=
# default null
CONVERT_SQL_ASCII_TO=
# default null
CONVERT_SQL_TEXT_ENCODING_FROM=
# default null
CONVERT_SQL_TEXT_ENCODING_TO=
# default 2048, max 8192
BIND_SIZE=
# default 1024
MONGO_BIND_SIZE=
# default 50ms
BIND_ELAPSE_TIME=
# default false
ENABLE_ENCRYPT_SQL_BIND=
# default false
TRACE_FETCH_METHOD=
# default false
TRACE_MONGO_FETCH=
# default 0
THROW_TXN_FETCH_COUNT=
# default 0
THROW_SQL_FETCH_COUNT=
# eg) gif, js, css
THROW_EXCLUDE_SERVICE=
# default 200
CONNECTION_CLASS_LIMIT=
# default 2000
CONNECTION_LIMIT=
# default false
GET_SID_WHEN_STMT=
# default 600000ms(10minutes)
GET_SID_WHEN_STMT_LIMIT=
# default false
CHANGE_DB2_SID_QUERY=
# default false
USE_TRACE_ORACLE=
# default false
USE_TRACE_ORACLE_CLEAR_PING=
# default false
USE_TRACE_TIBERO=
# default true
USE_JMX=
# default false
TRACE_METHOD_MEMORY=
# default false
TRACE_METHOD_CPUTIME=
# default false
TXN_MEMORY=
# default false
TXN_CPU_TIME=
# default false
TXN_CPU_CORE=
# error.jsp
REDIRECT_URL=
# default empty string
PLC_MESSAGE=
# default empty string
RUM_MESSAGE=
# default 3600
RUM_SCRIPT_INJECTION_CLIENT_RESET_SECOND=
# default -1
RUM_SCRIPT_INJECTION_CLIENT_COUNT=
# default false
USE_TRACE_CLIENT_TIME=
# default empty string
TRACE_CLIENT_TIME_POSTFIX=
# eg) 192.168.0.10:8082
TRACE_CLIENT_TIME_ADDR=
# default false
RESP_HTML_SCRIPT=
# default 50ms
RESP_HTML_ELAPSE_TIME=
# eg) .*\.jsp
RESP_HTML_SCRIPT_TARGET=.*\.jsp
# default 1,2,3, 1: Environment, 2: InetAddress, 3: Command
HOSTNAME_COLLECT_TYPE_PRIORITY=
# default 50
ACTIVE_STACK_MAX_LINE=
# default 10
ACTIVE_STACK_INTERVAL_ELAPSE=
# default 0sec
APP_SLEEP=
# default false
ENABLE_BATCH_MODE=
# default true
ENABLE_RELOAD_ADVICE=
# ${ALERT}:${RESTART}:${LEVEL},${ALERT}:${RESTART}:${LEVEL}
LOG_ALERT=1:java.lang.OutOfMemoryError,2:container {0} booted
# default false
RESP_HEADER_TID=
# default false
TRACE_SIMPLE_METHOD=
# default false
USE_METHOD_LIST=
# default false
USE_JAR_LIST=
# default log eg) log or AbsolutePath
LOG_PATH=
# default -1
LOG_MAX_COUNT=
# default false
EXEM_RUN_ON_CONTAINER=
# default empty string
EXEM_GROUP_ID=
# default 0x000000000 eg) RMI,HTML,RESPONSE,CLASS,GC,UDP,TCP,TRACE,DEBUG
DEBUG=0x000000000

View File

@@ -0,0 +1 @@
#D:\dump1.txt

View File

@@ -0,0 +1,14 @@
### 작성방법
# 패키지 및 클래스 구분자는 slash(/)이며 클래스와 메소드는 dot(.)으로 구분한다.
# 강제포함, 제외, 포함 순으로 높은 우선순위를 갖는다.
# 강제포함은 exclamation mark(!), 제외는 dash(-)를 접두사로 붙여 표기한다.
# 와일드카드 문자(*)를 포함해 startWith, endWith 연산을 수행할 수 있다.
# 로드된 전체 클래스를 대상으로한 설정은 안정성 문제로 인해 동적 적용되지 않는다.
### 작성예시
# com/inzent.*
# -com/inzent/igate.*
# !com/inzent/igate/util.*
!javax/servlet/http/HttpServlet.*

View File

23
exem/java/cfg/plc.list Normal file
View File

@@ -0,0 +1,23 @@
########################################### PLC 기능 ###########################################
### 작성방법
# [숫자] : 제어 기준 수치(기준 트랜잭션수)
# 접두사 ^(caret) : 차단할 트랜잭션명
# 접두사 .*(dot asterisk) : 와일드 카드
# 제어 기준은 여러 개를 입력할 수 있으며, 그 기준은 이 파일의 위에서 아래순으로 우선 적용된다.
### 작성예시
# [200]
# ^.*/select
#
# [100]
# ^.*oracle/select
# .*postgres/select
#
# [50]
# ^.*postgres/select
#
# 액티브 트랜잭션 수가 200 이상이면 /select로 끝나는 모든 트랜잭션을 차단한다.
# 액티브 트랜잭션 수가 100 이상이면 oracle/select로 끝나는 모든 트랜잭션을 차단한다.
# 액티브 트랜잭션 수가 100 이상이면 postgres/select로 끝나는 트랜잭션은 허용한다.
# 액티브 트랜잭션 수가 50 이상이면 postgres/select로 끝나는 모든 트랜잭션을 차단한다.

85
exem/java/cfg/x.advice Normal file
View File

@@ -0,0 +1,85 @@
appService@com.exem.weave.servlet.XmAPPService
httpCall@com.exem.weave.io.XmHttpCall
httpCallHeader@com.exem.weave.io.XmHttpCallHeader
httpRequest@com.exem.weave.io.XmHttpRequest
xCall@com.exem.weave.io.XmXCall
xInbound@com.exem.weave.io.XmXInbound
xOutbound@com.exem.weave.io.XmXOutbound
xReply@com.exem.weave.io.XmXReply
service@com.exem.weave.servlet.XmService
kepco@com.exem.weave.servlet.XmTxnKepco
########## APPLICATION ##########
#appService=
#websphere 8.5 browser response time
#service=com/ibm/ws/webcontainer/filter/WebAppFilterManager.invokeFilters(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lcom/ibm/wsspi/webcontainer/servlet/IServletContext;Lcom/ibm/wsspi/webcontainer/RequestProcessor;Ljava/util/EnumSet;)Z
## Spring Cloud Gateway ##
#appService=org/springframework/cloud/gateway/filter/NettyRoutingFilter.filter(Lorg/springframework/web/server/ServerWebExchange;Lorg/springframework/cloud/gateway/filter/GatewayFilterChain;)Lreactor/core/publisher/Mono;
########## HTTP ##########
httpCall=weblogic/net/http/HttpClient.parseHTTP(Lweblogic/net/http/MessageHeader;)V
httpRequest=weblogic/net/http/HttpURLConnection.writeRequests()V
httpCall=org/apache/commons/httpclient/HttpClient.executeMethod(Lorg/apache/commons/httpclient/HostConfiguration;Lorg/apache/commons/httpclient/HttpMethod;Lorg/apache/commons/httpclient/HttpState;)I
httpCall=org/apache/http/impl/client/InternalHttpClient.doExecute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/methods/CloseableHttpResponse;
httpCall=org/apache/http/impl/client/MinimalHttpClient.doExecute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/methods/CloseableHttpResponse;
httpCall=org/apache/commons/httpclient/HttpMethodBase.execute(Lorg/apache/commons/httpclient/HttpState;Lorg/apache/commons/httpclient/HttpConnection;)I
## soap ##
httpCall=org/apache/soap/util/net/HTTPUtils.post(Ljava/net/URL;Lorg/apache/soap/transport/TransportMessage;ILjava/lang/String;II)Lorg/apache/soap/transport/TransportMessage;
## soap-2.3.jar higher ##
#httpCall=org/apache/soap/util/net/HTTPUtils.post(Ljava/net/URL;Lorg/apache/soap/transport/TransportMessage;ILjava/lang/String;IILjava/lang/Boolean;)Lorg/apache/soap/transport/TransportMessage;
## apache axis ##
httpCall=org/apache/axis/client/Call.setRequestMessage(Lorg/apache/axis/Message;)V
## reactor netty / jetty (webflux) ##
httpCall=reactor/netty/http/client/HttpClientConnect.connect()Lreactor/core/publisher/Mono;
httpCall=org/eclipse/jetty/client/HttpRequest.send(Lorg/eclipse/jetty/client/api/Response$CompleteListener;)V
## Spring AsyncRestTemplate ##
httpCall=org/springframework/web/client/AsyncRestTemplate$AsyncRequestCallbackAdapter.doWithRequest(Lorg/springframework/http/client/AsyncClientHttpRequest;)V
## apache httpasyncclient ##
httpCall=org/apache/http/impl/nio/client/CloseableHttpAsyncClient.execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/concurrent/FutureCallback;)Ljava/util/concurrent/Future;
httpCall=org/apache/http/impl/nio/client/CloseableHttpAsyncClient.execute(Lorg/apache/http/nio/protocol/HttpAsyncRequestProducer;Lorg/apache/http/nio/protocol/HttpAsyncResponseConsumer;Lorg/apache/http/concurrent/FutureCallback;)Ljava/util/concurrent/Future;
## okhttp ##
httpCallHeader=okhttp3/Request$Builder.build()Lokhttp3/Request;
httpCall=okhttp3/RealCall.execute()Lokhttp3/Response;
httpCall=okhttp3/RealCall.enqueue(Lokhttp3/Callback;)V
## spring cloud zuul (restclient) ##
httpCallHeader=com/netflix/client/http/HttpRequest$Builder.build()Lcom/netflix/client/http/HttpRequest;
httpCall=org/apache/http/impl/client/AbstractHttpClient.doExecute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/client/methods/CloseableHttpResponse;
########## TMAX ##########
xCall=tmax/webt/WebtRemoteService.tpcall(Ljava/lang/String;Ltmax/webt/WebtBuffer;Ltmax/webt/WebtAttribute;)Ltmax/webt/WebtBuffer;
xCall=tmax/webt/WebtRemoteService.tpacall(Ljava/lang/String;Ltmax/webt/WebtBuffer;Ltmax/webt/WebtAttribute;Ltmax/webt/WebtMessageHandler;)I
#xOutbound=tmax/webt/io/WebtOutputStream.getSerializedPacket(Ltmax/webt/WebtBuffer;)[B
#xReply=tmax/webt/WebtRemoteService.tpgetrply(ILtmax/webt/WebtAttribute;)Ltmax/webt/WebtBuffer;
########## TUXEDO ##########
xCall=weblogic/wtc/gwt/TuxedoConnection.tpcall(Ljava/lang/String;Lweblogic/wtc/jatmi/TypedBuffer;I)Lweblogic/wtc/jatmi/Reply;
xCall=weblogic/wtc/gwt/TuxedoConnection.tpacall(Ljava/lang/String;Lweblogic/wtc/jatmi/TypedBuffer;ILweblogic/wtc/jatmi/TpacallAsyncReply;)Lweblogic/wtc/jatmi/CallDescriptor;
#xOutbound=weblogic/wtc/jatmi/TuxedoArrayOutputStream.getByteArrayReference()[B
#xReply=weblogic/wtc/gwt/TuxedoConnection.tpgetrply(Lweblogic/wtc/jatmi/CallDescriptor;I)Lweblogic/wtc/jatmi/Reply;
########## SAP ##########
xCall=com/sap/conn/jco/rt/AbapFunction.execute(Lcom/sap/conn/jco/JCoDestination;)V
xCall=com/sap/conn/jco/rt/AbapFunction.execute(Lcom/sap/conn/jco/JCoDestination;Ljava/lang/String;)V
xCall=com/sap/conn/jco/rt/AbapFunction.execute(Lcom/sap/conn/jco/JCoDestination;Ljava/lang/String;Ljava/lang/String;)V
#xOutbound=com/sap/conn/rfc/driver/CpicDriver.write([BIZ)I
#xReply=com/sap/conn/rfc/engine/RfcIoOpenCntl.RfcReceive([Lcom/sap/conn/rfc/api/IRfcParameter;[Lcom/sap/conn/rfc/api/IRfcParameter;[Lcom/sap/conn/rfc/api/IRfcTable;Lcom/sap/conn/jco/JCoRepository;)V
########## RabbitMQ ##########
rabbitMQPublish@com.exem.weave.io.XmRabbitMQPublish
rabbitMQPublish=com/rabbitmq/client/impl/AMQChannel.transmit(Lcom/rabbitmq/client/impl/AMQCommand;)V
########## Kafka ##########
kafkaProduce@com.exem.weave.io.XmKafkaProduce
kafkaProduce=org/apache/kafka/clients/producer/KafkaProducer.doSend(Lorg/apache/kafka/clients/producer/ProducerRecord;Lorg/apache/kafka/clients/producer/Callback;)Ljava/util/concurrent/Future;
#appService=org/springframework/kafka/listener/adapter/RecordMessagingMessageListenerAdapter.onMessage(Lorg/apache/kafka/clients/consumer/ConsumerRecord;Lorg/springframework/kafka/support/Acknowledgment;Lorg/apache/kafka/clients/consumer/Consumer;)V
appService=org/apache/kafka/clients/consumer/internals/Fetcher.parseRecord(Lorg/apache/kafka/common/TopicPartition;Lorg/apache/kafka/common/record/RecordBatch;Lorg/apache/kafka/common/record/Record;)Lorg/apache/kafka/clients/consumer/ConsumerRecord;
#appService=appService=org/apache/kafka/clients/consumer/internals/CompletedFetch.parseRecord(Lorg/apache/kafka/clients/consumer/internals/Deserializers;Lorg/apache/kafka/common/TopicPartition;Ljava/util/Optional;Lorg/apache/kafka/common/record/TimestampType;Lorg/apache/kafka/common/record/Record;)Lorg/apache/kafka/clients/consumer/ConsumerRecord;
########## Camel ##########
camelSedaCall@com.exem.weave.io.XmCamelSedaProduce
camelSedaCall=org/apache/camel/component/seda/SedaProducer.process(Lorg/apache/camel/Exchange;Lorg/apache/camel/AsyncCallback;)Z
#appService=org/apache/camel/support/processor/DelegateSyncProcessor.process(Lorg/apache/camel/Exchange;Lorg/apache/camel/AsyncCallback;)Z
appService=org/apache/camel/processor/SendProcessor.process(Lorg/apache/camel/Exchange;Lorg/apache/camel/AsyncCallback;)Z