🔶 Create a Grafana managed alerting rule
이번 포스팅은 Grafana에서 Amazon Timestream을 연동해서, 특정 데이터가 들어오는 경우 이메일로 알림을 보내도록 하는 과정을 설명합니다.
✔ New alert rule
- Grafana에서 Alerting 페이지에 들어가서 New alert rule을 클릭
✔ Rule type
- Rule name은 어떤 규칙인지 설명해주면 좋음.
- type을 Grafana managed alert으로 설정.
- Folder - 선택하지 않으면 General folder에 저장된다고 tutorial에 적혀 있었는데, 설정을 해줘야 만 했음. 원하는 폴더 선택.
✔ Create a query to be alerted on
- Query name - 디폴트 네임 사용하거나 hover 해서 변경
- Data source - 쿼리를 위해서 데이터 소스를 선택함.
- 하나 이상의 쿼리 또는 expression을 추가.
- Expression
1) Classic condition - 단일 경고 규칙 생성
- 기본 조건 표현식을 사용해 조건이 충족될 때 단일 경고를 트리거하는 규칙을 생성함.
- 여러 시리즈를 반환하는 쿼리의 경우 Grafana는 각 시리즈의 경고 상태를 추적하지 않음.
2) Math, Reduce, Resample - 각 시리즈에 대해 별도의 경고를 생성. 다차원 규칙
- 각 쿼리에 대한 표현식을 추가 reduce 하여 선택한 시간 범위의 값을 단일 값으로 집계.
- 쿼리를 사용해서 원하는 데이터 값을 Timestream에서 select 한 후,
- expression에서는 불러온 데이터 중 마지막 값이 3에서 34 값인 경우 필터링 하도록 했다.
- Run queries를 통해서 쿼리의 결과를 확인할 수 있다.
- expression 종류는 다양함.
✔ Define alert conditions
- Condition - alert rule을 트리거할 쿼리 또는 표현식 선택.
- Evaluate every - 평가 빈도 지정. 10초의 배수여야 함.
- Evaluate for - 경고가 발생하기 전에 조건이 참이어야 하는 기간 지정.
- Configure no data and error handling - 데이터가 없을 때 경고 동작 구성
- Preview alerts - 현재 쿼리 실행 결과를 확인.
✔ Add details for your alert
- 규칙과 연결된 추가 메타데이터를 추가함.
- 경고 메시지를 사용자 정의하려면 설명과 요약을 추가함.
- 사용자 지정 레이블 추가.
- Contact points는 알림 규칙의 조건이 충족될 때 알림을 보내는 채널.
- Contact point type은 Email, Line, MS Teams, Slack 등 다양함.
- name, type, address를 설정해준다.
- Test 버튼을 클릭하면 해당 address로 테스트 알림이 발송된다.
🔶 Notification policies
- alert이 contact point로 라우팅되는 방식을 결정함.
- Root policy는 모든 알람이 디폴트로 보내지는 contact point를 설정한다.
- Specific routing을 사용해서 특정 알림은 정해진 contact point로만 알림이 가도록 설정할 수 있다.
- 앞에 설정해준 alertname=TestRule을 사용해서 TestMail로 알림이 가도록 설정해두었다.
🔶 Alert Test
- 설정해둔 alert rule에 따라서 alert이 제대로 발생하는지 확인.
- rule에서 humidity 값이 3 ~ 34 사이의 값이 나오는 경우 rule을 trigger하도록 설정해두었다.
- 아래 사진은 value가 33이어서 alerting 되었다.
- 메일에도 알림이 잘 발송되었다.
Grafana alerting 참조
Expression 참조