Troubleshooting 프로세스 Alarm 차원 불일치 - 100-hours-a-week/KTB4-2nd-Cloud GitHub Wiki

프로세스 Alarm이 Metric을 찾지 못함

2026-09-28

🐞 에러 내용

기본 Alarm을 처음 적용한 뒤 Nginx, MySQL, Docker 프로세스 Alarm 세 개가 계속 INSUFFICIENT_DATA였습니다.

yeodam-v1-app-docker-process-missing  INSUFFICIENT_DATA
yeodam-v1-app-mysql-process-missing   INSUFFICIENT_DATA
yeodam-v1-app-nginx-process-missing   INSUFFICIENT_DATA

CloudWatch에서 procstat_lookup_pid_count 지표는 보였는데, Alarm이 그 데이터를 가져오지 못하고 있었습니다.

🔍 원인 분석

list-metrics로 실제 지표의 차원을 조회해서 Alarm 설정과 비교했습니다.

Alarm:  InstanceId + exe + process_name
Metric: InstanceId + exe + pid_finder

Alarm은 Agent 설정에 적은 프로세스 이름을 보고 process_name 차원을 쓰도록 만들었는데, Agent가 실제로 보내는 지표에는 process_name 대신 pid_finder=native가 붙어 있었습니다.

지표 이름이 같아도 차원 조합이 다르니 Alarm은 존재하지 않는 지표를 보고 있었습니다.

✅ 해결 방법

세 Alarm에서 process_name을 빼고 pid_finder를 넣었습니다.

dimensions = {
  InstanceId = aws_instance.app.id
  exe        = each.value
  pid_finder = "native"
}

Plan에서 Alarm 세 개만 제자리 수정되는 것을 확인하고 적용했습니다.

Plan: 0 to add, 3 to change, 0 to destroy.

적용 뒤 세 Alarm이 모두 OK로 바뀌었고, get-metric-statistics로 procstat_lookup_pid_count=1.0이 매분 들어오는 것도 확인했습니다. Dashboard의 프로세스 위젯도 같은 차원으로 고쳤습니다.

회고

Agent 설정을 보고 차원을 추측해서 Alarm을 만들었습니다.

Agent가 보내는 지표에 Alarm을 붙일 때는 list-metrics로 실제 차원부터 확인하고, Alarm 상태가 OK인지와 최근 데이터가 들어오는지까지 봅니다.