본문 바로가기
문서 목차
ORKESTRIX설치

트레이스 저장소 (Tempo)

앱이 OTLP로 보내는 트레이스 (요청 하나가 여러 서비스를 거치는 전체 흐름 기록)를 저장하고, Grafana에서 조회할 수 있게 하는 Tempo 를 설치합니다.

QUANTUM C&S

앱이 OTLP로 보내는 트레이스(요청 하나가 여러 서비스를 거치는 전체 흐름 기록)를 저장하고, Grafana에서 조회할 수 있게 하는 Tempo를 설치합니다.

Tempo는 OpenTelemetry Collector가 받은 트레이스 데이터를 실제로 저장하는 목적지입니다 — Loki(로그)와 같은 역할을 트레이스에 대해 수행합니다.

설정값

inventory/qks/group_vars/all/all-k8s.yaml:

qks_tempo_enabled: true
qks_tempo_version: 1.24.4
qks_tempo_namespace: qks-monitoring
qks_tempo_storage_size: 20Gi

실행

./install.sh ubuntu plays/qks-tempo.yaml

설치 흐름

plays/qks-tempo.yaml
  └─ Helm으로 Tempo 배포 (Single Binary 모드, 내장 PVC로 트레이스 보관)
        - OTLP grpc(4317)/http(4318) 수신 기본 활성화

설치 확인

kubectl get pods -n qks-monitoring | grep tempo

파드가 Running이어야 합니다.

실제 동작 확인

Tempo가 실제로 트레이스를 받아 저장하는지, 테스트 트레이스를 직접 보내 확인합니다:

TS=$(date +%s%N)
TE=$((TS+1000000))
kubectl run otlptracetest --rm -i --image=curlimages/curl --restart=Never -- curl -s -X POST \
  http://qks-otel-collector-collector.qks-otel.svc.cluster.local:4318/v1/traces \
  -H "Content-Type: application/json" \
  -d "{\"resourceSpans\":[{\"resource\":{\"attributes\":[{\"key\":\"service.name\",\"value\":{\"stringValue\":\"manual-test\"}}]},\"scopeSpans\":[{\"spans\":[{\"traceId\":\"0123456789abcdef0123456789abcdef\",\"spanId\":\"0123456789abcdef\",\"name\":\"manual-test-span\",\"kind\":1,\"startTimeUnixNano\":\"$TS\",\"endTimeUnixNano\":\"$TE\"}]}]}]}"

kubectl run curltest --rm -i --image=curlimages/curl --restart=Never -- curl -s \
  http://qks-tempo.qks-monitoring.svc.cluster.local:3200/api/traces/0123456789abcdef0123456789abcdef

조회 결과에 manual-test-span이 보이면 정상 동작하는 것입니다.

다음 단계