그라파나 알림
시스템이 예기치 못한 사유로 동작하지 않을 때 알람을 통해서 원인을 쉽게 찾기 위해서 사용
폴링 / Webhook

출처: 블로그
폴링: 클라이언트가 지속적으로 API 호출하여 서버에 이벤트가 발생 했는지 응답 확인
웹훅: 서버에 해당 이벤트가 발생하면 서버가 응답
모니터링 알람은 서버에 문제가 발생하면 알려주는 웹훅 방식을 사용합니다.
디스코드 웹훅 등록


디스코드 설정 창에서 연동을 클릭하고 웹훅 URL을 생성 합니다. 웹훅을 생성한 후 생성된 URL 복사 합니다.



그라파나 알림 룰에 들어가서 Contact points를 클릭하여 어디로 알림을 전송할지 설정합니다.
알림 등록

Alert rules를 클릭하여 새로운 알림을 등록합니다.
운영 환경에서 톰캣 스레드가 고갈된다면 위험 상황이기 때문에 알림을 보내도록 설정하겠습니다.

톰캣의 최대 스레드 수에서 현재 사용 중인 스레드를 빼면 남은 스레드 수가 됩니다.

폴더 설정은 알림을 어떻게 분류할지 정하는 것이기 때문에 없다면 새로운 폴더를 만드시면 됩니다.
다음으론 평가 행동을 작성하시면 됩니다.
Evaluation group and interval: 알림 대상의 상태를 얼마 간격으로 살펴 볼지 결정
Pending period: 알림 상태가 달성, 미달성을 반복한다면 알림이 무수히 오게 됩니다.
그런 상황을 막기 위해서 알림을 보류하는 시간입니다. 해당 시간 동안 알림 상태가 지속된다면
알림을 보내게 됩니다.
Keep Firing for: 장애가 해결되어 정상 수치가 되더라도 일정 시간 동안은 알림 상태를 유지합니다.
알림 테스트

알림을 등록한 후 간단한 컨트롤러를 만들어 테스트해보겠습니다.
테스트를 위해 어플리케이션 톰캣 스레드 최대 수를 일시적으로 1개로 설정하였습니다.

스레드를 2초간 점유하여 고갈 상태를 만드는 API 입니다.
호출할 경우 여유 스레드 수가 0개가 되어 알림 상태를 만족합니다.


Pending 처리한 알림은 상태를 지켜보고 있지만 즉시 고갈 알림은 Firing 상태가 되어 알림을 전송합니다.

각 메트릭 들을 관리하고 위험 상태 시 알림을 보내면 조금 더 안정적인 서비스를 운영할 수 있습니다.

'Spring' 카테고리의 다른 글
| [ Spring ] 트랜잭션과 synchronized (0) | 2025.12.20 |
|---|---|
| @Async 메일 전송 개선하기 (0) | 2025.09.06 |
| [ Spring ] Swagger 415 Unsupported Media Type (0) | 2025.08.04 |
| [ Spring ] Enum Type 검증 (0) | 2025.02.25 |
| [Spring] @ExceptionHandler API 에러 핸들링 (3) | 2024.09.06 |
