# API Gateway 통계 화면 ## 개요 API Gateway의 분단위/시간별 처리 통계를 조회하는 관리 화면입니다. ## 파일 구조 ``` com.eactive.ext.kjb.statistics/ ├── ApiStatsMinuteController.java # 분단위 통계 Controller ├── ApiStatsMinuteService.java # 분단위 통계 Service ├── ApiStatsHourController.java # 시간별 통계 Controller ├── ApiStatsHourService.java # 시간별 통계 Service ├── entity/ │ ├── ApiStatsMinute.java # 분단위 통계 Entity │ ├── ApiStatsMinuteId.java # 분단위 통계 복합키 │ ├── ApiStatsHour.java # 시간별 통계 Entity │ └── ApiStatsHourId.java # 시간별 통계 복합키 ├── repository/ │ ├── ApiStatsMinuteRepository.java │ └── ApiStatsHourRepository.java ├── ui/ │ ├── ApiStatsUI.java # 통계 UI DTO │ └── ApiStatsSearch.java # 검색조건 DTO ├── mapping/ │ └── ApiStatsUIMapper.java # Entity ↔ UI 매핑 └── README.md JSP 화면: WebContent/jsp/kjb/statistics/ ├── apiStatsMinuteMan.jsp # 분단위 통계 화면 └── apiStatsHourMan.jsp # 시간별 통계 화면 ``` ## URL | 화면 | URL | |------|-----| | 분단위 통계 | `/kjb/statistics/apiStatsMinuteMan.view` | | 시간별 통계 | `/kjb/statistics/apiStatsHourMan.view` | ## 테이블 | 테이블명 | 설명 | |----------|------| | API_STATS_MINUTE | 분단위 통계 | | API_STATS_HOUR | 시간별 통계 | ## 복합키 구성 - statTime (통계 시간) - apiName (API명) - gwInstanceId (Gateway 인스턴스 ID) - bizDivCode (업무구분코드) - clientId (클라이언트 ID) - inboundAdapter (Inbound Adapter) - outboundAdapter (Outbound Adapter) ## 메트릭 ### 건수 메트릭 - totalCnt: 총 처리 건수 - successCnt: 성공 건수 - timeoutCnt: Timeout 오류 건수 - systemErrCnt: 시스템 오류 건수 - bizErrCnt: 업무 오류 건수 - seq900TimeoutCnt: 로그시퀀스900 Timeout 건수 - seq900SystemErrCnt: 로그시퀀스900 시스템 오류 건수 - seq900BizErrCnt: 로그시퀀스900 업무 오류 건수 ### 응답시간 메트릭 (ms) - avgRespTime: 평균 응답시간 - minRespTime: 최소 응답시간 - maxRespTime: 최대 응답시간 - p50RespTime: 50 백분위 응답시간 - p95RespTime: 95 백분위 응답시간 ## Multi-tenancy API Gateway 통계는 `APIGW` 스키마에 저장됩니다. Controller에서 `DataSourceContextHolder`를 사용하여 스키마를 전환합니다. ```java DataSourceContextHolder.setDataSourceType( DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW)); ``` ## 검색 조건 - 조회기간 (시작~종료) - API명 (like 검색) - Gateway 인스턴스 ID - 업무구분코드 (like 검색) - 클라이언트 ID (like 검색) ## 기술 스택 - JPA + QueryDSL - MapStruct (Entity ↔ UI 매핑) - Spring MVC (ResponseEntity) - jqGrid (목록 화면)