피드로 돌아가기
Grafana Tempo Has a Free API — Distributed Tracing Without Sampling
Dev.toDev.to
Backend

Grafana Tempo가 샘플링 없이 100% 트레이스 저장을 S3/GCS 같은 객체 저장소만으로 구현

Grafana Tempo Has a Free API — Distributed Tracing Without Sampling

Alex Spinov2026년 3월 28일3intermediate

Context

Jaeger나 Zipkin 같은 기존 분산 추적 시스템은 복잡한 데이터베이스 인프라가 필요했고, 비용 최적화를 위해 샘플링으로 인한 데이터 손실을 감수해야 했다.

Technical Solution

  • 객체 저장소(S3, GCS, Azure Blob) 기반 백엔드 도입: 데이터베이스 대신 저비용 객체 저장소를 트레이스 저장소로 사용
  • TraceQL 쿼리 언어 지원: SQL 유사 문법으로 저장된 트레이스를 검색하고 분석
  • 다중 프로토콜 수신: Jaeger, Zipkin, OTLP, OpenCensus 형식의 트레이스 데이터 동시 수용
  • Grafana 네이티브 통합: Loki, Prometheus와 함께 사용하며 트레이스-로그 상관관계 제공
  • HTTP(4318포트)와 gRPC(4317포트) 엔드포인트: OTLP를 통한 두 가지 전송 방식 제공

Key Takeaway

분산 추적 시스템에서 복잡한 데이터베이스 대신 객체 저장소를 활용하면 인프라 복잡성을 크게 줄이면서 100% 데이터 보존이 가능하다.


마이크로서비스 환경에서 분산 추적을 도입할 때, Tempo를 선택하면 S3나 GCS 같은 기존 인프라만으로도 전체 트레이스를 샘플링 손실 없이 저장하고 TraceQL 쿼리로 검색할 수 있으므로, 복잡한 트레이싱 백엔드 운영 비용을 절감할 수 있다.

원문 읽기