Architecture

- Distributor: Jaeger, OpenTelemetry, Zipkin을 포함한 여려형태의 span을 허용함. 최상의 성능을 위해 Otel 프로토콜로 수집하는 방식이 권고된다.
- Ingester: trace를 block으로 나누고 볼륨 필터와 인덱스를 생성하 후 backend로 flush함.
- Query Frontend: 입랙되는 query에 대한 검색 공간을 분할하는 역할
- Querier: 요청된 traceId를 ingester 또는 backend storage에서 찾는 역할을 수행함.
- Compactor: backend 저장소에서 블록을 스트리밍하여 총 블록수를 줄임.
- Metrics generator: 수집된 trace 메트릭을 파생하고 메트릭 저장소에 쓴다. optional.

- Grafana Tempo는 tracing data를 저장하고 쿼리하는데 사용되는 대규모 분산 추적 백엔드 시스템임.
docker-compose로 설치
git clone https://github.com/grafana/tempo.git
cd tempo/example/docker-compose/local
docker compose up -d
docker compose ps
NAME COMMAND SERVICE STATUS PORTS
local-grafana-1 "/run.sh" grafana running 0.0.0.0:3000->3000/tcp
local-k6-tracing-1 "/k6-tracing run /ex…" k6-tracing running
local-prometheus-1 "/bin/prometheus --c…" prometheus running 0.0.0.0:9090->9090/tcp
local-tempo-1 "/tempo -config.file…" tempo running 0.0.0.0:3200->3200/tcp, 0.0.0.0:4317-4318->4317-4318/tcp, 0.0.0.0:9411->9411/tcp, 0.0.0.0:14268->14268/tcp
- 실행 화면
