TestData 알림
TestData 알림 (TestData alerting)
TestData 데이터 소스는 Grafana Alerting을 지원해요. 외부 데이터 소스에 연결하지 않고도 알림 규칙을 프로토타이핑하고, 임계값 조건을 테스트하며, 알림 파이프라인을 검증할 수 있죠. 특히 예측 가능한 패턴으로 알림 동작을 재현성 있게 테스트하는 데 유용해요.
출처: 문서
본문
시작하기 전에
- TestData 데이터 소스 구성.
- 알림 규칙과 Grafana 관리형 알림 규칙 생성에 익숙해지세요.
알림용 시나리오 선택
시계열 데이터를 반환하는 TestData 시나리오는 알림 규칙 조건과 함께 동작해요. 테스트하려는 동작에 따라 시나리오를 선택하세요:
| Scenario | Alerting use case |
|---|---|
| Predictable Pulse | 결정적 on/off 패턴. 고정 주기로 반복 가능한 알림 발동·해소 생성. |
| Random Walk | 비결정적 시계열. 빠른 프로토타이핑과 알림 평가 부하 테스트에 유용. |
| CSV Metric Values | 제어된 고정 값. 정확한 임계값 경계 테스트. |
| Predictable CSV Wave | 커스텀 반복 파형. 정밀한 제어로 복잡한 임계값 패턴 테스트. |
| Random Walk (with error) | 데이터와 오류를 함께 반환. 알림이 부분 실패를 처리하는 방식 테스트. |
| Error with source | 플러그인 또는 다운스트림 오류 반환. 알림 평가 오류 처리 테스트. |
| No Data Points | 빈 결과 반환. no-data 알림 조건 테스트. |
| Slow Query | 구성 가능한 지연 도입. 알림 평가 타임아웃 테스트. |
로그·트레이스·스트리밍 데이터를 만드는 시나리오는 임계값 기반 알림 조건에 적합하지 않아요.
알림 규칙 만들기
- Alerting > Alert rules로 이동해요.
- New alert rule을 클릭해요.
- 규칙 이름을 입력해요.
- TestData 데이터 소스를 선택해요.
- Scenario 드롭다운에서 시나리오를 선택해요 (예: Predictable Pulse).
- 시나리오 옵션을 구성해요.
- 시리즈를 집계하는 Reduce 표현식을 추가해요 (예: Last value).
- 조건을 정의하는 Threshold 표현식을 추가해요 (예: Is above
0.5). - 평가 간격과 pending 기간을 설정해요.
- 알림과 라벨을 구성해요.
- Save rule을 클릭해요.
자세한 절차는 "Create a Grafana-managed alert rule" 문서를 참고하세요.
예제: Predictable Pulse 알림
Predictable Pulse 시나리오는 반복적인 on/off 파형을 생성하는데, 발동 패턴이 결정적이고 재현 가능해서 알림 규칙 테스트에 이상적이에요.
- Predictable Pulse 시나리오를 선택해요.
- 펄스 옵션을 구성해요:
| Field | Value | Effect |
|---|---|---|
| Step | 60 | 60초마다 데이터 포인트 하나. |
| On Count | 3 | "on" 값에서 연속 3개 포인트. |
| Off Count | 6 | "off" 값에서 연속 6개 포인트. |
| On Value | 1 | "on" 단계 중 값. |
| Off Value | 0 | "off" 단계 중 값. |
- 함수 Last로 Reduce 표현식을 추가해요.
- Threshold 표현식을 추가해요: Is above 0.5.
이 구성에서 알림은 3분(3×60s on 포인트) 동안 발동하고 6분(6×60s off 포인트) 동안 해소되며 무한정 반복돼요. step, on count, off count를 조정해 타이밍을 제어할 수 있어요.
예제: CSV Metric Values 임계값 알림
CSV Metric Values 시나리오는 데이터 포인트의 정확한 시퀀스를 정의하게 해줘서 정밀한 임계값 경계 테스트에 유용해요.
- CSV Metric Values 시나리오를 선택해요.
- String Input 필드에 쉼표로 구분된 값 목록을 입력해요. 예:
10,45,70,95,50,20
- 함수 Last로 Reduce 표현식을 추가해요.
- Threshold 표현식을 추가해요: Is above 80.
이 입력에서 시리즈는 10, 45, 70, 95, 50, 20 값을 순환해요. 알림은 감소된 값이 80(95 데이터 포인트)을 초과할 때 발동하고 임계값 아래로 떨어지면 해소돼요. 이 방식은 임계값 조건이 기대한 정확한 경계에서 발동하는지 검증하는 데 유용해요.
오류와 no-data 조건 테스트
TestData에는 알림이 실패에 어떻게 대응하는지 테스트하는 시나리오가 포함돼 있어요. 프로덕션 데이터 소스에 연결하기 전에 알림 규칙이 엣지 케이스를 올바르게 처리하는지 검증하세요.
No data: No Data Points 시나리오를 선택해요. 백엔드가 빈 결과를 반환해 알림 규칙의 no data 상태를 트리거해요. 규칙이 데이터 없음 시 알림·마지막 상태 유지·해소 중 무엇을 하도록 구성했는지 검증하세요. 이 동작은 알림 규칙의 "No data and error handling" 섹션에서 구성해요.
Errors: Error with source를 선택하고 오류 유형을 골라요.
- Plugin — 플러그인 자체의 실패를 시뮬레이션해요. 알림이 오류 상태로 들어가요.
- Downstream — 데이터 소스나 네트워크의 실패를 시뮬레이션해요. 알림이 downstream 분류로 오류 상태에 들어가요.
또한 Random Walk (with error)를 사용해 오류와 함께 유효한 데이터를 반환하게 해, 알림 엔진이 부분 실패를 처리하는 방식을 테스트할 수 있어요.
Timeouts: Slow Query를 선택하고 String Input 필드를 평가 간격보다 긴 지속 시간으로 설정해요 (예: 10초마다 평가되는 규칙에 30s). 기본 지연은 5s예요. 타임아웃 동작을 검증하고 쿼리가 너무 오래 걸릴 때 알림이 예상 상태로 전환되는지 확인하세요.
제한 사항
- 알림 쿼리에서 템플릿 변수 미지원: Grafana는 대시보드 컨텍스트 없이 백엔드에서 알림 규칙을 평가하므로
$varname같은 템플릿 변수가 알림 평가 중 해석되지 않아요. 시나리오 옵션에 고정 값을 사용하세요. - 알림 조건과 함께 동작하는 시나리오는 시계열뿐: 알림 조건은 숫자 시계열 데이터를 요구해요. 로그(Logs), 트레이스(Trace), 그래프(Node Graph, Flame Graph), 어노테이션(Annotations), 테이블(Table Static)을 만드는 시나리오는 알림 조건으로 쓸 수 없어요.
- 스트리밍 시나리오는 알림 엔진이 평가하지 않음: 알림 엔진은 고정 간격으로 쿼리를 평가하며 스트리밍 데이터를 소비하지 않아요. 알림 규칙에 스트리밍이 활성화된 Streaming Client, Grafana Live, Simulation 사용을 피하세요.