gw metric
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
|
||||
|
||||
<sqlMap namespace="ObpGwMetric">
|
||||
|
||||
<!-- EAIBZWKDSTCD 코드 목록 조회 (TSEAICM01) -->
|
||||
<statement id="selectAllBzwkCodes" parameterClass="java.util.HashMap" resultClass="java.lang.String">
|
||||
SELECT EAIBZWKDSTCD
|
||||
FROM $schemaId$.TSEAICM01
|
||||
ORDER BY EAIBZWKDSTCD
|
||||
</statement>
|
||||
|
||||
<!-- 로그 집계 결과 매핑 -->
|
||||
<resultMap id="obpGwMetricResult" class="com.eactive.eai.rms.data.entity.onl.apim.obp.ObpGwMetricVO">
|
||||
<result property="apiId" column="API_ID"/>
|
||||
<result property="clientId" column="CLIENT_ID"/>
|
||||
<result property="hostname" column="HOSTNAME"/>
|
||||
<result property="orgId" column="ORG_ID"/>
|
||||
<result property="timeslice" column="TIMESLICE"/>
|
||||
<result property="attemptedCount" column="ATTEMPTED_COUNT"/>
|
||||
<result property="completedCount" column="COMPLETED_COUNT"/>
|
||||
</resultMap>
|
||||
|
||||
<!--
|
||||
EAIBZWKDSTCD별 시간대 로그 집계 (Index Range Scan 활용)
|
||||
|
||||
에러 판단 기준 (DailyBackup-oracle.xml 참고):
|
||||
- 에러 조건: RSPNSERRCDNAME LIKE 'RE%' OR RSPNSERRCDNAME LIKE 'RF%'
|
||||
- 성공 조건: 위 조건의 반대 (NULL 또는 RE%/RF%가 아닌 경우)
|
||||
|
||||
성능 최적화:
|
||||
- PK 인덱스 (EAIBZWKDSTCD, MSGDPSTYMS, EAISVCSERNO, LOGPRCSSSERNO) 활용
|
||||
- EAIBZWKDSTCD를 고정하여 Index Range Scan 보장
|
||||
-->
|
||||
<statement id="selectHourlyMetricsByBzwkCode" parameterClass="java.util.HashMap" resultMap="obpGwMetricResult">
|
||||
SELECT
|
||||
EAISVCNAME AS API_ID,
|
||||
CLIENTID AS CLIENT_ID,
|
||||
EAISEVRINSTNCNAME AS HOSTNAME,
|
||||
ORGID AS ORG_ID,
|
||||
'$timeslice$' AS TIMESLICE,
|
||||
SUM(CASE WHEN LOGPRCSSSERNO = '100' THEN 1 ELSE 0 END) AS ATTEMPTED_COUNT,
|
||||
SUM(CASE WHEN LOGPRCSSSERNO = '400'
|
||||
AND (RSPNSERRCDNAME IS NULL
|
||||
OR (RSPNSERRCDNAME NOT LIKE 'RE%' AND RSPNSERRCDNAME NOT LIKE 'RF%'))
|
||||
THEN 1 ELSE 0 END) AS COMPLETED_COUNT
|
||||
FROM $schemaId$.$tableName$
|
||||
WHERE EAIBZWKDSTCD = #bzwkCode#
|
||||
AND MSGDPSTYMS BETWEEN #startTime# AND #endTime#
|
||||
GROUP BY EAISVCNAME, CLIENTID, EAISEVRINSTNCNAME, ORGID
|
||||
HAVING SUM(CASE WHEN LOGPRCSSSERNO = '100' THEN 1 ELSE 0 END) > 0
|
||||
OR SUM(CASE WHEN LOGPRCSSSERNO = '400' THEN 1 ELSE 0 END) > 0
|
||||
</statement>
|
||||
|
||||
<!-- API 이름 조회 (TSEAIHE01) -->
|
||||
<statement id="selectApiNames" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
EAISVCNAME AS API_ID,
|
||||
EAISVCDESC AS API_NAME
|
||||
FROM $schemaId$.TSEAIHE01
|
||||
WHERE EAISVCNAME IN
|
||||
<iterate property="apiIds" open="(" close=")" conjunction=",">
|
||||
#apiIds[]#
|
||||
</iterate>
|
||||
</statement>
|
||||
|
||||
<!-- URI 조회 (TSEAIHS04) -->
|
||||
<statement id="selectUris" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
EAISVCNAME AS API_ID,
|
||||
BZWKSVCKEYNAME AS URI
|
||||
FROM $schemaId$.TSEAIHS04
|
||||
WHERE EAISVCNAME IN
|
||||
<iterate property="apiIds" open="(" close=")" conjunction=",">
|
||||
#apiIds[]#
|
||||
</iterate>
|
||||
</statement>
|
||||
|
||||
<!-- AppId 조회 (ptl_app_request) - org_id로 조회 -->
|
||||
<statement id="selectAppIdsByOrgIds" parameterClass="java.util.HashMap" resultClass="java.util.HashMap">
|
||||
SELECT
|
||||
ORG_ID,
|
||||
ID AS APP_ID
|
||||
FROM PTL_APP_REQUEST
|
||||
WHERE ORG_ID IN
|
||||
<iterate property="orgIds" open="(" close=")" conjunction=",">
|
||||
#orgIds[]#
|
||||
</iterate>
|
||||
</statement>
|
||||
|
||||
</sqlMap>
|
||||
Reference in New Issue
Block a user