Health - 멀티인스턴스 상태 조회
멀티인스턴스에서 사용중인 여러 리소들에 대한 상태를 조회하기 위해 사용한다. disk, memory, elasticsearch, tomcat, cpu, webClients, redis, rabbitMQ 등 내부에서 서비스를 위해 정상 동작해야하는 모듈들의 상태를 커스텀 매트릭으로 저장하여 prometheus 를 통해 확인 할 수 있도록 추가
Method
GET
{{url}}/api-directory/health/status
Response Body (json)
KEY OBJECT DESC instances json 인스턴스 정보 instances.인스턴스아이디 json 인스턴스 정보 instances.인스턴스아이디.disk json Disk 정보 instances.인스턴스아이디.disk.diskTotal String 전체 용량 instances.인스턴스아이디.disk.diskFree String 잔여 용량 instances.인스턴스아이디.memory json Memory 정보 instances.인스턴스아이디.memory.jvmMemoryCommitted String JVM이 사용할 수 있도록 확보한 메모리의 크기 instances.인스턴스아이디.memory.jvmMemoryUsed String JVM이 실제 사용 중인 메모리 instances.인스턴스아이디.memory.jvmMemoryMax String JVM이 사용할 수 있는 최대 메모리 instances.인스턴스아이디.listeners json 리스너 정보 instances.인스턴스아이디.listeners.listenersHealthThreadpoolHighloadCount Long 부하 발생하고 있는 리스너 수 instances.인스턴스아이디.tomcat json Tomcat 정보 instances.인스턴스아이디.tomcat.busyThreads String 사용 중인 쓰레드 개수 instances.인스턴스아이디.tomcat.maxThreads String 설정된 최대 쓰레드 개수 instances.인스턴스아이디.tomcat.currentThreads String 현재 생성된 쓰레드 개수 instances.인스턴스아이디.cpu json CPU 정보 instances.인스턴스아이디.cpu.processCpuUsage String JVM이 사용하는 CPU 사용량 instances.인스턴스아이디.webClients json 타 서비스 통신 연결 정보 instances.인스턴스아이디.webClients.oauth String SHIELD ID 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.cssb String CSSB 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.license String LICENSE 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.ekms String EKMS 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.resource String RESOURCE 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.cloudLogging String LOG 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.shieldrm String DRM BROKER 서버 연결 상태 (1:YES, 0:NO) instances.인스턴스아이디.webClients.extraction String EXTRACTION 서버 연결 상태 (1:YES, 0:NO) listenerQueues json 큐 정보 listenerQueues.회사아이디 json 회사별 큐 정보 listenerQueues.회사아이디.task.ready Long 작업 대기 메시지 개수 listenerQueues.회사아이디.task.consumer Long 작업 처리를 위해 할당된 소비자 개수 listenerQueues.회사아이디.retry.ready Long 재시도 대기 메시지 개수 listenerQueues.회사아이디.retry.consumer Long 재시도 처리를 위해 할당된 소비자 개수 listenersScalingRequired Long 자체 판단한 스케일 아웃 필요 여부 (1:필요, 0:불필요) listenerConsistency json 리스너 정보 listenerConsistency.registeredQueueCount Long 등록된 큐 개수 listenerConsistency.activeListenersByInstance json 인스턴스 별 활성화된 리스너 정보 listenerConsistency.activeListenersByInstance.회사아이디 Long 인스턴스 별 활성화된 리스너 개수 listenerConsistency.activeListenerCount Long 할당된 리스너 개수 listenerConsistency.missingListenerCount Long 할당된되지 않은 리스너 개수 elasticsearch String Elasticsearch 연결 상태 (GREEN, YELLOW, RED) redis String Redis 연결 상태 (1:YES, 0:NO)
Sample
RESPONSE - Success
{
"elasticsearch": "GREEN",
"instances": {
"shieldrive-directory-d9bf9f868-f72qq": {
"disk": {
"diskTotal": "371.0GB",
"diskFree": "312.2GB"
},
"memory": {
"jvmMemoryCommitted": "2.0GB",
"jvmMemoryUsed": "0.3GB",
"jvmMemoryMax": "2.0GB"
},
"tomcat": {
"busyThreads": 0.0,
"maxThreads": 2348.0,
"currentThreads": 2348.0
},
"cpu": {
"processCpuUsage": "0.0%"
},
"webClients": {
"license": 1.0,
"cssb": 1.0,
"ekms": 1.0,
"resource": 1.0,
"cloudLogging": 1.0,
"shieldrm": 1.0,
"extraction": 1.0,
"oauth": 1.0
}
}
},
"rabbitmq": 1.0,
"redis": 1.0
}