개요
Stats API는 Fess 가 가동되는 서버의 시스템 메트릭을 조회하기 위한 API입니다. JVM, OS, 프로세스, 검색 엔진(OpenSearch) 클러스터, 파일 시스템의 각 통계 정보를 확인할 수 있습니다.
참고
이 API는 검색 쿼리나 클릭 등의 검색 분석 데이터를 반환하지 않습니다. 인덱스 내 문서의 검색 및 관리에는 SearchList API 를 참조하십시오.
기본 URL
이 API에 접근하려면 Radmin-api 권한을 가진 액세스 토큰이 필요합니다. 인증 방법의 자세한 내용은 Admin API 개요 를 참조하십시오.
엔드포인트 목록
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | / | 시스템 통계 정보 조회 |
시스템 통계 정보 조회
요청
이 엔드포인트는 쿼리 파라미터를 받지 않습니다.
응답
응답은 제품 버전을 나타내는 version, 처리 결과를 나타내는 status 와, 시스템 메트릭을 저장하는 stats 객체를 포함합니다. stats 는 jvm / os / process / engine / fs 의 5개 키를 가집니다.
참고
stats 하위 객체의 필드명은 스네이크 케이스(소문자와 밑줄로 구분, 예: non_heap)로 출력됩니다. 값이 null 인 필드는 응답에서 생략됩니다.
응답 필드 (최상위)
| 필드 | 설명 |
|---|---|
version | Fess 의 제품 버전 (예: 15.7.0). |
status | 처리 결과를 나타내는 코드. 0 은 정상 종료를 나타냅니다. |
stats | 시스템 메트릭을 저장하는 객체. jvm / os / process / engine / fs 의 5개 키를 가집니다. |
jvm: JVM 통계
| 필드 | 설명 |
|---|---|
memory.heap.used | 사용 중인 힙 메모리 (바이트). |
memory.heap.committed | 확보된 힙 메모리 (바이트). |
memory.heap.max | 힙 메모리의 최대값 (바이트). |
memory.heap.percent | 힙 메모리 사용률 (%). |
memory.non_heap.used | 사용 중인 비힙 메모리 (바이트). |
memory.non_heap.committed | 확보된 비힙 메모리 (바이트). |
memory.non_heap.max | 비힙 메모리의 최대값 (바이트). 현재 구현에서는 값이 설정되지 않으며 항상 0 이 반환됩니다. |
memory.non_heap.percent | 비힙 메모리 사용률 (%). 현재 구현에서는 값이 설정되지 않으며 항상 0 이 반환됩니다. |
pools | 버퍼 풀의 배열. 각 요소는 key (풀 이름), count (버퍼 수), used (사용량, 바이트), capacity (총 용량, 바이트)를 포함합니다. |
gc | 가비지 컬렉터의 배열. 각 요소는 key (컬렉터 이름), count (실행 횟수), time (누적 실행 시간, 밀리초)를 포함합니다. |
threads.count | 현재 스레드 수. |
threads.peak | 스레드 수의 최댓값. |
classes.loaded | 현재 로드된 클래스 수. |
classes.total_loaded | JVM 시작 이후 로드된 총 클래스 수. |
classes.unloaded | 언로드된 총 클래스 수. |
uptime | JVM 가동 시간 (밀리초). |
os: OS 통계
| 필드 | 설명 |
|---|---|
memory.physical.free | 여유 물리 메모리 (바이트). |
memory.physical.total | 총 물리 메모리 (바이트). |
memory.swap_space.free | 여유 스왑 공간 (바이트). |
memory.swap_space.total | 총 스왑 공간 (바이트). |
cpu.percent | 시스템 전체 CPU 사용률 (%). |
load_averages | 로드 애버리지 배열 (1분, 5분, 15분). 취득할 수 없는 값은 -1 이 될 수 있습니다. |
process: 프로세스 통계
| 필드 | 설명 |
|---|---|
file_fescriptor.open | 현재 열려 있는 파일 디스크립터 수. |
file_fescriptor.max | 열 수 있는 파일 디스크립터의 최대 수. |
cpu.percent | 프로세스 CPU 사용률 (%). |
cpu.total | 프로세스가 사용한 누적 CPU 시간 (밀리초). |
virtual_memory.total | 프로세스의 총 가상 메모리 크기 (바이트). |
참고
process.file_fescriptor 라는 키 이름은 소스 코드의 필드명 fileFescriptor (fileDescriptor 의 철자 오류에서 유래)를 스네이크 케이스로 변환한 것입니다. 구현을 따른 것이며 이 문서의 오타가 아닙니다.
engine: 검색 엔진 클러스터 통계
검색 엔진(OpenSearch) 클러스터의 헬스 정보입니다.
| 필드 | 설명 |
|---|---|
cluster_name | 클러스터 이름. |
number_of_nodes | 클러스터 내 총 노드 수. |
number_of_data_nodes | 데이터 노드 수. |
active_primary_shards | 활성 프라이머리 샤드 수. |
active_shards | 활성 샤드 수. |
active_shards_percent | 활성 샤드의 비율 (%). |
relocating_shards | 재배치 중인 샤드 수. |
initializing_shards | 초기화 중인 샤드 수. |
unassigned_shards | 미할당 샤드 수. |
delayed_unassigned_shards | 할당이 지연된 미할당 샤드 수. |
number_of_pending_tasks | 대기 중인 태스크 수. |
number_of_in_flight_fetch | 실행 중인 페치 작업 수. |
status | 클러스터 헬스 상태 (green / yellow / red). |
exception | 클러스터에 연결할 수 없는 등 오류 발생 시에만 포함되는 오류 메시지. 이 경우 status 는 red 가 됩니다. |
fs: 파일 시스템 통계
각 루트 (File.listRoots() 로 얻은 루트)별 통계 정보를 저장한 배열입니다.
| 필드 | 설명 |
|---|---|
path | 루트의 절대 경로. |
total | 총 용량 (바이트). |
free | 여유 용량 (바이트). |
usable | 사용 가능한 용량 (바이트). |
used | 사용된 용량 (바이트). total 에서 usable 을 뺀 값입니다. |
percent | 사용률 (%). |
사용 예
시스템 통계 정보 조회
JVM 힙 사용률 확인
검색 엔진 클러스터 상태 확인
참고 정보
Admin API 개요 - Admin API 개요
SystemInfo API - 시스템 정보 API
SearchList API - 문서 검색 및 관리 API