Block 3: Observability Correlation (35분)
Prometheus / AMP
"무엇이 문제인가?"
Loki
"왜 발생했는가?"
Tempo
"어디서 발생했는가?"
통합 대시보드
Exemplar를 통한 메트릭 → 트레이스 → 로그 연결
히스토그램 메트릭의 특정 데이터 포인트에 TraceID를 첨부하여 해당 요청의 트레이스로 바로 이동할 수 있게 해주는 기능
데이터 포인트 위의 ◆ = Exemplar (클릭 가능)
| 형식 | 정규식 |
|---|---|
| JSON 필드 | "traceId":"([a-f0-9]+)" |
| W3C Trace Context | traceparent.*-([a-f0-9]{32})- |
| Jaeger | uber-trace-id:([a-f0-9]+): |
Tempo의 강력한 트레이스 쿼리 언어
payment-service에서 발생한 모든 트레이스를 검색합니다.
HTTP POST 요청이 포함된 트레이스를 검색합니다.
에러 상태의 span이 포함된 트레이스를 검색합니다.
HTTP 5xx 에러가 발생한 트레이스를 검색합니다.
1초 이상 걸린 span이 포함된 트레이스를 검색합니다.
500ms ~ 2s 사이의 span을 검색합니다.
HTTP 4xx/5xx 에러이면서 500ms 이상 걸린 트레이스를 검색합니다.
api-gateway에서 에러 span이 5개 이상인 트레이스를 검색합니다.
api-gateway에서 payment-service로 이어지는 호출 경로를 가진 트레이스를 검색합니다.
HTTP GET 이후 100ms 이상 걸리는 DB SELECT가 있는 트레이스를 검색합니다.
마이크로서비스 의존성 그래프
서비스 레벨 모니터링에 적합 (마이크로서비스)
초당 요청 수
에러율
응답 시간
Google SRE 방법론 - 인프라 + 서비스 모니터링
요청 처리 시간
시스템 부하
실패율
리소스 포화도
에러율 급증 시점과 패턴 확인
Exemplar를 통해 에러 트레이스 추적
해결책:
텔레메트리 데이터 수신
데이터 변환 및 필터링
백엔드로 데이터 전송
| 전략 | 샘플링률 | 비용 절감 | Error 캡처 |
|---|---|---|---|
| Head Sampling | 10% | 90% | 10% |
| Tail Sampling | 10% + errors | 80-90% | 100% |
| Adaptive | 동적 | 85-95% | 100% |
| No Sampling | 100% | 0% | 100% |