Impala 데몬은 디버그 웹 서버에서 메트릭을 노출한다. Prometheus 형식 엔드포인트는 /metrics_prometheus 이며, 별도 exporter 없이 직접 스크레이프할 수 있다. (확인 필요 — 이 엔드포인트는 비교적 최근에 추가되었으므로 운영 중인 버전에서 실제로 응답하는지 먼저 확인한다.)
| 데몬 | 기본 웹 포트 |
|---|---|
| impalad | 25000 |
| statestored | 25010 |
| catalogd | 25020 |
curl -s http://<impalad>:25000/metrics_prometheus | head -20
curl -s http://<impalad>:25000/jsonmetrics | head
응답이 없으면 그 버전에는 해당 엔드포인트가 없는 것이다. 그 경우 /jsonmetrics 를 읽어 Prometheus 형식으로 바꿔 주는 exporter 를 따로 두어야 한다.
기본 스크레이프 경로는 /metrics 이므로 metrics_path 를 명시한다.
scrape_configs:
- job_name: 'impala'
metrics_path: '/metrics_prometheus'
scrape_interval: 30s
static_configs:
- targets:
- 'impalad-1:25000'
- 'impalad-2:25000'
- 'impalad-3:25000'
labels:
role: 'impalad'
- targets: ['statestored:25010']
labels:
role: 'statestored'
- targets: ['catalogd:25020']
labels:
role: 'catalogd'
TLS 나 Kerberos 로 보호된 웹 서버면 스크레이프 쪽에도 설정이 필요하다. Impala 웹 서버에 SPNEGO 가 걸려 있으면 Prometheus 가 직접 붙을 수 없으므로, 해당 데몬의 웹 인증을 사용자·비밀번호 방식으로 바꾸거나 중계 exporter 를 둔다.
basic_auth:
username: '<user>'
password_file: /etc/prometheus/impala_pw
| 항목 | 의미 |
|---|---|
impala_server_num_open_beeswax_sessions · ..._hiveserver2_sessions |
열려 있는 세션 수 |
impala_server_num_queries_registered |
coordinator 에 등록된 쿼리 수 |
impala_admission_controller_local_num_queued |
큐에 대기 중인 쿼리 수 |
impala_server_memory_total_used |
데몬 메모리 사용량 |
impala_thrift_server_*_connections_in_use |
클라이언트 연결 수 |
(확인 필요 — 지표 이름은 버전에 따라 다르므로 실제 엔드포인트 출력에서 확인해 대시보드를 구성한다.)
대기 쿼리 수와 메모리 사용량 두 가지가 실제로 알람을 걸 만한 항목이다. 대기가 꾸준히 쌓이면 리소스 풀이 좁고, 특정 노드만 메모리가 튀면 coordinator 편중을 의심한다.
/metrics 경로에도 사람이 읽는 HTML 페이지가 있으므로, 경로를 잘못 지정하면 파싱 오류만 반복된다.