최초 업로드
This commit is contained in:
33
.gitlab-ci.yml
Normal file
33
.gitlab-ci.yml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
stages:
|
||||||
|
- build
|
||||||
|
- push
|
||||||
|
|
||||||
|
build:
|
||||||
|
image: docker:cli
|
||||||
|
stage: build
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
variables:
|
||||||
|
IMAGE_NAME: $REGISTRT/$APP:$VER
|
||||||
|
script:
|
||||||
|
- docker build --pull -t "$IMAGE_NAME" .
|
||||||
|
except:
|
||||||
|
variables:
|
||||||
|
- $CI_COMMIT_MESSAGE =~ /CI 수정/
|
||||||
|
- $CI_COMMIT_MESSAGE =~ /최초 업로드/
|
||||||
|
|
||||||
|
push:
|
||||||
|
image: docker:cli
|
||||||
|
stage: push
|
||||||
|
services:
|
||||||
|
- docker:dind
|
||||||
|
variables:
|
||||||
|
IMAGE_NAME: $REGISTRT/$APP:$VER
|
||||||
|
before_script:
|
||||||
|
- docker login -u "$REGSITRY_USER" -p "$REGSITRY_PASSWORD" $REGISTRT
|
||||||
|
script:
|
||||||
|
- docker push "$IMAGE_NAME"
|
||||||
|
except:
|
||||||
|
variables:
|
||||||
|
- $CI_COMMIT_MESSAGE =~ /CI 수정/
|
||||||
|
- $CI_COMMIT_MESSAGE =~ /최초 업로드/
|
||||||
6
Dockerfile
Normal file
6
Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
FROM alpine:3.20.2
|
||||||
|
|
||||||
|
LABEL version="1.0.17"
|
||||||
|
LABEL agent_name="java-agent"
|
||||||
|
|
||||||
|
COPY ./java ./mnt/
|
||||||
0
java/cfg/agent/cfg.reload
Normal file
0
java/cfg/agent/cfg.reload
Normal file
1
java/cfg/agent/db.alias
Normal file
1
java/cfg/agent/db.alias
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# ip.port.databasename=alias
|
||||||
412
java/cfg/agent/java.conf
Normal file
412
java/cfg/agent/java.conf
Normal file
@@ -0,0 +1,412 @@
|
|||||||
|
#################### 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 256
|
||||||
|
MTD_STACK_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 256
|
||||||
|
MTD_ERROR_LIMIT=
|
||||||
|
|
||||||
|
# default 100000
|
||||||
|
MTD_LIMIT=
|
||||||
|
|
||||||
|
# default false
|
||||||
|
MTD_PARAM_TRACE=
|
||||||
|
|
||||||
|
# default false
|
||||||
|
RMI_GET_PARAM=
|
||||||
|
|
||||||
|
# default 0ms
|
||||||
|
ACTIVE_ELAPSE_TIME=
|
||||||
|
|
||||||
|
# default 200
|
||||||
|
ACTIVE_MAX_COUNT=
|
||||||
|
|
||||||
|
# default false
|
||||||
|
USE_ETOE_ONLY=
|
||||||
|
|
||||||
|
# default true
|
||||||
|
RT_RMI=
|
||||||
|
|
||||||
|
# default ext
|
||||||
|
RT_RMI_VENDOR=
|
||||||
|
|
||||||
|
# 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 20
|
||||||
|
LIMIT_SQL=
|
||||||
|
|
||||||
|
# default false
|
||||||
|
USE_SQL_SEQ=
|
||||||
|
|
||||||
|
# default 0(ms)
|
||||||
|
SQL_DETAIL_ELAPSE_LIMIT=
|
||||||
|
|
||||||
|
# default 20000
|
||||||
|
SQL_CACHE_MAX_COUNT=
|
||||||
|
|
||||||
|
# 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 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 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 60KB
|
||||||
|
MTD_MAX_SIZE=
|
||||||
|
|
||||||
|
# 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
|
||||||
1
java/cfg/file.history
Normal file
1
java/cfg/file.history
Normal file
@@ -0,0 +1 @@
|
|||||||
|
#D:\dump1.txt
|
||||||
14
java/cfg/local.advice
Normal file
14
java/cfg/local.advice
Normal 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.*
|
||||||
0
java/cfg/param.runtime
Normal file
0
java/cfg/param.runtime
Normal file
23
java/cfg/plc.list
Normal file
23
java/cfg/plc.list
Normal 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로 끝나는 모든 트랜잭션을 차단한다.
|
||||||
96
java/cfg/x.advice
Normal file
96
java/cfg/x.advice
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
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;
|
||||||
|
kafkaAppend@com.exem.weave.io.XmKafkaRecordAppend
|
||||||
|
kafkaAppend=org/apache/kafka/clients/producer/internals/RecordAccumulator.append(Ljava/lang/String;IJ[B[B[Lorg/apache/kafka/common/header/Header;Lorg/apache/kafka/clients/producer/internals/RecordAccumulator$AppendCallbacks;JZJLorg/apache/kafka/common/Cluster;)Lorg/apache/kafka/clients/producer/internals/RecordAccumulator$RecordAppendResult;
|
||||||
|
#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
|
||||||
|
|
||||||
|
camelProduce@com.exem.weave.io.XmCamelProduce
|
||||||
|
camelProduce=org/apache/camel/component/seda/SedaProducer.prepareCopy(Lorg/apache/camel/Exchange;Z)Lorg/apache/camel/Exchange;
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
########## Redis ##########
|
||||||
|
redisCall@com.exem.weave.io.XmRedisCommand
|
||||||
|
redisCall=io/lettuce/core/RedisChannelHandler.dispatch(Lio/lettuce/core/protocol/RedisCommand;)Lio/lettuce/core/protocol/RedisCommand;
|
||||||
|
redisCall=redis/clients/jedis/Connection.sendCommand(Lredis/clients/jedis/CommandArguments;)V
|
||||||
147
java/data/exem_api_em.js
Normal file
147
java/data/exem_api_em.js
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
|
||||||
|
(function () {
|
||||||
|
var _XM_TID = '%{XM_TID}';
|
||||||
|
var _XM_TRACE_ELAPSE = '%{XM_TRACE_ELAPSE}';
|
||||||
|
var _XM_CLIENT_API = '_XM_CLIENT_API%{XM_CLIENT_API}';
|
||||||
|
var _XM_CLIENT_ADDR = '%{XM_CLIENT_ADDR}';
|
||||||
|
var _XM_TID_HEADER = 'X-Xm-Tid';
|
||||||
|
var _XM_TRACE_ELAPSE_HEADER = 'X-Xm-ElapseTime';
|
||||||
|
|
||||||
|
|
||||||
|
var openProxied = window.XMLHttpRequest.prototype.open;
|
||||||
|
window.XMLHttpRequest.prototype.open = function () {
|
||||||
|
if (arguments[1].indexOf(_XM_CLIENT_API) == -1) {
|
||||||
|
if (document.removeEventListener) {
|
||||||
|
this.removeEventListener("loadstart", _xm_loadstart);
|
||||||
|
this.removeEventListener("loadend", _xm_loadend);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.detachEvent("loadstart", _xm_loadstart);
|
||||||
|
this.detachEvent("loadend", _xm_loadend);
|
||||||
|
}
|
||||||
|
if (this.addEventListener) {
|
||||||
|
this.addEventListener("loadstart", _xm_loadstart);
|
||||||
|
this.addEventListener("loadend", _xm_loadend);
|
||||||
|
}
|
||||||
|
else if (this.attachEvent) {
|
||||||
|
this.attachEvent("onloadstart", _xm_loadstart);
|
||||||
|
this.attachEvent("onloadend", _xm_loadend);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return openProxied.apply(this, [].slice.call(arguments));
|
||||||
|
};
|
||||||
|
|
||||||
|
var _xm_loadstart = function () {
|
||||||
|
var eventProxied = this.onreadystatechange;
|
||||||
|
this.onreadystatechange = function () {
|
||||||
|
if (this.readyState === XMLHttpRequest.DONE) {
|
||||||
|
this._xm_clientinfo.es = Date.now();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (eventProxied != null && typeof eventProxied != 'undefined') {
|
||||||
|
eventProxied.apply(this, [].slice.call(arguments));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.readyState === XMLHttpRequest.DONE) {
|
||||||
|
this._xm_clientinfo.ee = Date.now();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this._xm_clientinfo = __xm_create_clientinfo();
|
||||||
|
this._xm_clientinfo.ss = Date.now();
|
||||||
|
this._xm_clientinfo.se = Date.now();
|
||||||
|
};
|
||||||
|
|
||||||
|
var _xm_loadend = function () {
|
||||||
|
if (typeof this._xm_clientinfo == 'undefined') return;
|
||||||
|
if (this._xm_clientinfo.es == 0) {
|
||||||
|
this._xm_clientinfo.es = Date.now();
|
||||||
|
this._xm_clientinfo.ee = Date.now();
|
||||||
|
}
|
||||||
|
this._xm_clientinfo.tid = this.getResponseHeader(_XM_TID_HEADER);
|
||||||
|
var traceElapseTime = this.getResponseHeader(_XM_TRACE_ELAPSE_HEADER);
|
||||||
|
|
||||||
|
if (typeof traceElapseTime == 'undefined' || typeof this._xm_clientinfo.tid == 'undefined') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (traceElapseTime > this._xm_clientinfo.ee - this._xm_clientinfo.ss) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _xm_clientinfo = this._xm_clientinfo;
|
||||||
|
__xm_send_post(_xm_clientinfo);
|
||||||
|
};
|
||||||
|
|
||||||
|
function __xm_create_clientinfo() {
|
||||||
|
var clientinfo = {};
|
||||||
|
clientinfo.tid = 0;
|
||||||
|
clientinfo.ss = 0;
|
||||||
|
clientinfo.se = 0;
|
||||||
|
clientinfo.es = 0;
|
||||||
|
clientinfo.ee = 0;
|
||||||
|
return clientinfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
function __xm_send_post(clientinfo) {
|
||||||
|
try{
|
||||||
|
var queryParameters = 'tid=' + clientinfo.tid + '&ss=' + clientinfo.ss + "&se=" + clientinfo.se;
|
||||||
|
queryParameters += '&es=' + clientinfo.es + "&ee=" + clientinfo.ee;
|
||||||
|
|
||||||
|
var xmlhttp;
|
||||||
|
if (window.XMLHttpRequest) {
|
||||||
|
xmlhttp = new XMLHttpRequest();
|
||||||
|
} else {
|
||||||
|
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(_XM_CLIENT_ADDR == "") {
|
||||||
|
xmlhttp.open('GET', './'+_XM_CLIENT_API+'?' + queryParameters, true);
|
||||||
|
}else{
|
||||||
|
xmlhttp.open('GET', 'http://' + _XM_CLIENT_ADDR + '/' + _XM_CLIENT_API + '?' + queryParameters, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlhttp.send(null);
|
||||||
|
|
||||||
|
if (true) {
|
||||||
|
var sendElapseTime = clientinfo.se - clientinfo.ss;
|
||||||
|
var recvElapseTime = clientinfo.ee - clientinfo.es;
|
||||||
|
var serverElapseTime = clientinfo.es - clientinfo.se;
|
||||||
|
|
||||||
|
console.log('__xm_send_post serverElapseTime=' + serverElapseTime + ', sendElapseTime=' + sendElapseTime + ', recvElapseTime=' + recvElapseTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var _xm_window_load = function () {
|
||||||
|
//return;
|
||||||
|
setTimeout(function () {
|
||||||
|
var timing = window.performance.timing;
|
||||||
|
var clientinfo = __xm_create_clientinfo();
|
||||||
|
clientinfo.ss = timing.navigationStart;
|
||||||
|
clientinfo.se = timing.connectEnd;
|
||||||
|
clientinfo.es = timing.responseEnd;
|
||||||
|
clientinfo.ee = timing.loadEventEnd;
|
||||||
|
clientinfo.tid = _XM_TID;
|
||||||
|
|
||||||
|
if (_XM_TRACE_ELAPSE > clientinfo.ee - clientinfo.ss) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
__xm_send_post(clientinfo);
|
||||||
|
}, 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!window.performance || !window.performance.timing) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.addEventListener) {
|
||||||
|
this.addEventListener("load", _xm_window_load);
|
||||||
|
}
|
||||||
|
else if (this.attachEvent) {
|
||||||
|
this.attachEvent("onload", _xm_window_load);
|
||||||
|
}
|
||||||
|
})();
|
||||||
30
java/data/xm_plc_message.html
Normal file
30
java/data/xm_plc_message.html
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Message (InterMax)</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
padding: 100px;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 32pt;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#messagediv {
|
||||||
|
font-size:14pt;
|
||||||
|
color:red;
|
||||||
|
text-align: center;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid black;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<!-- <h1>${title}</h1> -->
|
||||||
|
<div id="messagediv">%{XM_PLC_MESSAGE}</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
28
java/data/xm_rum_message.html
Normal file
28
java/data/xm_rum_message.html
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Message (InterMax)</title>
|
||||||
|
<style type="text/css">
|
||||||
|
body {
|
||||||
|
padding: 100px;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 32pt;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#messagediv {
|
||||||
|
font-size:14pt;
|
||||||
|
color:red;
|
||||||
|
text-align: center;
|
||||||
|
padding: 20px;
|
||||||
|
border: 1px solid black;
|
||||||
|
margin-top: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>InterMax Rum Message</h1>
|
||||||
|
<div id="messagediv">%{XM_RUM_MESSAGE}</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
java/lib/exem-java-agent.jar
Normal file
BIN
java/lib/exem-java-agent.jar
Normal file
Binary file not shown.
BIN
java/lib/exem-java-common.jar
Normal file
BIN
java/lib/exem-java-common.jar
Normal file
Binary file not shown.
BIN
java/lib/exem-java-ext.jar
Normal file
BIN
java/lib/exem-java-ext.jar
Normal file
Binary file not shown.
BIN
java/lib/exem-java-pool.jar
Normal file
BIN
java/lib/exem-java-pool.jar
Normal file
Binary file not shown.
29
java/license/asm-LICENSE.txt
Normal file
29
java/license/asm-LICENSE.txt
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
ASM is released under the following 3-Clause BSD License:
|
||||||
|
|
||||||
|
ASM: a very small and fast Java bytecode manipulation framework
|
||||||
|
Copyright (c) 2000-2011 INRIA, France Telecom
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
3. Neither the name of the copyright holders nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
7
java/pkg_version.bat
Normal file
7
java/pkg_version.bat
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
set PRODUCT_NAME=exemONE
|
||||||
|
set MODULE_NAME=exem-java-agent
|
||||||
|
set VERSION=1.0.17
|
||||||
|
|
||||||
|
echo %PRODUCT_NAME% %MODULE_NAME% ver %VERSION%
|
||||||
7
java/pkg_version.sh
Normal file
7
java/pkg_version.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
PRODUCT_NAME="exemONE"
|
||||||
|
MODULE_NAME="exem-java-agent"
|
||||||
|
VERSION="1.0.17"
|
||||||
|
|
||||||
|
echo ${PRODUCT_NAME} ${MODULE_NAME} ver ${VERSION}
|
||||||
Reference in New Issue
Block a user