콘텐츠로 이동

9. 모니터링 API#

DataAPI는 운영 상태를 확인하기 위한 모니터링 API를 제공한다. 모니터링 API는 SQL API와 별도의 권한으로 접근할 수 있으며, DATA_API_MONITORING role이 필요하다. 자세한 권한 설정 방법은 3장 DB role과 권한 준비를 참고한다.

9.1 Connection Pool 상태 조회#

엔드포인트 :

GET /dataapi/actuator/connectionpools

동적 커넥션 풀의 현재 상태를 스냅샷 형태로 반환한다.

현재 생성되어 있는 JWT 및 Basic Connection Pool의 상태를 조회한다. 응답에는 Connection Pool 개수, draining Pool 개수, 활성화 커넥션 수, 유휴 커넥션 수 등의 정보가 포함된다.

응답 예시:

{
  "summary": {
    "jwtPoolCount": 3,
    "basicPoolCount": 2,
    "drainingPoolCount": 1,
    "activeBorrowCount": 4,
    "createFlightCount": 1
  },
  "jwtPools": [
    {
      "poolKey": "sqlUserA",
      "username": "sqlUserA",
      "draining": false,
      "activeBorrowCount": 2,
      "activeConnections": 2,
      "idleConnections": 1,
      "totalConnections": 3,
      "threadsAwaitingConnection": 0
    }
  ],
  "basicPools": [
    {
      "poolKey": "basicUser:...",
      "username": "basicUser",
      "draining": true,
      "activeBorrowCount": 0,
      "activeConnections": 0,
      "idleConnections": 0,
      "totalConnections": 0,
      "threadsAwaitingConnection": 0
    }
  ]
}

응답 필드의 의미는 다음과 같다.

필드 설명
summary.jwtPoolCount 현재 생성된 JWT Bearer 커넥션 풀 개수
summary.basicPoolCount 현재 생성된 Basic 커넥션 풀 개수
summary.drainingPoolCount Draining 상태1인 커넥션 풀 수
summary.activeBorrowCount 모든 JWT Bearer 및 Basic 커넥션 풀에서 현재 대여중인 커넥션 수의 합
summary.createFlightCount 생성 작업이 진행 중인(생성이 완료되지 않은) 풀의 개수. 현재 진행 중인 커넥션 풀 생성 작업 수
jwtPools JWT Bearer 커넥션 풀별 상세 목록
basicPools Basic 풀별 상세 목록
poolKey 커넥션 풀 식별자
username 해당 풀의 사용자명
draining Draining 상태 여부
activeBorrowCount 해당 풀에서 현재 대여 중인 커넥션 수
activeConnections Hikari 풀에서 현재 사용중인 커넥션 수
idleConnections Hikari 풀에서 현재 유휴 상태인 커넥션 수
totalConnections Hikari 풀의 전체 커넥션 수
threadsAwaitingConnection 커넥션 할당을 기다리는 스레드 수

9.2 메트릭 조회#

엔드포인트 :

GET /dataapi/actuator/metrics

Micrometer에 등록된 개별 메트릭 값을 조회한다. 대표 조회 대상은 아래와 같다.

  • dataapi.pool.count
  • dataapi.pool.draining.count
  • dataapi.pool.borrow.active

9.3 Prometheus 메트릭 조회#

엔드포인트 :

GET /dataapi/actuator/prometheus

/actuator/prometheus는 Prometheus가 수집할 수 있는 형식으로 DataAPI의 메트릭을 제공한다. Prometheus와 같은 모니터링 시스템은 이 엔드포인트를 주기적으로 수집(scrape)하여 DataAPI의 운영 상태를 모니터링할 수 있다.

장기간 메트릭을 수집하는 환경에서는 JWT 인증보다 DATA_API_MONITORING role이 부여된 Basic 인증 계정을 사용하는 것을 권장한다. JWT 인증은 Access 토큰 만료, 로그아웃, 세션 초기화 또는 서버 재시작 등의 이유로 인증이 실패할 수 있기 때문이다.


  1. Draining 상태는 새로운 요청은 받지 않고, 사용 중인 커넥션이 반환될 때까지 종료를 진행하는 상태를 의미한다.