Tempo 데이터 소스 프로비저닝

Tempo 데이터 소스 프로비저닝 (Provision the Tempo data source)

Grafana 프로비저닝 시스템의 일부로 YAML 파일에서 Tempo 데이터 소스를 정의·구성할 수 있어요. Git 같은 버전 관리를 사용해 파일 변경을 추적하고, 필요에 따라 변경을 업데이트하거나 롤백할 수 있어요.

출처: 문서

본문

Note YAML 프로비저닝은 주로 셀프 매니지드 Grafana 인스턴스에 사용돼요.

프로비저닝과 사용 가능한 구성 옵션에 대한 자세한 내용은 Provisioning Grafana를 참고하세요.

프로비저닝된 데이터 소스

프로비저닝된 데이터 소스는 Grafana UI에서 수정할 수 없어요. 설정 양식은 읽기 전용이고, Save & test 버튼은 Test로 바뀌어요(연결은 테스트할 수 있지만 변경은 저장할 수 없음). 변경하려면 두 가지 방법이 있어요:

  • 데이터 소스 복제: 같은 타입의 새 데이터 소스를 만들고 프로비저닝된 데이터 소스에서 설정을 복사. Grafana Cloud용 프로비저닝된 데이터 소스 복제를 참고.
  • 프로비저닝 파일 업데이트: YAML 구성 파일을 편집하고 Grafana를 재시작하거나 프로비저닝 시스템이 변경을 반영할 때까지 기다려요. trace to logs의 span time shifts를 포함한 모든 설정을 YAML 편집으로 변경할 수 있어요.

예제 파일

이 예제 프로비저닝 YAML 파일은 Tempo 데이터 소스 UI에서 사용 가능한 옵션의 동등한 설정을 구성해요. grafana-pyroscope-datasource를 실제 Pyroscope 데이터 소스의 UID로 바꾸고, 다른 데이터 소스의 Uid 값이 실제로 프로비저닝된 값과 일치하는지 확인하세요.

apiVersion: 1

datasources:
  - name: Tempo
    type: tempo
    uid: EbPG8fYoz
    url: http://localhost:3200
    access: proxy
    basicAuth: false
    jsonData:
      tracesToLogsV2:
        # Field with an internal link pointing to a logs data source in Grafana.
        # datasourceUid value must match the uid value of the logs data source.
        datasourceUid: 'loki'
        spanStartTimeShift: '-1h'
        spanEndTimeShift: '1h'
        tags: [{ key: 'job' }, { key: 'instance' }, { key: 'pod' }, { key: 'namespace' }]
        filterByTraceID: false
        filterBySpanID: false
        customQuery: true
        query: 'method="$${__span.tags.method}"'
      tracesToMetrics:
        datasourceUid: 'prom'
        spanStartTimeShift: '-1h'
        spanEndTimeShift: '1h'
        tags: [{ key: 'service.name', value: 'service' }, { key: 'job' }]
        queries:
          - name: 'Sample query'
            query: 'sum(rate(traces_spanmetrics_latency_bucket{$$__tags}[5m]))'
      tracesToProfiles:
        datasourceUid: 'grafana-pyroscope-datasource'
        tags: [{ key: 'job' }, { key: 'instance' }, { key: 'pod' }, { key: 'namespace' }]
        profileTypeId: 'process_cpu:cpu:nanoseconds:cpu:nanoseconds'
        customQuery: true
        query: 'method="$${__span.tags.method}"'
      serviceMap:
        datasourceUid: 'prometheus'
      nodeGraph:
        enabled: true
      search:
        hide: false
      traceQuery:
        timeShiftEnabled: true
        spanStartTimeShift: '-1h'
        spanEndTimeShift: '1h'
      spanBar:
        type: 'Tag'
        tag: 'http.path'
      streamingEnabled:
        search: true
        metrics: true

개별 설정에 대한 자세한 내용은 다음을 참고하세요:

  • trace to logs 상관 관계 구성 : tracesToLogsV2 블록
  • trace to metrics 상관 관계 구성 : tracesToMetrics 블록
  • trace to profiles 상관 관계 구성 : tracesToProfiles 블록
  • 추가 설정 : serviceMap, nodeGraph, search, traceQuery, spanBar 블록

Grafana Cloud용 프로비저닝된 데이터 소스 복제

Grafana Cloud에서 구성 파일로 프로비저닝된 데이터 소스가 있다면 복제한 뒤 새 데이터 소스를 Grafana UI에서 편집할 수 있어요. 예를 들어 Grafana Cloud에서 프로비저닝된 Tempo 데이터 소스의 trace to logs 설정을 편집하고 싶다면, 데이터 소스를 복제해 traceID·spanID 필터링을 활성화할 수 있어요. 단계는 다음과 같아요:

  1. Grafana Cloud Portal에서 viewer Cloud Access Policy 토큰을 만들어, 복제하려는 데이터 타입에 대해 최소한 읽기 권한이 있는지 확인.
  2. 복제하려는 것과 같은 타입의 새 데이터 소스 만들기.
  3. 기존 프로비저닝 데이터 소스의 모든 설정을 새 데이터 소스에 복사하되, 암호는 만든 API 키로 교체. 가장 쉬운 방법은 브라우저 창을 따로 열어 한쪽에 프로비저닝 데이터 소스, 다른 쪽에 새 데이터 소스를 띄우는 것.
  4. HTTP와 Auth 섹션을 복사하고 Cloud Access Policy 토큰을 Password 필드에 붙여넣고 원하는 다른 옵션을 바꾼 뒤 데이터 소스를 저장·테스트.

다음 단계

  • Configure the Tempo data source — 연결, 인증, 스트리밍 설정으로 돌아가기.
  • Configure trace to logs correlation — 스팬에서 로그로 이동 설정.
  • 추가 설정 — Service graph, node graph, search 등 구성.

더 알아보기 (Learn more)