피드로 돌아가기
Dev.toBackend
원문 읽기
Grafana Tempo가 샘플링 없이 100% 트레이스 저장을 S3/GCS 같은 객체 저장소만으로 구현
Grafana Tempo Has a Free API — Distributed Tracing Without Sampling
AI 요약
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 쿼리로 검색할 수 있으므로, 복잡한 트레이싱 백엔드 운영 비용을 절감할 수 있다.