Grafana rules
프로젝트를 진행중에 Grafana에서 CPU 사용량이 50% 이상일 때 자동으로 Slack에 알림이 전송해야하는 요구사항이 있었습니다.
CPU 사용량이 50%이상일 때 Slack으로 알람을 보내려면 먼저 사용 중인 모니터링 시스템에 따라 적절한 CPU 사용량 메트릭을 선택해야 합니다.
현재 저희 프로젝트에서는 모니터링 시스템을 Prometheus로 지정했습니다.
1. Grafana 대시보드에서 "Alerting" 메뉴로 이동
2. "New alert rule"을 클릭하여 새 알림 규칙 생성
3. "Query" 섹션에서 위의 메트릭 중 하나를 선택
CPU 사용량을 모니터링하기 위해서는 system_cpu_usage 또는 process_cpu_usage 메트릭을 사용해야 합니다.
system_cpu_usage
- 애플리케이션이 실행 중인 시스템의 "최근 CPU 사용량"을 나타냅니다.
- 이는 전체 시스템의 CPU 사용량을 모니터링하는 데 유용합니다.
process_cpu_usage
- Java Virtual Machine 프로세스의 "최근 CPU 사용량"을 나타냅니다.
- 이는 특정 Java 애플리케이션의 CPU 사용량을 모니터링하는 데 적합합니다.
따라서 저의 목표는 각 애플리케이션의 CPU 사용량이 50%를 넘으면 알람을 발송하는 것이 목표이기 때문에 각 애플리케이션의 CPU 사용량을 모니터링하기에는 "process_cpu_usage"가 적합하다고 판단되어 "process_cpu_usage"로 지정했습니다.
매트릭을 선택한 후 100을 곱하여 백분율로 바꾸고, 해당 백분율이 50보다 크면 CPU 사용량이 50%를 넘었다는 것을 의미하기 때문에 위와 같이 쿼리를 지정해주었습니다.
4. Alert condition
- Condition: IS ABOVE
- Threshold: 1
쿼리 결과가 1을 초과할 때 알림이 트리거됩니다. 이는 해당 애플리케이션의 CPU 사용량이 50%를 넘었을 때 트리거가 된다는 것을 의미합니다.
테스트
테스트를 위해 CPU 사용량이 5% 이상일 때 알람을 보내도록 지정했습니다.
Run queries를 돌려보면, 위 사진에서 볼 수 있듯이 12.44816이 나왔습니다. 이는 5% 임계값을 초과하므로 알림이 트리거되어야 합니다.
알림 상태: "Firing" (빨간색으로 표시됨) 이는 알림이 실제로 트리거되고 있음을 나타냅니다.
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2024.10.16 - 1 대 N VS 중간 테이블 고민 (0) | 2024.10.16 |
---|---|
[TIL, 일일 회고] 2024.10.15 - 테이블에서 컬럼 추가하기 (IntelliJ) (0) | 2024.10.15 |
[TIL, 일일 회고] 2024.10.13 - vi/vim 명령어 (1) | 2024.10.13 |
[TIL, 일일 회고] 2024.10.12 - @SneakyThrows란❓ (0) | 2024.10.12 |
[TIL, 일일 회고] 2024.10.11 - SDK란 무엇일까❓ (토스페이먼츠 SDK) (2) | 2024.10.11 |