3.0 KiB
3.0 KiB
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를 사용하여 스키마를 전환합니다.
DataSourceContextHolder.setDataSourceType(
DataSourceTypeManager.getDataSourceType(DataSourceTypeManager.APIGW));
검색 조건
- 조회기간 (시작~종료)
- API명 (like 검색)
- Gateway 인스턴스 ID
- 업무구분코드 (like 검색)
- 클라이언트 ID (like 검색)
기술 스택
- JPA + QueryDSL
- MapStruct (Entity ↔ UI 매핑)
- Spring MVC (ResponseEntity)
- jqGrid (목록 화면)