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인지와 최근 데이터가 들어오는지까지 봅니다.