피드로 돌아가기
Dev.toDevOps
원문 읽기
Log Noise를 Signal로 전환하는 정규화 기반 Grouping Rule 설계
Stop Drowning in Log Noise: How Grouping Rules Turn Chaos into Signal
AI 요약
Context
High-cardinality 데이터가 포함된 로그 메시지의 반복으로 인해 수백 개의 중복 그룹이 생성되는 현상 발생. 개별 메시지마다 고유 ID가 포함되어 동일한 Root Cause를 가진 에러임에도 불구하고 개별 알람이 발생하는 Log Noise 문제 직면.
Technical Solution
- Literal words와 Typed Placeholders를 조합한 Pattern Matching을 통한 로그 메시지 Normalization 수행
- %{TYPE:capture_name} 구문을 활용해 가변 데이터를 Structured Attribute로 추출하여 쿼리 가능하게 설계
-
prefix를 통한 Fingerprint Hash 포함으로 특정 값별 독립적 그룹핑 및 개별 Alerting 체계 구축
- unit 옵션을 적용한 수치 데이터의 Base Unit 자동 변환으로 서비스 간 서로 다른 시간/크기 단위의 정규화 구현
- Optional Matcher(?)와 Alternatives(|) 설계를 통해 다양한 형태의 legacy 로그 패턴을 단일 규칙으로 통합
- Application code 수정 없이 인프라 계층에서 로그 구조를 재정의하는 Zero-instrumentation 접근 방식 채택
실천 포인트
- 로그 메시지 내 ID/UUID 등 가변 값으로 인해 그룹이 분산되는지 확인 - 동일 Root Cause이나 값만 다른 로그를 단일 그룹으로 묶는 정규화 패턴 정의 - 특정 필드(함수명, 컬럼명 등)별로 개별 알람이 필요한 경우 Fingerprint 옵션 검토 - 서로 다른 단위(ms, s, us)로 기록되는 수치 로그의 통합 집계를 위한 Unit Normalization 적용