Skip to content

Bug: 로그 백업 누락 알림 룰이 Loki 쿼리 한도 초과로 미동작 #125

Description

@seongm1n

backup-rules.ymlbackup-applog-missing 룰이 722시간 범위를 조회하는데, Loki의 max_query_length 기본값은 721시간이다. 쿼리가 the query time range exceeds the limit으로 거부되고, execErrState: KeepLast 설정이 이 오류를 삼켜 룰이 아무 동작도 하지 않는다.
현재 앱 로그 S3 백업이 30일간 중단되어도 알림이 발생하지 않는 상태다.

재현

  • backup-rules.ymlrelativeTimeRange.from: 2599200(722h), expr: 'sum(absent_over_time({job="backup", type="applog"}[722h]))'
  • loki-config.ymllimits_config에는 retention_period: 744h만 지정되어 있어 max_query_length는 Loki 기본값 721h가 적용된다
  • Grafana 알림 룰 상태에서 해당 룰이 정상 평가되지 않음을 확인할 수 있다

작업 내용

  • backup-applog-missing의 조회 범위를 한도 이내로 조정 (722h → 696h)
  • loki-config.ymllimits_configmax_query_length/max_query_lookback을 보존 기간에 맞춰 명시
  • execErrStateKeepLast에서 Error로 변경하여 쿼리 실패가 DatasourceError 알림으로 표면화되도록 수정
  • 수정 후 룰이 정상 평가되는지 Grafana에서 확인

비고사항

  • 같은 파일의 backup-db-missing은 170h 조회라 한도 이내이며 정상 동작한다.
  • execErrState: KeepLast는 현재 모든 알림 룰에 공통 적용되어 있어, 데이터소스 장애 전반이 감지되지 않는다. 룰 전체에 대한 정리는 Chore: 장애 감지 공백 보완 및 알림 노이즈 정리 #126 에서 다룬다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions