From 1f7166502f0652c01c476fbb71b68edebb062440 Mon Sep 17 00:00:00 2001 From: eastargh Date: Fri, 15 May 2026 14:53:52 +0900 Subject: [PATCH] =?UTF-8?q?API=ED=86=B5=EA=B3=84=20=EC=97=85=EB=AC=B4?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsp/onl/kjb/statistics/apiStatsDayMan.jsp | 20 ++++++---------- .../onl/kjb/statistics/apiStatsHourMan.jsp | 24 +++++++------------ .../onl/kjb/statistics/apiStatsMinuteMan.jsp | 24 +++++++------------ .../onl/kjb/statistics/apiStatsMonthMan.jsp | 19 ++++++--------- .../onl/kjb/statistics/apiStatsYearMan.jsp | 19 ++++++--------- .../kjb/statistics/ApiStatsMinuteService.java | 8 +++---- .../djb/job/ApiStatsHourlyAggregationJob.java | 14 +++++------ .../service/ApiStatsExcelExportService.java | 13 ++++------ .../ext/kjb/statistics/ui/ApiStatsUI.java | 6 ----- 9 files changed, 53 insertions(+), 94 deletions(-) diff --git a/WebContent/jsp/onl/kjb/statistics/apiStatsDayMan.jsp b/WebContent/jsp/onl/kjb/statistics/apiStatsDayMan.jsp index 00b8f1d..8804eb8 100644 --- a/WebContent/jsp/onl/kjb/statistics/apiStatsDayMan.jsp +++ b/WebContent/jsp/onl/kjb/statistics/apiStatsDayMan.jsp @@ -71,7 +71,7 @@ legend: { orient: 'horizontal', bottom: 10, - data: ['성공', 'Timeout', '시스템오류', '업무오류'] + data: ['성공', 'Timeout', '시스템오류'] }, series: [{ name: '총건수', @@ -96,8 +96,7 @@ data: [ { value: 0, name: '성공', itemStyle: { color: '#91CC75' } }, { value: 0, name: 'Timeout', itemStyle: { color: '#FAC858' } }, - { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } }, - { value: 0, name: '업무오류', itemStyle: { color: '#FC8452' } } + { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } } ] }], graphic: [{ @@ -132,8 +131,7 @@ series: [ { name: '성공', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#5470C6' }, data: [] }, { name: 'Timeout', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FAC858' }, data: [] }, - { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] }, - { name: '업무오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FC8452' }, data: [] } + { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] } ] }; @@ -191,8 +189,7 @@ data: [ { value: totalSuccess, name: '성공' }, { value: totalTimeout, name: 'Timeout' }, - { value: totalSystemErr, name: '시스템오류' }, - { value: totalBizErr, name: '업무오류' } + { value: totalSystemErr, name: '시스템오류' } ] }], graphic: [{ @@ -209,8 +206,7 @@ series: [ { data: successData }, { data: timeoutData }, - { data: systemErrData }, - { data: bizErrData } + { data: systemErrData } ] }); @@ -432,7 +428,7 @@ postData: gridPostData, colNames: [ 'API명', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -441,7 +437,6 @@ { name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false } @@ -473,7 +468,7 @@ colNames: [ '통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID', 'Inbound Adapter', 'Outbound Adapter', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -488,7 +483,6 @@ { name: 'successCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false } diff --git a/WebContent/jsp/onl/kjb/statistics/apiStatsHourMan.jsp b/WebContent/jsp/onl/kjb/statistics/apiStatsHourMan.jsp index f66730b..f1d315f 100644 --- a/WebContent/jsp/onl/kjb/statistics/apiStatsHourMan.jsp +++ b/WebContent/jsp/onl/kjb/statistics/apiStatsHourMan.jsp @@ -72,7 +72,7 @@ legend: { orient: 'horizontal', bottom: 10, - data: ['성공', 'Timeout', '시스템오류', '업무오류'] + data: ['성공', 'Timeout', '시스템오류'] }, series: [{ name: '총건수', @@ -97,8 +97,7 @@ data: [ { value: 0, name: '성공', itemStyle: { color: '#91CC75' } }, { value: 0, name: 'Timeout', itemStyle: { color: '#FAC858' } }, - { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } }, - { value: 0, name: '업무오류', itemStyle: { color: '#FC8452' } } + { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } } ] }], graphic: [{ @@ -126,15 +125,14 @@ trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } } }, - legend: { data: ['성공', 'Timeout', '시스템오류', '업무오류'], bottom: 0 }, + legend: { data: ['성공', 'Timeout', '시스템오류'], bottom: 0 }, grid: { left: '3%', right: '4%', bottom: '15%', top: '15%', containLabel: true }, xAxis: { type: 'category', boundaryGap: false, data: [] }, yAxis: { type: 'value', minInterval: 1 }, series: [ { name: '성공', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#5470C6' }, data: [] }, { name: 'Timeout', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FAC858' }, data: [] }, - { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] }, - { name: '업무오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FC8452' }, data: [] } + { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] } ] }; @@ -227,8 +225,7 @@ data: [ { value: totalSuccess, name: '성공' }, { value: totalTimeout, name: 'Timeout' }, - { value: totalSystemErr, name: '시스템오류' }, - { value: totalBizErr, name: '업무오류' } + { value: totalSystemErr, name: '시스템오류' } ] }], graphic: [{ @@ -245,8 +242,7 @@ series: [ { data: successData }, { data: timeoutData }, - { data: systemErrData }, - { data: bizErrData } + { data: systemErrData } ] }); @@ -434,7 +430,7 @@ postData: gridPostData, colNames: [ 'API명', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -443,7 +439,6 @@ { name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false } @@ -475,7 +470,7 @@ colNames: [ '통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID', 'Inbound Adapter', 'Outbound Adapter', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -490,7 +485,6 @@ { name: 'successCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false } @@ -628,7 +622,7 @@ file_download Excel 다운로드 (요약) -
+
diff --git a/WebContent/jsp/onl/kjb/statistics/apiStatsMinuteMan.jsp b/WebContent/jsp/onl/kjb/statistics/apiStatsMinuteMan.jsp index 907d1fb..7b93d90 100644 --- a/WebContent/jsp/onl/kjb/statistics/apiStatsMinuteMan.jsp +++ b/WebContent/jsp/onl/kjb/statistics/apiStatsMinuteMan.jsp @@ -64,7 +64,7 @@ legend: { orient: 'horizontal', bottom: 10, - data: ['성공', 'Timeout', '시스템오류', '업무오류'] + data: ['성공', 'Timeout', '시스템오류'] }, series: [{ name: '총건수', @@ -89,8 +89,7 @@ data: [ { value: 0, name: '성공', itemStyle: { color: '#91CC75' } }, { value: 0, name: 'Timeout', itemStyle: { color: '#FAC858' } }, - { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } }, - { value: 0, name: '업무오류', itemStyle: { color: '#FC8452' } } + { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } } ] }], graphic: [{ @@ -118,7 +117,7 @@ trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } } }, - legend: { data: ['성공', 'Timeout', '시스템오류', '업무오류'], bottom: 0 }, + legend: { data: ['성공', 'Timeout', '시스템오류'], bottom: 0 }, grid: { left: '3%', right: '4%', bottom: '15%', top: '15%', containLabel: true }, xAxis: { type: 'category', boundaryGap: false, data: [] }, yAxis: { type: 'value', minInterval: 1 }, @@ -129,8 +128,7 @@ series: [ { name: '성공', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#5470C6' }, data: [], showSymbol: false }, { name: 'Timeout', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FAC858' }, data: [], showSymbol: false }, - { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [], showSymbol: false }, - { name: '업무오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FC8452' }, data: [], showSymbol: false } + { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [], showSymbol: false } ] }; @@ -189,8 +187,7 @@ data: [ { value: totalSuccess, name: '성공' }, { value: totalTimeout, name: 'Timeout' }, - { value: totalSystemErr, name: '시스템오류' }, - { value: totalBizErr, name: '업무오류' } + { value: totalSystemErr, name: '시스템오류' } ] }], graphic: [{ @@ -207,8 +204,7 @@ series: [ { data: successData }, { data: timeoutData }, - { data: systemErrData }, - { data: bizErrData } + { data: systemErrData } ] }); @@ -447,7 +443,7 @@ postData: gridPostData, colNames: [ 'API명', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -456,7 +452,6 @@ { name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false } @@ -488,7 +483,7 @@ colNames: [ '통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID', 'Inbound Adapter', 'Outbound Adapter', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -503,7 +498,6 @@ { name: 'successCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false } @@ -630,7 +624,7 @@ (최대 1시간, 초과시 자동 조정) - +
diff --git a/WebContent/jsp/onl/kjb/statistics/apiStatsMonthMan.jsp b/WebContent/jsp/onl/kjb/statistics/apiStatsMonthMan.jsp index 00c67d7..b7e292d 100644 --- a/WebContent/jsp/onl/kjb/statistics/apiStatsMonthMan.jsp +++ b/WebContent/jsp/onl/kjb/statistics/apiStatsMonthMan.jsp @@ -71,7 +71,7 @@ legend: { orient: 'horizontal', bottom: 10, - data: ['성공', 'Timeout', '시스템오류', '업무오류'] + data: ['성공', 'Timeout', '시스템오류'] }, series: [{ name: '총건수', @@ -96,8 +96,7 @@ data: [ { value: 0, name: '성공', itemStyle: { color: '#91CC75' } }, { value: 0, name: 'Timeout', itemStyle: { color: '#FAC858' } }, - { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } }, - { value: 0, name: '업무오류', itemStyle: { color: '#FC8452' } } + { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } } ] }], graphic: [{ @@ -125,15 +124,14 @@ trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } } }, - legend: { data: ['성공', 'Timeout', '시스템오류', '업무오류'], bottom: 0 }, + legend: { data: ['성공', 'Timeout', '시스템오류'], bottom: 0 }, grid: { left: '3%', right: '4%', bottom: '15%', top: '15%', containLabel: true }, xAxis: { type: 'category', boundaryGap: false, data: [] }, yAxis: { type: 'value', minInterval: 1 }, series: [ { name: '성공', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#5470C6' }, data: [] }, { name: 'Timeout', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FAC858' }, data: [] }, - { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] }, - { name: '업무오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FC8452' }, data: [] } + { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] } ] }; @@ -189,8 +187,7 @@ data: [ { value: totalSuccess, name: '성공' }, { value: totalTimeout, name: 'Timeout' }, - { value: totalSystemErr, name: '시스템오류' }, - { value: totalBizErr, name: '업무오류' } + { value: totalSystemErr, name: '시스템오류' } ] }], graphic: [{ @@ -436,7 +433,7 @@ postData: gridPostData, colNames: [ 'API명', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -445,7 +442,6 @@ { name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false } @@ -477,7 +473,7 @@ colNames: [ '통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID', 'Inbound Adapter', 'Outbound Adapter', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -492,7 +488,6 @@ { name: 'successCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false } diff --git a/WebContent/jsp/onl/kjb/statistics/apiStatsYearMan.jsp b/WebContent/jsp/onl/kjb/statistics/apiStatsYearMan.jsp index eb6352b..7bfbe52 100644 --- a/WebContent/jsp/onl/kjb/statistics/apiStatsYearMan.jsp +++ b/WebContent/jsp/onl/kjb/statistics/apiStatsYearMan.jsp @@ -71,7 +71,7 @@ legend: { orient: 'horizontal', bottom: 10, - data: ['성공', 'Timeout', '시스템오류', '업무오류'] + data: ['성공', 'Timeout', '시스템오류'] }, series: [{ name: '총건수', @@ -96,8 +96,7 @@ data: [ { value: 0, name: '성공', itemStyle: { color: '#91CC75' } }, { value: 0, name: 'Timeout', itemStyle: { color: '#FAC858' } }, - { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } }, - { value: 0, name: '업무오류', itemStyle: { color: '#FC8452' } } + { value: 0, name: '시스템오류', itemStyle: { color: '#EE6666' } } ] }], graphic: [{ @@ -125,15 +124,14 @@ trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } } }, - legend: { data: ['성공', 'Timeout', '시스템오류', '업무오류'], bottom: 0 }, + legend: { data: ['성공', 'Timeout', '시스템오류'], bottom: 0 }, grid: { left: '3%', right: '4%', bottom: '15%', top: '15%', containLabel: true }, xAxis: { type: 'category', boundaryGap: false, data: [] }, yAxis: { type: 'value', minInterval: 1 }, series: [ { name: '성공', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#5470C6' }, data: [] }, { name: 'Timeout', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FAC858' }, data: [] }, - { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] }, - { name: '업무오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#FC8452' }, data: [] } + { name: '시스템오류', type: 'line', stack: 'Total', smooth: true, areaStyle: { opacity: 0.5 }, itemStyle: { color: '#EE6666' }, data: [] } ] }; @@ -191,8 +189,7 @@ data: [ { value: totalSuccess, name: '성공' }, { value: totalTimeout, name: 'Timeout' }, - { value: totalSystemErr, name: '시스템오류' }, - { value: totalBizErr, name: '업무오류' } + { value: totalSystemErr, name: '시스템오류' } ] }], graphic: [{ @@ -412,7 +409,7 @@ postData: gridPostData, colNames: [ 'API명', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -421,7 +418,6 @@ { name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '90', formatter: decimalFormatter, sortable: false } @@ -453,7 +449,7 @@ colNames: [ '통계시간', 'API명', '인스턴스', '업무구분', '클라이언트ID', 'Inbound Adapter', 'Outbound Adapter', - '총건수', '성공', 'Timeout', '시스템오류', '업무오류', + '총건수', '성공', 'Timeout', '시스템오류', '평균응답(ms)', '최소응답(ms)', '최대응답(ms)' ], colModel: [ @@ -468,7 +464,6 @@ { name: 'successCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'timeoutCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'systemErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, - { name: 'bizErrCnt', align: 'right', width: '70', formatter: numberFormatter, sortable: false }, { name: 'avgRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'minRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false }, { name: 'maxRespTime', align: 'right', width: '80', formatter: decimalFormatter, sortable: false } diff --git a/src/main/java/com/eactive/eai/rms/data/entity/onl/kjb/statistics/ApiStatsMinuteService.java b/src/main/java/com/eactive/eai/rms/data/entity/onl/kjb/statistics/ApiStatsMinuteService.java index 7466422..964fef6 100644 --- a/src/main/java/com/eactive/eai/rms/data/entity/onl/kjb/statistics/ApiStatsMinuteService.java +++ b/src/main/java/com/eactive/eai/rms/data/entity/onl/kjb/statistics/ApiStatsMinuteService.java @@ -214,11 +214,11 @@ public class ApiStatsMinuteService q.seq900BizErrCnt.sum().as("seq900BizErrCnt"), q.minRespTime.min().castToNum(BigDecimal.class).as("minRespTime"), q.maxRespTime.max().castToNum(BigDecimal.class).as("maxRespTime"), - // 가중 평균: SUM(avg * successCnt) / SUM(successCnt) + // 가중 평균: SUM(avg * totalCnt) / SUM(totalCnt) Expressions.cases() - .when(q.successCnt.sum().gt(0)) - .then(q.avgRespTime.multiply(q.successCnt).sum() - .divide(q.successCnt.sum()).castToNum(BigDecimal.class)) + .when(q.totalCnt.sum().gt(0)) + .then(q.avgRespTime.multiply(q.totalCnt).sum() + .divide(q.totalCnt.sum()).castToNum(BigDecimal.class)) .otherwise((BigDecimal) null) .as("avgRespTime"))) .from(q) diff --git a/src/main/java/com/eactive/eai/rms/ext/djb/job/ApiStatsHourlyAggregationJob.java b/src/main/java/com/eactive/eai/rms/ext/djb/job/ApiStatsHourlyAggregationJob.java index b29c7f3..d637000 100644 --- a/src/main/java/com/eactive/eai/rms/ext/djb/job/ApiStatsHourlyAggregationJob.java +++ b/src/main/java/com/eactive/eai/rms/ext/djb/job/ApiStatsHourlyAggregationJob.java @@ -97,9 +97,8 @@ public class ApiStatsHourlyAggregationJob implements Job { * EAISVCSERNO로 그룹핑하여 1행으로 집계를 한 다음 * 총건수 : EAISVCSERNO로 그룹핑한 총 건수 * 성공건수 : seq = 400 and EAIERRCD = null 인 건수 - * Timeout : EAIERRCD in (공통코드 CODEGROUP = 'API_ERROR_CODE' and PARENTCODE = 'T') 인 건수 - * 업무오류 : EAIERRCD in (공통코드 CODEGROUP = 'API_ERROR_CODE' and PARENTCODE = 'B') 인 건수 - * 시스템오류 : (seq400 = null or EAIERRCD is not null) and 공통코드에 정의되지 않은 errorcode 인 건수 + * Timeout : EAIERRCD in (공통코드 CODEGROUP = 'ERRCODE_TIMEOUT') 인 건수 + * 시스템오류 : (seq400 = null or EAIERRCD is not null) and 공통코드(ERRCODE_TIMEOUT)에 정의되지 않은 errorcode 인 건수 */ String sql = "INSERT INTO API_STATS_HOUR" + @@ -113,10 +112,9 @@ public class ApiStatsHourlyAggregationJob implements Job { " , INBOUND_ADAPTER, OUTBOUND_ADAPTER" + " , COUNT(EAISVCSERNO)" + " , SUM(CASE WHEN A.ERROR_CODE IS NULL AND E400 IS NOT NULL THEN 1 ELSE 0 END)" + - " , SUM(CASE WHEN B.PARENTCODE = 'T' THEN 1 ELSE 0 END)" + - " , SUM(CASE WHEN (A.E400 IS NULL OR A.ERROR_CODE IS NOT NULL) AND B.PARENTCODE IS NULL THEN 1 ELSE 0 END)" + - " , SUM(CASE WHEN B.PARENTCODE = 'B' THEN 1 ELSE 0 END)" + - " , 0, 0, 0" + + " , SUM(CASE WHEN B.CODE IS NOT NULL THEN 1 ELSE 0 END)" + + " , SUM(CASE WHEN (A.E400 IS NULL OR A.ERROR_CODE IS NOT NULL) AND B.CODE IS NULL THEN 1 ELSE 0 END)" + + " , 0, 0, 0, 0" + " , TRUNC(AVG(RESP_TIME)), MIN(RESP_TIME), MAX(RESP_TIME), 0, 0" + " FROM (" + " SELECT EAISVCSERNO" + @@ -132,7 +130,7 @@ public class ApiStatsHourlyAggregationJob implements Job { " FROM " + logTableName + " WHERE MSGDPSTYMS LIKE :searchDate || '%'" + " GROUP BY EAISVCSERNO" + - " ) A LEFT OUTER JOIN " + schemaEMS + ".TSEAIRM28 B ON A.ERROR_CODE = B.CODE AND B.CODEGROUP = 'API_ERROR_CODE'" + + " ) A LEFT OUTER JOIN " + schemaEMS + ".TSEAIRM28 B ON A.ERROR_CODE = B.CODE AND B.CODEGROUP = 'ERRCODE_TIMEOUT'" + " GROUP BY SUBSTR(DT,1,10), API_NAME, GW_INSTANCE_ID, BIZ_DIV_CODE, NVL(A.CLIENT_ID, 'NONE')" + " , INBOUND_ADAPTER, OUTBOUND_ADAPTER"; diff --git a/src/main/java/com/eactive/ext/kjb/statistics/service/ApiStatsExcelExportService.java b/src/main/java/com/eactive/ext/kjb/statistics/service/ApiStatsExcelExportService.java index a97c2fe..ec92563 100644 --- a/src/main/java/com/eactive/ext/kjb/statistics/service/ApiStatsExcelExportService.java +++ b/src/main/java/com/eactive/ext/kjb/statistics/service/ApiStatsExcelExportService.java @@ -36,9 +36,8 @@ public class ApiStatsExcelExportService { private static final String[] COLUMN_HEADERS = { "통계시간", "API명", "인스턴스", "업무구분", "클라이언트ID", "Inbound Adapter", "Outbound Adapter", - "총건수", "성공건수", "Timeout건수", "시스템오류건수", "업무오류건수", - "Seq900 Timeout", "Seq900 시스템오류", "Seq900 업무오류", - "평균응답시간", "최소응답시간", "최대응답시간", "P50응답시간", "P95응답시간" + "총건수", "성공건수", "Timeout건수", "시스템오류건수", + "평균응답시간", "최소응답시간", "최대응답시간" }; /** @@ -193,17 +192,13 @@ public class ApiStatsExcelExportService { createLongCell(row, colNum++, data.getSuccessCnt(), numberStyle); createLongCell(row, colNum++, data.getTimeoutCnt(), numberStyle); createLongCell(row, colNum++, data.getSystemErrCnt(), numberStyle); - createLongCell(row, colNum++, data.getBizErrCnt(), numberStyle); - createLongCell(row, colNum++, data.getSeq900TimeoutCnt(), numberStyle); - createLongCell(row, colNum++, data.getSeq900SystemErrCnt(), numberStyle); - createLongCell(row, colNum++, data.getSeq900BizErrCnt(), numberStyle); + // 소수점 컬럼 (15-19) createDecimalCell(row, colNum++, data.getAvgRespTime(), decimalStyle); createDecimalCell(row, colNum++, data.getMinRespTime(), decimalStyle); createDecimalCell(row, colNum++, data.getMaxRespTime(), decimalStyle); - createDecimalCell(row, colNum++, data.getP50RespTime(), decimalStyle); - createDecimalCell(row, colNum++, data.getP95RespTime(), decimalStyle); + } /** diff --git a/src/main/java/com/eactive/ext/kjb/statistics/ui/ApiStatsUI.java b/src/main/java/com/eactive/ext/kjb/statistics/ui/ApiStatsUI.java index 19e0368..3a57ab9 100644 --- a/src/main/java/com/eactive/ext/kjb/statistics/ui/ApiStatsUI.java +++ b/src/main/java/com/eactive/ext/kjb/statistics/ui/ApiStatsUI.java @@ -22,15 +22,9 @@ public class ApiStatsUI { private Long successCnt; private Long timeoutCnt; private Long systemErrCnt; - private Long bizErrCnt; - private Long seq900TimeoutCnt; - private Long seq900SystemErrCnt; - private Long seq900BizErrCnt; // 응답시간 메트릭 private BigDecimal avgRespTime; private BigDecimal minRespTime; private BigDecimal maxRespTime; - private BigDecimal p50RespTime; - private BigDecimal p95RespTime; }