녹음 규칙 구성
녹음 규칙 구성 (Configure recording rules)
녹음 규칙(recording rules)은 자주 사용하거나 계산 비용이 큰 쿼리를 주기적으로 미리 계산해 그 결과를 새 시계열 메트릭으로 저장하게 해줘요. 예를 들어 1분 내 특정 로그 오류 발생 횟수를 세는 error_9001_count라는 새 메트릭을 만드는 녹음 규칙을 만들고, 그 메트릭을 대시보드와 알림 규칙에서 쿼리할 수 있죠.
출처: 문서
본문
녹음 규칙은 다양한 시나리오에서 유용해요:
- 빠른 쿼리 필요: 무거운 집계나 대용량 데이터셋은 실시간 쿼리보다 미리 계산된 결과로 더 빠르게 처리돼요.
- 시스템 부하 감소: 특정 쿼리를 미리 계산하면 동시 다발 쿼리로 인한 시스템 과부하를 줄일 수 있어요.
- 복잡한 집계 단순화: 복잡한 집계에서 새 메트릭을 만들어 알림과 대시보드 구성을 쉽게 해요.
- 쿼리 재사용으로 비용 절감: 비슷한 알림 규칙과 대시보드에서 같은 쿼리를 재사용해 효율을 높여요.
녹음된 메트릭이 동작하는 방식
녹음 규칙은 고정된 평가 간격(예: 1m 또는 5m마다)으로 규칙 정의를 평가하고, 그 결과인 단일 값을 녹음된 메트릭의 새 데이터 포인트로 기록해 새 메트릭을 생성해요. 규칙 정의는 인스턴트(instant) 쿼리나 Range 쿼리와 Reduce 표현식의 조합에서 그 단일 값을 반환해야 해요.
녹음된 메트릭은 원래 원시 데이터와 정확히 일치한다고 보장되지 않아요. 녹음 규칙 쿼리의 집계와 평가 지연(evaluation lag)이 원시 데이터와 다른 결과를 만들 수 있죠. 더 짧은 평가 간격은 해상도를 높여 이 차이를 줄일 수 있어요. 녹음 규칙의 PromQL 권장사항은 Prometheus recording rules best practices 문서를 참고하세요.
녹음된 메트릭에 대한 알림
알림 규칙이 녹음된 메트릭을 쿼리할 때 다음을 고려하세요:
- 빈번한 평가 간격 사용: 녹음 규칙에 빈번한 평가 간격을 설정해요. 한 시간 같은 긴 간격은 녹음된 메트릭이 오래되어 알림 규칙 평가가 어긋날 수 있어요(특히 긴 pending period와 결합될 때).
- 알림 평가를 녹음 빈도에 맞추기: 녹음된 메트릭에 의존하는 알림 규칙의 평가 간격은 녹음 규칙의 간격과 맞춰야 해요. 녹음 규칙이 3분마다 실행된다면 알림 규칙도 비슷한 빈도로 평가해 신선한 데이터로 동작하게 해요. 평가 순서에 대한 자세한 내용은 그룹 내 규칙이 평가되는 방식 문서를 참고하세요.
- 인스턴트 쿼리에
_over_time함수 사용: 모든 알림 규칙은 결국 인스턴트 쿼리로 실행되므로max_over_time(my_metric[5m])같은 함수를 인스턴트 쿼리로 쓸 수 있어요. 이렇게 하면 range 쿼리와 reduce 표현식 없이 일정 기간의 집계 값을 얻을 수 있어요.
녹음 규칙의 유형
알림 규칙과 유사하게 Grafana는 두 가지 유형의 녹음 규칙을 지원해요:
- Grafana-managed recording rules: 알림을 지원하는 모든 Grafana 데이터 소스를 쿼리할 수 있어요. 권장 옵션이에요.
- Data source-managed recording rules: Mimir나 Loki 같은 Prometheus 기반 데이터 소스를 쿼리할 수 있어요.