모니터링 라벨이 너무 많으면 생기는 문제
모니터링 라벨에 사용자 ID나 요청 ID를 그대로 넣으면 시계열 수가 폭증할 수 있습니다. 상세 추적에 필요한 값과 집계에 필요한 값은 다른 저장소와 신호로 다뤄야 합니다.
데이터 흐름의 경계를 확인한다
메트릭은 시간에 따라 집계할 숫자입니다. 라벨 값의 종류가 많아질수록 메트릭 저장량과 쿼리 비용이 커집니다. 고객군이나 작업 종류 같은 낮은 카디널리티 분류는 유용하지만 매 요청마다 다른 ID는 적합하지 않습니다.
실패와 중복 처리를 정한다
요청 ID, 문서 ID, 개별 고객 식별자는 로그나 트레이스에 남기고 메트릭에서는 제거합니다. 메트릭과 트레이스를 연결할 수 있는 예시 포인터를 둘 수는 있습니다. 사용자별 장애를 봐야 한다면 개인정보와 비용 기준을 검토한 별도 분석 경로를 만듭니다.
작은 범위에서 재처리한다
새 라벨을 추가할 때 가능한 값의 개수를 추정합니다. 배포 후 실제 시계열 수와 저장 비용을 관찰하고 상한을 넘으면 되돌립니다. 자유 입력 문자열을 라벨로 허용하는 코드는 사전 검토 대상이 되어야 합니다.
지연과 불일치를 관측한다
활성 시계열 수, 라벨별 값 개수, 쿼리 지연, 저장 비용을 봅니다. 알림이 느려지거나 대시보드가 무거워지면 모니터링 자체가 장애 조사에 방해가 됩니다. 중요한 집계는 고정된 분류 체계로 유지합니다.
복구 절차를 유지한다
모든 세부 정보를 버리라는 뜻은 아닙니다. 측정 목적에 맞게 메트릭·로그·트레이스를 나누면 됩니다. 운영자는 ‘어느 서비스가 느린가’를 메트릭에서 보고 ‘어떤 요청이 왜 느렸나’를 트레이스에서 확인합니다.
현장에 적용할 때의 순서
- 라벨 값의 종류 수 추정
- 고유 ID는 로그·트레이스로 이동
- 배포 뒤 활성 시계열 상한 확인
주의할 실패: 요청 ID를 메트릭 라벨에 넣기
관찰할 지표: 시계열 수·쿼리 지연·비용
적용 전 체크리스트
- 라벨 값의 종류 수 추정
- 고유 ID는 로그·트레이스로 이동
- 배포 뒤 활성 시계열 상한 확인
참고 자료
OpenTelemetry — Metrics. 메트릭과 차원 개념은 OpenTelemetry 공식 문서를 참고했습니다. 라벨 심사와 상한 정책은 적용 제안입니다.
이미지와 도식은 이해를 돕기 위한 개념 시각화입니다. 특정 고객의 실제 설비·데이터·화면을 재현한 것이 아닙니다.
#관측가능성 #메트릭카디널리티 #OpenTelemetry #모니터링 #운영비용 #네이처프랙탈 #시스템설계 #서비스운영 #안정성 #데이터활용
이 주제를 실제 시스템으로 옮기려면 웹 서비스 개발 살펴보기