Grafana Tempo

지원 버전: Tempo 2.x 마지막 업데이트: 2026년 2월 20일

소개

Grafana Tempo는 대규모 분산 추적을 위한 오픈소스 백엔드입니다. Tempo는 추적 데이터만 저장하고 인덱싱을 최소화하여 비용 효율적인 운영이 가능합니다. TraceID만 알면 어떤 추적도 찾을 수 있으며, Grafana와의 긴밀한 통합으로 로그, 메트릭과의 상관분석이 용이합니다.

주요 특징

특징
설명

인덱스 없는 저장

TraceID 기반 저장으로 인덱싱 비용 제거

Object Storage 지원

S3, GCS, Azure Blob을 백엔드로 사용

다양한 프로토콜

Jaeger, Zipkin, OTLP 등 다양한 형식 수신

TraceQL

강력한 추적 쿼리 언어

Grafana 통합

Loki, Prometheus와의 네이티브 연동

수평 확장

마이크로서비스 아키텍처로 확장 가능

아키텍처

Tempo는 다음과 같은 주요 구성 요소로 이루어져 있습니다:

spinner

구성 요소 상세

컴포넌트
역할
확장 전략

Distributor

추적 데이터 수신, 유효성 검사, 해싱

수평 확장

Ingester

메모리 버퍼링, 블록 생성, 저장

수평 확장 (복제)

Querier

저장소에서 추적 검색

수평 확장

Query Frontend

쿼리 분할, 캐싱, 대기열 관리

수평 확장

Compactor

블록 압축, 보존 정책 적용

단일 인스턴스

Metrics Generator

추적에서 RED 메트릭 생성

수평 확장

Helm 설치 (Distributed 모드)

1. Helm 저장소 추가

2. values.yaml 구성

3. IRSA 설정

4. 설치 실행

TraceQL 쿼리

TraceQL은 Tempo의 강력한 쿼리 언어입니다.

기본 문법

고급 쿼리 예시

Grafana에서 TraceQL 사용

S3 백엔드 구성

S3 버킷 설정

Terraform으로 S3 및 IRSA 설정

Trace-to-Log 상관분석 (Loki 연동)

Grafana 데이터 소스 설정

애플리케이션 로깅 설정

성능 튜닝

Ingestion Rate 최적화

Compaction 최적화

쿼리 성능 최적화

리소스 권장 사항

컴포넌트
CPU
메모리
디스크
비고

Distributor

0.5-1 core

512Mi-1Gi

-

수평 확장

Ingester

1-2 core

2-4Gi

50-100Gi SSD

WAL 저장

Querier

0.5-1 core

512Mi-1Gi

-

쿼리 복잡도에 따라

Query Frontend

0.3-0.5 core

256-512Mi

-

경량

Compactor

0.5-1 core

1-2Gi

50-100Gi

단일 인스턴스

Memcached

0.1-0.5 core

256Mi-512Mi

-

캐시

트러블슈팅

일반적인 문제와 해결책

1. 추적 데이터가 표시되지 않음

2. S3 권한 오류

3. 쿼리 타임아웃

4. Ingester OOM

유용한 디버깅 명령어

모니터링 대시보드

퀴즈

이 장에서 배운 내용을 테스트하려면 Tempo 퀴즈를 풀어보세요.

마지막 업데이트