Tempo 데이터 소스 구성
Tempo 데이터 소스 구성 (Configure the Tempo data source)
Tempo 데이터 소스는 Grafana를 Tempo 데이터베이스에 연결하고 다른 텔레메트리 신호와의 기능·통합을 구성할 수 있게 해줘요. Grafana의 데이터 소스 인터페이스 또는 구성 파일로 구성할 수 있습니다. 이 페이지는 Grafana를 Tempo에 연결하고, 인증을 설정하고, 스트리밍을 활성화하는 방법을 설명합니다.
출처: 문서
본문
Tempo 데이터 소스는 Grafana를 Tempo 데이터베이스에 연결하고 다른 텔레메트리 신호와의 기능·통합을 구성할 수 있게 해줍니다. Grafana의 데이터 소스 인터페이스 또는 구성 파일로 구성할 수 있어요. 트레이스 상관 관계 기능, 프로비저닝, 기타 설정은 연결된 하위 페이지를 참고하세요. 트레이싱 환경에 따라 Tempo 인스턴스가 여러 개일 수 있으며, Grafana는 여러 Tempo 데이터 소스를 지원합니다.
시작하기 전에 (Before you begin)
- Grafana 인스턴스에 대한 관리자 권한
- Grafana로 트레이싱 데이터를 보내도록 구성된 Tempo 인스턴스
- 트레이스를 방출하도록 계측된 애플리케이션·서비스. 아직 설정하지 않았다면 Instrument for tracing을 참고하세요.
- Tempo 데이터 소스를 프로비저닝한다면 Grafana 인스턴스를 호스팅하는 서버의 관리 권한도 필요해요. 프로비저닝 지침은 Provision the Tempo data source를 참고하세요.
참고: 프로비저닝된 데이터 소스는 Grafana UI에서 수정할 수 없어요. 설정 폼은 읽기 전용이며 Save & test 버튼이 Test 로 대체됩니다(연결 테스트는 가능하지만 변경 저장은 불가). 변경하려면: 1) 데이터 소스 복제(Clone) — 같은 유형의 새 데이터 소스를 만들고 프로비저닝된 데이터 소스의 설정을 복사. 2) 프로비저닝 파일 업데이트 — YAML 구성 파일 편집.
데이터 소스 추가·수정 (Add or modify a data source)
새 데이터 소스 추가:
- 메인 메뉴에서 Connections 를 선택합니다.
- 검색창에
Tempo를 입력합니다. - Tempo 를 선택합니다.
- 페이지 오른쪽 위에서 Add new data source 를 선택합니다.
- Settings 탭에서 Name, Connection, Authentication 섹션을 완료합니다.
- Name 필드로 패널·쿼리·Explore에서 사용할 이름을 지정하고, 새 패널에서 미리 선택되게 하려면 Default 스위치를 토글합니다. Connection 아래에서 Tempo 인스턴스의 URL 을 입력하고, Authentication 섹션을 완료합니다.
- (선택) 다른 섹션을 구성해 트레이싱 데이터에 기능을 추가합니다. Configure trace correlations와 Other settings 섹션 참고.
- Save & test 를 선택합니다.
기존 데이터 소스 업데이트: Connections → Data sources 에서 수정할 Tempo 데이터 소스를 선택하고, 추가 섹션을 구성·업데이트한 뒤 Save & test 를 선택합니다.
연결 (Connection)
URL 형식은 환경에 따라 다릅니다:
| 환경 | URL 형식 | 예시 |
|---|---|---|
| Self-managed Tempo | http://<TEMPO_HOST>:<PORT> |
http://tempo:3200 |
| Grafana Cloud Traces | https://tempo-<REGION>.grafana.net/tempo |
https://tempo-prod-01-eu-west-0.grafana.net/tempo |
기본 포트는 프로토콜에 따라 다릅니다: HTTP는 3200, gRPC는 9095.
참고: Grafana Cloud에는 Tempo 기반의 사전 구성된 트레이싱 데이터 소스인 Grafana Cloud Traces 가 포함됩니다. 자체 관리 Tempo 인스턴스에 연결하거나 Grafana Cloud Traces가 제공하는 것 이상의 커스텀 구성이 필요할 때 수동으로 Tempo 데이터 소스를 추가하세요. 이 표의 URL은 Grafana에서 트레이스를 쿼리하기 위한 것입니다. 애플리케이션이 트레이스를 Tempo로 보내는 방법(OTLP 엔드포인트)을 구성하려면 Grafana Cloud의 Set up tracing 또는 자체 관리 Tempo의 Instrument for tracing 문서를 참고하세요.
인증 (Authentication)
이 섹션에서 데이터 소스에 접근할 인증 방법을 선택합니다.
참고: Tempo 작업 시 추가 보안 계층으로 Transport Layer Security(TLS)를 사용하세요. TLS 암호화 설정에 대한 자세한 내용은 Configure TLS communication과 Tempo configuration 문서를 참고하세요.
드롭다운 목록에서 인증 방법 선택:
- Basic authentication: 사용자명·비밀번호로 데이터 소스 인증
- Forward OAuth identity: 쿼리하는 사용자의 OAuth 액세스 토큰과 OIDC ID 토큰(가능한 경우)을 데이터 소스로 전달
- No authentication: 데이터 소스 접근에 인증 불필요
Basic authentication 전용: User 와 Password 를 입력합니다.
(선택) TLS settings 완료:
- TLS Client Authentication: 클라이언트 인증 토글. 활성화 시 Server name, Client cert, Client key 필드 추가. 클라이언트는 서버가 검증하는 인증서를 제공해 신뢰된 신원을 확립하고, 클라이언트 키는 클라이언트·서버 간 데이터를 암호화합니다. 이 세부 정보는 Grafana 데이터베이스에 암호화되어 저장됩니다.
- Add self-signed certificate: 자체 서명 TLS 인증서 사용. 인증 기관이 생성한 것 위에 자체 CA 인증서를 추가할 수 있어요.
- Skip TLS certification validation: TLS 인증서 검증 우회. 테스트에 필수적인 경우가 아니면 권장되지 않아요.
(선택) HTTP Headers 추가 — 요청·응답에 대한 추가 컨텍스트·메타데이터를 전달할 수 있어요. Add header 를 선택해 Header 와 Value 필드를 추가합니다. 그 다음 Save & test 를 선택해 변경을 보존합니다.
Grafana Cloud Traces 연결: Basic authentication 을 선택합니다. User 로 Grafana Cloud 스택의 인스턴스 ID(Cloud Portal의 Tempo 데이터 소스 URL에 표시됨)를, Password 로 traces:read 스코프의 Cloud Access Policy 토큰을 사용하세요. Grafana 로그인 자격 증명은 사용하지 마세요.
Self-managed Tempo: 인증 없이 구성됐다면 No authentication 을 선택합니다. Tempo 인스턴스가 basic auth를 사용한다면 Tempo server 블록이나 리버스 프록시에 구성된 자격 증명을 입력하세요.
멀티 테넌시 (Multi-tenancy)
멀티 테넌트 Tempo 배포를 사용한다면 각 요청에 테넌트 ID를 보내 Tempo가 쿼리를 올바른 테넌트로 라우팅해야 해요.
- Tempo 데이터 소스 설정에서 Authentication 섹션으로 스크롤합니다.
- HTTP Headers 하위 섹션을 펼칩니다.
- 이름이 X-Scope-OrgID 이고 값이 테넌트 ID인 헤더를 추가합니다.
이 헤더는 쿼리용 데이터 소스에 설정됩니다. write path(Alloy 또는 OpenTelemetry Collector 구성)에도 같은 헤더를 설정해 수집 시 트레이스 데이터를 올바른 테넌트로 라우팅해야 해요. 자세한 내용은 Tempo multi-tenancy 문서를 참고하세요.
스트리밍 (Streaming)
스트리밍은 TraceQL 쿼리 결과를 사용 가능해지는 대로 표시할 수 있게 합니다. 스트리밍 없이는 모든 결과가 반환될 때까지 아무 결과도 표시되지 않아요.
요구사항:
- Tempo 2.2 이상, 또는 Grafana Enterprise Traces(GET) 2.2 이상 실행, 또는 Grafana Cloud Traces 사용.
- Grafana Cloud Traces: 스트리밍이 기본 지원. 추가 인프라 구성 불필요.
- Self-managed Tempo 또는 GET: 스트리밍 작동을 위해 Tempo 구성에
stream_over_http_enabled: true가 있어야 해요. gRPC 또는 HTTP2를 지원하지 않는 로드 밸런서·프록시 뒤에 Tempo·GET 인스턴스가 있다면 스트리밍이 작동하지 않을 수 있으며 비활성화해야 합니다. 자세한 내용은 Tempo gRPC API 참고.
스트리밍 활성화: Grafana와 Grafana Cloud에서 사용 가능. Streaming 섹션에는 두 토글: Search queries(도착하는 대로 TraceQL 검색 결과 스트리밍)와 Metrics queries(도착하는 대로 TraceQL 메트릭 쿼리 결과 스트리밍). 사용하는 쿼리 유형에 따라 하나 또는 둘 다 활성화하세요. 스트리밍이 활성화되면 Explore 에 Enabled 로 표시됩니다. 상태 확인은 메뉴에서 Explore를 선택하고 Tempo 데이터 소스를 선택한 뒤 Options 섹션을 펼치면 됩니다. 문제 해결은 Streaming issues를 참고하세요.
트레이스를 다른 신호에 연결 (Connect traces to other signals)
Tempo 데이터 소스 설정 페이지에는 스팬에서 다른 신호로 연결하는 세 섹션이 있어요:
- Trace to logs: 스팬에서 Loki 또는 다른 로그 데이터 소스의 관련 로그로 이동
- Trace to metrics: 스팬을 Prometheus 또는 다른 메트릭 데이터 소스의 메트릭 쿼리에 연결
- Trace to profiles: 임베디드 플레임 그래프로 Grafana Pyroscope의 프로파일링 데이터에 스팬 연결
더 유연하고 규칙 기반이며 모든 데이터 소스나 외부 URL을 대상으로 할 수 있는 상관 관계는 Grafana Trace correlations 을 사용하세요. Trace correlations는 Tempo 데이터 소스 설정이 아닌 Configuration > Correlations 아래에 구성됩니다. 로그·메트릭에서 트레이스로(역방향) 연결하려면: Loki 데이터 소스의 Derived fields(로그→트레이스) — 이 설정은 trace to logs 페이지에서도 다룸, Prometheus 데이터 소스의 Exemplars(메트릭→트레이스) 문서를 참고하세요.
기타 설정 (Other settings)
- Additional settings: Service graph, node graph, search, TraceID query, span bar 및 기타 설정 구성.
- Provision the Tempo data source: YAML 파일로 Tempo 데이터 소스를 구성하고 프로비저닝된 데이터 소스를 복제.
커스텀 쿼리 변수 (Custom query variables)
trace to logs, metrics, profiles 구성에서 변수를 사용하려면 ${} 로 감싸야 해요. 예: ${__span.name}
| 변수 이름 | 설명 |
|---|---|
__tags |
UI의 태그 매핑을 사용해 특정 데이터 소스 구문의 라벨 매처 문자열을 생성. 스팬에 있는 태그만 사용. 링크는 이 태그 중 하나만 스팬에 있어도 생성됨 |
__span.spanId |
스팬의 ID |
__span.traceId |
트레이스의 ID |
__span.duration |
스팬의 지속 시간 |
__span.name |
스팬의 이름 |
__span.tags |
스팬 태그의 네임스페이스. version 이라는 태그에 접근하려면 ${__span.tags.version}. 태그에 점이 있으면 ${__span.tags["http.status"]} 로 접근 |
__trace.traceId |
트레이스의 ID |
__trace.duration |
트레이스의 지속 시간 |
__trace.name |
트레이스의 이름 |