Observability 분석 방법

지원 버전: Loki 3.0+, Tempo 2.4+, Prometheus 2.50+, Grafana 10.0+ 마지막 업데이트: 2026년 2월 23일

< 이전: 운영 알림 구성 | 목차 | 다음: 관측성 스택 운영 >


목차


상관 분석 전략

효과적인 관측성(Observability)은 로그, 메트릭, 트레이스 세 가지 신호(Three Pillars)를 상호 연결하여 분석할 때 진정한 가치를 발휘합니다. 상관 분석을 통해 문제의 근본 원인을 신속하게 파악할 수 있습니다.

Trace ID 전파

분산 시스템에서 요청을 추적하려면 Trace ID를 모든 서비스 간에 전파해야 합니다.

W3C TraceContext 표준

W3C TraceContext는 분산 추적을 위한 표준화된 HTTP 헤더 형식입니다.

  • trace-id: 32자리 16진수 (128비트)

  • span-id: 16자리 16진수 (64비트)

  • flags: 2자리 16진수 (샘플링 결정 등)

B3 헤더 형식 (Zipkin 호환)

OpenTelemetry SDK 계측 패턴

애플리케이션에서 OpenTelemetry SDK를 사용하여 자동 및 수동 계측을 구현합니다.

Go 애플리케이션 계측

Python 애플리케이션 계측

Exemplars: 메트릭과 트레이스 연결

Exemplars는 메트릭과 특정 트레이스를 연결하여 이상 징후가 발생한 정확한 요청을 추적할 수 있게 합니다.

Log-Trace 상관관계

로그에 Trace ID를 주입하여 로그와 트레이스를 연결합니다.

구조화된 로깅 (JSON)

Logback 설정 (Java/Spring)

아키텍처 다이어그램

spinner

상관 분석 워크플로우

문제 발생 시 상관 분석을 통한 근본 원인 분석 워크플로우입니다.

spinner
  1. Alert 발생: Prometheus에서 알림 트리거

  2. Metric 확인: 관련 메트릭 대시보드에서 이상 패턴 확인

  3. Trace 조회: Exemplar를 통해 또는 시간 범위로 관련 트레이스 검색

  4. Span 분석: 트레이스 내 개별 span에서 지연 또는 오류 구간 식별

  5. Log 조회: Trace ID로 관련 로그 필터링하여 상세 컨텍스트 확인

  6. 근본 원인 파악: 수집된 정보를 종합하여 문제 원인 도출


Loki LogQL 분석

Loki의 LogQL은 Prometheus의 PromQL에서 영감을 받은 로그 쿼리 언어입니다. 스트림 선택자와 필터를 조합하여 로그를 검색하고 분석합니다.

오류율 계산

지연 시간 추출

JSON 형식 로그에서 지연 시간을 추출하고 분석합니다.

로그 기반 알림 규칙

Loki Ruler를 사용하여 로그 기반 알림을 설정합니다.

레이블 전략과 카디널리티

Loki에서 효율적인 쿼리를 위한 레이블 전략입니다.

LogQL 패턴 매칭 및 파싱

집계 쿼리

멀티라인 로그 처리

스택 트레이스와 같은 멀티라인 로그를 처리합니다.

전체 Loki 알림 규칙 예시


Prometheus PromQL 패턴

PromQL은 시계열 데이터를 쿼리하고 분석하기 위한 강력한 표현식 언어입니다.

RPS (Requests Per Second) 계산

RED 메소드 구현

RED(Rate, Errors, Duration) 메소드는 서비스 모니터링의 황금 신호입니다.

Istio Service Mesh 메트릭

Istio 환경에서 서비스 간 통신 메트릭을 분석합니다.

ALB 메트릭 (CloudWatch 연동)

Amazon Managed Prometheus(AMP)에서 CloudWatch 메트릭을 쿼리합니다.

AMP (Amazon Managed Prometheus) 쿼리 패턴

Recording Rules

자주 사용하는 쿼리를 Recording Rule로 사전 계산하여 성능을 최적화합니다.

Recording Rules YAML 전체 예시


Tempo TraceQL 분석

Grafana Tempo의 TraceQL은 분산 트레이스를 쿼리하기 위한 언어입니다.

기본 TraceQL 구문

지연 시간 분석

오류 트레이스 검색

서비스 의존성 매핑

Span 속성 필터링

구조적 쿼리 (부모-자식 관계)

트레이스 비교 (배포 전후)

서비스 그래프 생성

Tempo는 트레이스 데이터로부터 서비스 그래프를 자동 생성할 수 있습니다.

TraceQL 고급 패턴


Grafana 대시보드

Grafana에서 메트릭, 로그, 트레이스를 통합하여 시각화하고 상관 분석을 수행합니다.

RED 메소드 대시보드

USE 메소드 (인프라)

USE(Utilization, Saturation, Errors) 메소드는 리소스 모니터링에 적합합니다.

크로스 데이터소스 링킹

Grafana에서 Prometheus, Loki, Tempo 간의 연결을 설정합니다.

Prometheus → Tempo (Exemplars)

Loki → Tempo (Derived Fields)

대시보드 프로비저닝

변수 템플릿

네임스페이스 및 서비스 필터링을 위한 대시보드 변수입니다.

통합 관측성 대시보드 JSON


참고 자료


관련 문서


< 이전: 운영 알림 구성 | 목차 | 다음: 관측성 스택 운영 >

마지막 업데이트