Observability 스택 구성
1. 관측성 스택 아키텍처
1.1 Full Stack 개요
┌─────────────────────────────────────────────────────────────────────────────┐
│ Grafana (Visualization) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Metrics │ │ Logs │ │ Traces │ │ Dashboards │ │
│ │ Explorer │ │ Explorer │ │ Explorer │ │ & Alerts │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ └──────────────┘ │
└─────────┼─────────────────┼─────────────────┼───────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Prometheus │ │ Loki │ │ Tempo │
│ / AMP │ │ (Log Store) │ │ (Trace Store) │
│ (Metric Store) │ │ │ │ │
└────────┬────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
│ ┌─────────┴─────────┐ │
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Collectors & Agents │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Prometheus │ │ Promtail │ │ OTEL │ │ Grafana │ │
│ │ Scraper │ │ DaemonSet │ │ Collector │ │ Alloy │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
▲
│
┌─────────────────────────────────────────────────────────────────────────────┐
│ Applications & Infrastructure │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Pods │ │ Services │ │ Nodes │ │ Control │ │
│ │ (metrics, │ │ (endpoints) │ │ (kubelet, │ │ Plane │ │
│ │ logs, traces)│ │ │ │ cAdvisor) │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘1.2 컴포넌트 역할
컴포넌트
역할
데이터 유형
스토리지
1.3 스토리지 백엔드 선택
2. Loki 운영 가이드
2.1 Helm 설치
SimpleScalable 모드 (소/중규모)
Distributed 모드 (대규모)
2.2 Loki Distributed Helm Values
2.3 로그 수집기: Promtail vs Grafana Alloy
Promtail DaemonSet 설정
Grafana Alloy 설정
2.4 레이블 설계 전략
권장 레이블
피해야 할 레이블
카디널리티 관리 가이드라인
레이블 유형
최대 권장 값
설명
2.5 리텐션 정책 설정
2.6 인덱스 및 청크 최적화
인코딩
압축률
CPU 사용량
사용 케이스
2.7 LogQL 쿼리 패턴
서비스별 에러율
구조화된 로그에서 지연시간 추출
로그 볼륨 분석
패턴 매칭 쿼리
2.8 알림 규칙 설정
3. Tempo 운영 가이드
3.1 Helm 설치
3.2 Tempo Distributed Helm Values
3.3 OTEL Collector 설정
3.4 샘플링 전략
Head-based 샘플링 (확률적)
Tail-based 샘플링 (조건부)
3.5 TraceQL 쿼리 예제
3.6 서비스 그래프 설정
3.7 Trace-to-Log 연동
3.8 스팬 메트릭 생성기
4. Prometheus/AMP 운영
4.1 AMP 워크스페이스 설정
4.2 Remote Write 설정
4.3 Recording Rules 최적화
4.4 장기 보존 전략
기능
AMP
Thanos
4.5 멀티클러스터 Federation
5. Grafana 연동
5.1 데이터소스 프로비저닝
5.2 Loki → Tempo 연동 (Derived Fields)
5.3 Tempo → Loki 연동 (Trace to Logs)
5.4 Exemplars 설정
5.5 대시보드 프로비저닝
관련 문서
마지막 업데이트