Summary
로그 및 메트릭 수직 수요가 부상하면서 견고한 메트릭 서버 설치가 필요해짐.
Details
shell 스크립트 검토
- api/metric 추가해서 pull 받을 엔드포인트 뚫어놓기
- 커스텀 메트릭 고려
메트릭 수집 정의서
1. HTTP API 메트릭
| 메트릭명 |
타입 |
설명 |
분류 |
http_requests_total |
Counter |
엔드포인트별 HTTP 요청 누적 수 (labels: method, endpoint, status_code) |
공통 |
http_request_duration_seconds |
Histogram |
API 요청 처리 레이턴시 (label: endpoint) |
공통 |
http_requests_in_flight |
Gauge |
현재 동시 처리 중인 API 요청 수 |
공통 |
2. VM 라이프사이클 메트릭
| 메트릭명 |
타입 |
설명 |
분류 |
kws_vm_total |
Gauge |
현재 상태별 VM 개수 (label: state — Running, Stopped 등) |
코어 |
kws_vm_create_total |
Counter |
VM 생성 오퍼레이션 수행 누적 횟수 |
코어 |
kws_vm_delete_total |
Counter |
VM 삭제 오퍼레이션 수행 누적 횟수 |
코어 |
kws_vm_shutdown_total |
Counter |
VM 종료 오퍼레이션 수행 누적 횟수 |
코어 |
kws_vm_create_duration_seconds |
Histogram |
VM 생성 완료까지 소요된 시간 |
코어 |
kws_vm_operation_errors_total |
Counter |
오퍼레이션 수행 중 발생한 에러 수 (label: operation) |
코어 |
3. 스냅샷 메트릭
| 메트릭명 |
타입 |
설명 |
분류 |
kws_snapshot_create_total |
Counter |
스냅샷 생성 누적 횟수 (label: type) |
코어 |
kws_snapshot_delete_total |
Counter |
스냅샷 삭제 누적 횟수 (label: type) |
코어 |
kws_snapshot_revert_total |
Counter |
스냅샷 복구 누적 횟수 (label: type) |
코어 |
4. 시스템 컴포넌트 메트릭
| 메트릭명 |
타입 |
설명 |
분류 |
kws_domcon_registered_domains |
Gauge |
Domain Controller(DomCon)에 등록된 VM 수 |
코어 |
kws_libvirt_connection_up |
Gauge |
Libvirt 데몬과의 연결 상태 (정상: 1, 비정상: 0) |
코어 |
5. 인프라 수집 메트릭 (node_exporter / libvirt-exporter)
5-1. CPU & 하이퍼바이저
| 수집 방법 |
타겟 메트릭 |
설명 |
분류 |
| node_exporter |
cpufreq/ |
코어별 CPU 주파수 현황 |
공통 |
| node_exporter |
proc/stat |
CPU 사용률 (User / System / Iowait / Steal) |
공통 |
| node_exporter |
Steal time |
다른 VM에 의해 CPU 자원을 선점당해 대기한 시간 |
공통 |
| libvirt-exporter |
kvm_exits, kvm_halt_exits |
하이퍼바이저 컨텍스트 스위칭 빈도 추적 |
— |
5-2. 메모리
| 수집 방법 |
타겟 메트릭 |
설명 |
분류 |
| node_exporter |
sys/kernel/mm/ksm/ |
KSM(커널 동일 페이지 병합)을 통한 메모리 절약량 |
공통 |
5-3. 스토리지
| 수집 방법 |
타겟 메트릭 |
설명 |
분류 |
| node_exporter |
Disk I/O |
스토리지 Read/Write IOPS, Throughput 및 Latency |
공통 |
5-4. 네트워크
| 수집 방법 |
타겟 메트릭 |
설명 |
분류 |
| node_exporter |
vNIC / Bridge |
브리지 및 virtio-net의 Tx/Rx Bytes, Packet Drop |
공통 |
5-5. VM 개별 (Per-VM)
| 수집 방법 |
타겟 메트릭 |
설명 |
분류 |
| libvirt-exporter |
VM Resources |
개별 VM 단위의 CPU, 메모리, 디스크 I/O, 네트워크 사용량 |
— |
| 위의 메트릭에 대해 진행할 예정 |
|
|
|
Additional Context
코어 2번에서 테스트 한 후에 3,4 번에 붙일 예정.
맘 같아선 main 을 3,4, 번에 밀고 싶지만 아직 완전한 검증인 이루어지지 않음.
그래서 3,4 번 위에 체리픽해서 올린 이후에 새로운 버전 나오면 붙일 예정( metric endpoint 를 새롭게 만드는 거라 충돌 범위 거의 x)
Summary
로그 및 메트릭 수직 수요가 부상하면서 견고한 메트릭 서버 설치가 필요해짐.
Details
shell 스크립트 검토
메트릭 수집 정의서
1. HTTP API 메트릭
http_requests_totalmethod,endpoint,status_code)http_request_duration_secondsendpoint)http_requests_in_flight2. VM 라이프사이클 메트릭
kws_vm_totalstate— Running, Stopped 등)kws_vm_create_totalkws_vm_delete_totalkws_vm_shutdown_totalkws_vm_create_duration_secondskws_vm_operation_errors_totaloperation)3. 스냅샷 메트릭
kws_snapshot_create_totaltype)kws_snapshot_delete_totaltype)kws_snapshot_revert_totaltype)4. 시스템 컴포넌트 메트릭
kws_domcon_registered_domainskws_libvirt_connection_up1, 비정상:0)5. 인프라 수집 메트릭 (node_exporter / libvirt-exporter)
5-1. CPU & 하이퍼바이저
cpufreq/proc/statkvm_exits,kvm_halt_exits5-2. 메모리
sys/kernel/mm/ksm/5-3. 스토리지
5-4. 네트워크
5-5. VM 개별 (Per-VM)
Additional Context
코어 2번에서 테스트 한 후에 3,4 번에 붙일 예정.
맘 같아선 main 을 3,4, 번에 밀고 싶지만 아직 완전한 검증인 이루어지지 않음.
그래서 3,4 번 위에 체리픽해서 올린 이후에 새로운 버전 나오면 붙일 예정( metric endpoint 를 새롭게 만드는 거라 충돌 범위 거의 x)