API 통계 화면 정리
eapim-admin CI / build (push) Has been cancelled

This commit is contained in:
eastargh
2026-08-31 10:47:15 +09:00
parent 9cdfad1317
commit 927ef830ac
17 changed files with 354 additions and 90 deletions
@@ -416,12 +416,13 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'API명',
'API ID', 'API 명',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
],
colModel: [
{ name: 'apiName', align: 'left', width: '250', sortable: false },
{ name: 'apiName', align: 'left', width: '150', sortable: false },
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
@@ -458,7 +459,7 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'통계시간', 'API', '인스턴스', '업무구분', '클라이언트ID',
'통계시간', 'API ID', '인스턴스', '업무구분', '클라이언트ID',
'Inbound Adapter', 'Outbound Adapter',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
@@ -602,7 +603,7 @@
</td>
</tr>
<tr>
<th>API</th>
<th>API ID</th>
<td>
<input type="text" name="searchApiName" value="${param.searchApiName}">
</td>
@@ -418,12 +418,13 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'API명',
'API ID', 'API 명',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
],
colModel: [
{ name: 'apiName', align: 'left', width: '250', sortable: false },
{ name: 'apiName', align: 'left', width: '150', sortable: false },
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
@@ -580,7 +581,7 @@
</td>
</tr>
<tr>
<th>API</th>
<th>API ID</th>
<td>
<input type="text" name="searchApiName" value="${param.searchApiName}">
</td>
@@ -431,12 +431,13 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'API명',
'총건수', '성공', 'Timeout', '시스템오류',
'API ID', 'API 명',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
],
colModel: [
{ name: 'apiName', align: 'left', width: '250', sortable: false },
{ name: 'apiName', align: 'left', width: '150', sortable: false },
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
@@ -609,7 +610,7 @@
<input type="text" name="searchEndTime" value="${param.searchEndTime}" style="width:60px;">
<span style="color:#888; font-size:12px; margin-left:10px;">(최대 1시간, 초과시 자동 조정)</span>
</td>
<th style="width:100px;">API</th>
<th style="width:100px;">API ID</th>
<td style="width:400px">
<input type="text" name="searchApiName" value="${param.searchApiName}">
</td>
@@ -421,12 +421,13 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'API명',
'API ID', 'API 명',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
],
colModel: [
{ name: 'apiName', align: 'left', width: '250', sortable: false },
{ name: 'apiName', align: 'left', width: '150', sortable: false },
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
@@ -463,7 +464,7 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'통계시간', 'API', '인스턴스', '업무구분', '클라이언트ID',
'통계시간', 'API ID', '인스턴스', '업무구분', '클라이언트ID',
'Inbound Adapter', 'Outbound Adapter',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
@@ -510,11 +511,21 @@
$("input[name=searchStartDateTime]").inputmask("9999-99", { 'autoUnmask': true });
$("input[name=searchEndDateTime]").inputmask("9999-99", { 'autoUnmask': true });
// 기본값 설정 (최근 12월)
// 기본값 설정: 올해 1월 ~ 지난달 (현재가 1월이면 작년 1월 ~ 작년 12월)
var today = new Date();
var endMonth = today.getFullYear() + '-' + (today.getMonth() + 1 < 10 ? '0' : '') + (today.getMonth() + 1);
var startDate = new Date(today.getFullYear(), today.getMonth() - 11, 1);
var startMonth = startDate.getFullYear() + '-' + (startDate.getMonth() + 1 < 10 ? '0' : '') + (startDate.getMonth() + 1);
var startDate, endDate;
if (today.getMonth() === 0) { // 1월
startDate = new Date(today.getFullYear() - 1, 0, 1);
endDate = new Date(today.getFullYear() - 1, 11, 1);
} else {
startDate = new Date(today.getFullYear(), 0, 1);
endDate = new Date(today.getFullYear(), today.getMonth() - 1, 1);
}
function toMonthStr(d) {
return d.getFullYear() + '-' + (d.getMonth() + 1 < 10 ? '0' : '') + (d.getMonth() + 1);
}
var startMonth = toMonthStr(startDate);
var endMonth = toMonthStr(endDate);
if (!$("input[name=searchStartDateTime]").val()) {
$("input[name=searchStartDateTime]").val(startMonth);
@@ -593,7 +604,7 @@
</td>
</tr>
<tr>
<th>API</th>
<th>API ID</th>
<td>
<input type="text" name="searchApiName" value="${param.searchApiName}">
</td>
@@ -397,12 +397,13 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'API명',
'총건수', '성공', 'Timeout', '시스템오류',
'API ID', 'API 명',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
],
colModel: [
{ name: 'apiName', align: 'left', width: '250', sortable: false },
{ name: 'apiName', align: 'left', width: '150', sortable: false },
{ name: 'apiDesc', align: 'left', width: '250', sortable: false },
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'timeoutCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
@@ -439,7 +440,7 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'통계시간', 'API', '인스턴스', '업무구분', '클라이언트ID',
'통계시간', 'API ID', '인스턴스', '업무구분', '클라이언트ID',
'Inbound Adapter', 'Outbound Adapter',
'총건수', '성공', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
@@ -563,7 +564,7 @@
</td>
</tr>
<tr>
<th>API</th>
<th>API ID</th>
<td>
<input type="text" name="searchApiName" value="${param.searchApiName}">
</td>
@@ -65,9 +65,27 @@
}
// 조회구분(searchType)에 따라 '구분' / '구분명' 컬럼의 헤더명·폭·표시여부를 조정
function applyGridColumnsByType(type) {
var $g = $("#grid");
if (type === 'API') {
$g.jqGrid('setLabel', 'orgName', 'API ID');
$g.jqGrid('setLabel', 'apiDesc', 'API명');
$g.jqGrid('setColProp', 'orgName', { widthOrg: 150, width: 150 });
$g.jqGrid('setColProp', 'apiDesc', { widthOrg: 250, width: 250 });
$g.jqGrid('showCol', 'apiDesc');
} else {
$g.jqGrid('setLabel', 'orgName', (type === 'DATE') ? '사용일' : '제휴사');
$g.jqGrid('setColProp', 'orgName', { widthOrg: 250, width: 250 });
$g.jqGrid('hideCol', 'apiDesc');
}
$g.jqGrid('setGridWidth', $('#content_middle').width(), true);
}
function search() {
var postData = getPostData("cmd", "LIST");
if (postData) {
applyGridColumnsByType($('input[name="searchType"]:checked').val());
$("#grid").setGridParam({ url: url, postData: postData }).trigger("reloadGrid");
}
}
@@ -186,12 +204,13 @@
mtype: 'POST',
postData: gridPostData,
colNames: [
'구분',
'총건수', '성공', '성공율(%)', '실패율(%)', 'Timeout', '시스템오류',
'제휴사', 'API명',
'총건수', '성공', '성공율(%)', '실패율(%)', 'Timeout', '시스템오류',
'평균응답(ms)', '최소응답(ms)', '최대응답(ms)'
],
colModel: [
{ name: 'orgName', align: 'left', width: '250', sortable: false },
{ name: 'apiDesc', align: 'left', width: '250', sortable: false, hidden: true },
{ name: 'totalCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successCnt', align: 'right', width: '80', formatter: numberFormatter, sortable: false },
{ name: 'successRate', align: 'right', width: '80', formatter: decimalFormatter, sortable: false },
@@ -225,10 +244,23 @@
$("input[name=searchStartDate], input[name=searchEndDate]").inputmask("9999-99-99", { 'autoUnmask': true });
$("input[name=searchStartDate], input[name=searchEndDate]").datepicker();
// 기본값 설정: 이번달 1일 ~ 어제 (오늘이 1일이면 지난달 1일 ~ 지난달 말일)
var today = getToday();
var startDate = today.substring(0,6)+"01";
var endDate = today;
var now = new Date();
function toYmd(d) {
var m = d.getMonth() + 1;
var day = d.getDate();
return d.getFullYear() + '' + (m < 10 ? '0' : '') + m + (day < 10 ? '0' : '') + day;
}
var startDate, endDate;
if (now.getDate() === 1) {
startDate = toYmd(new Date(now.getFullYear(), now.getMonth() - 1, 1));
endDate = toYmd(new Date(now.getFullYear(), now.getMonth(), 0));
} else {
startDate = today.substring(0,6) + "01";
endDate = toYmd(new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1));
}
if (!$("input[name=searchStartDate]").val()) {
$("input[name=searchStartDate]").val(startDate);
@@ -302,11 +334,11 @@
<td>
<input type="text" name="searchOrgName" id="searchOrgName" value="${param.searchOrgName}">
</td>
<th style="width:120px;">API</th>
<th style="width:120px;">API ID</th>
<td>
<input type="text" name="searchApiName" id="searchApiName" value="${param.searchApiName}">
</td>
</tr>
</tr>
</tbody>
</table>