본문으로 건너뛰기

6.3 PostgreSQL과 node_exporter 연결

PostgreSQL Exporter는 database 내부 신호를 보여 주고 node_exporter는 host 자원 신호를 보여 줍니다. 두 exporter의 instance, cluster, environment label을 일관되게 만들어야 dashboard와 alert에서 연결할 수 있습니다.

상관관계 예시

PostgreSQL 신호Linux 신호
active session 증가CPU PSI와 run queue
block read 증가device read latency
checkpoint 증가write await와 I/O PSI
connection 실패socket과 file descriptor

두 신호를 같은 시간축에 놓고 CPU 때문에 query가 밀리는지, cache miss가 storage 병목으로 이어지는지 확인합니다. Write burst가 query를 늦추는지, accept queue나 FD가 포화됐는지도 이 상관관계로 판단합니다.

PromQL 예시는 다음과 같습니다.

rate(node_cpu_seconds_total{mode!="idle"}[5m])
rate(node_pressure_cpu_waiting_seconds_total[5m])

Metric 이름은 node_exporter와 collector version에 따라 확인합니다. /metrics와 Prometheus expression browser에서 실제 series를 먼저 조회합니다.

Dashboard는 같은 time range와 annotation을 공유하도록 구성합니다. 배포, backup, failover, kernel update annotation이 있으면 원인 후보를 훨씬 빨리 줄일 수 있습니다.

참고: node_exporter, Prometheus instrumentation