4.2. 분산 추적 플랫폼 구성 및 배포(Tempo)

Tempo Operator는 분산 추적 플랫폼(Tempo) 리소스를 생성하고 배포할 때 사용할 아키텍처 및 구성 설정을 정의하는 CRD(사용자 정의 리소스 정의) 파일을 사용합니다. 기본 구성을 설치하거나 파일을 수정할 수 있습니다.

4.2.1. 배포 사용자 정의

백엔드 스토리지 구성에 대한 자세한 내용은 영구 스토리지 및 선택한 스토리지 옵션에 대한 적절한 구성 주제를 참조하십시오.

4.2.1.1. 분산 추적 기본 구성 옵션

Tempo CR(사용자 정의 리소스)은 분산 추적 플랫폼(Tempo) 리소스를 생성할 때 사용할 아키텍처 및 설정을 정의합니다. 이러한 매개변수를 수정하여 비즈니스 요구에 맞게 분산 추적 플랫폼(Tempo) 구현을 사용자 지정할 수 있습니다.

일반적인 Tempo YAML 파일의 예

apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
  name: name
spec:
  storage: {}
  resources: {}
  storageSize: 200M
  replicationFactor: 1
  retention: {}
  template:
      distributor:{}
      ingester: {}
      compactor: {}
      querier: {}
      queryFrontend: {}
      gateway: {}

표 4.3. tempo 매개변수

매개변수설명기본값

apiVersion:

오브젝트를 생성할 때 사용할 API 버전입니다.

tempotracing.io/v1

tempotracing.io/v1

kind:

생성할 Kubernetes 오브젝트를 정의합니다.

tempo

 

metadata:

이름 문자열, UID 및 선택적 네임스페이스를 포함하여 오브젝트를 고유하게 식별하는 데이터입니다.

 

OpenShift Container Platform은 UID를 자동으로 생성하고 오브젝트가 생성된 프로젝트의 이름으로 namespace를 완료합니다.

name:

개체의 이름입니다.

TempoStack 인스턴스의 이름입니다.

tempo-all-in-one-inmemory

spec:

생성할 오브젝트의 사양입니다.

TempoStack 인스턴스에 대한 모든 구성 매개변수를 포함합니다. 모든 Tempo 구성 요소에 대한 공통 정의가 필요한 경우 사양 노드 아래에 정의됩니다. 정의가 개별 구성 요소와 관련된 경우 spec/template/<component> 노드 아래에 배치됩니다.

해당 없음

resources:

TempoStack에 할당된 리소스입니다.

  

storageSize:

ingester PVC의 스토리지 크기입니다.

  

replicationFactor:

복제 요소에 대한 구성입니다.

  

보존:

추적 보존을 위한 구성 옵션입니다.

  

storage:

스토리지를 정의하는 구성 옵션입니다. 모든 스토리지 관련 옵션은 allInOne 또는 기타 구성 요소 옵션 아래에 있지 않고 storage 아래에 배치되어야 합니다.

  

template.distributor:

Tempo 배포자 에 대한 구성 옵션 .

  

template.ingester:

Tempo ingester 의 구성 옵션 .

  

template.compactor:

Tempo compactor 의 구성 옵션

  

template.querier:

Tempo querier 의 구성 옵션 .

  

template.queryFrontend:

Tempo query-frontend 에 대한 구성 옵션입니다.

  

template.gateway:

Tempo 게이트웨이 에 대한 구성 옵션 .

  

최소 필수 구성

기본 설정으로 분산 추적 플랫폼(Tempo) 배포를 생성하는 데 필요한 최소 사항은 다음과 같습니다.

apiVersion: tempo.grafana.com/v1alpha1
kind: TempoStack
metadata:
  name: simplest
spec:
  storage: 1
    secret:
      name: minio
      type: s3
  resources:
    total:
      limits:
        memory: 2Gi
        cpu: 2000m
  template:
    queryFrontend:
      jaegerQuery:
        enabled: true
        ingress:
          type: route
1
이 섹션에서는 배포된 오브젝트 스토리지 백엔드를 지정합니다. 이 백엔드에는 오브젝트 스토리지에 액세스하기 위해 인증 정보가 포함된 생성된 시크릿이 필요합니다.

4.2.1.2. 분산 추적 플랫폼(Tempo) 스토리지 구성

spec.storageTempoStack 사용자 정의 리소스에서 분산 추적 플랫폼(Tempo)에 대한 오브젝트 스토리지를 구성할 수 있습니다. 지원되는 여러 스토리지 공급자 중에서 선택할 수 있습니다.

표 4.4. Tempo Operator에서 분산 추적 스토리지를 정의하는 데 사용하는 일반 스토리지 매개변수

매개변수설명기본값
spec:
  storage:
    secret
      type:

배포에 사용할 스토리지 유형입니다.

메모리. 메모리 스토리지는 포드가 종료될 때 데이터가 유지되지 않기 때문에 개념 환경의 개발, 테스트, 시연 및 증명에만 적합합니다.

memory

storage:
  secretname:

set 오브젝트 스토리지 유형의 인증 정보가 포함된 시크릿의 이름입니다.

 

해당 없음

storage:
  tls:
    caName:

CA는 CA 인증서가 포함된 ConfigMap 오브젝트의 이름입니다.

  

표 4.5. 필수 시크릿 매개변수

스토리지 공급자

시크릿 매개변수

Red Hat OpenShift Data Foundation

이름: tempostack-dev-odf # example

버킷: <bucket_name> # requires an ObjectBucketClaim

endpoint: https://s3.openshift-storage.svc

access_key_id: <data_foundation_access_key_id>

access_key_secret: <data_foundation_access_key_secret>

MinIO

MinIO Operator 를 참조하십시오.

이름: tempostack-dev-minio # example

bucket: <minio_bucket_name> # MinIO documentation

endpoint: <minio_bucket_endpoint>

access_key_id: <minio_access_key_id>

access_key_secret: <minio_access_key_secret>

Amazon S3

이름: tempostack-dev-s3 # example

버킷: <s3_bucket_name> # Amazon S3 문서

endpoint: <s3_bucket_endpoint>

access_key_id: <s3_access_key_id>

access_key_secret: <s3_access_key_secret>

Microsoft Azure Blob Storage

이름: tempostack-dev-azure # example

컨테이너: <azure_blob_storage_container_name> # Microsoft Azure 설명서

account_name: <azure_blob_storage_account_name>

account_key: <azure_blob_storage_account_key>

GCP(Google Cloud Platform)의 Google Cloud Storage

이름: tempostack-dev-gcs # example

버킷 이름: {_cloud_storage_bucket_nam> # GCP 프로젝트에서 버킷 이 생성됨

key.json: <path/to/key.json> # GCP 인증을 위해 버킷의 GCP 프로젝트에 서비스 계정이 필요합니다.

4.2.1.3. 쿼리 구성 옵션

쿼리는 스토리지에서 추적을 검색하고 사용자 인터페이스에서 표시하도록 호스팅하는 서비스입니다.

표 4.6. Tempo Operator에서 쿼리를 정의하는 데 사용하는 매개변수

매개변수설명기본값
spec:
  query:
    replicas:

생성할 쿼리 복제본 수를 지정합니다.

양의 정수

 

표 4.7. 쿼리에 전달된 구성 매개변수

매개변수설명기본값
spec:
  query:
    options: {}

쿼리 서비스를 정의하는 구성 옵션입니다.

  
options:
  log-level:

쿼리의 로깅 수준입니다.

debug,info,warn,error,fatal,panic

 
options:
  query:
    base-path:

모든 tempo-query HTTP 경로의 기본 경로를 루트가 아닌 값으로 설정할 수 있습니다. 예를 들어 /tempo 는 모든 UI URL이 /tempo 로 시작됩니다. 이는 역방향 프록시 뒤에서 tempo-query 를 실행할 때 유용할 수 있습니다.

/<path>

 

샘플 쿼리 구성

apiVersion: tempotracing.io/v1
kind: "Tempo"
metadata:
  name: "my-tempo"
spec:
  strategy: allInOne
  allInOne:
    options:
      log-level: debug
      query:
        base-path: /tempo

4.2.2. 분산 추적 플랫폼(Tempo)에 대한 모니터링 설정

Tempo Operator는 배포자, ingester 등과 같은 각 TempoStack 구성 요소의 모니터링 및 경고를 지원하며 Operator 자체에 대한 업그레이드 및 운영 메트릭을 노출합니다.

4.2.2.1. TempoStack 메트릭 및 경고 구성

TempoStack 인스턴스의 메트릭 및 경고를 활성화할 수 있습니다.

전제 조건

프로세스

  1. TempoStack 인스턴스의 메트릭을 활성화하려면 spec.observability.metrics.createServiceMonitors 필드를 true 로 설정합니다.

    apiVersion: tempo.grafana.com/v1alpha1
    kind: TempoStack
    metadata:
      name: <name>
    spec:
      observability:
        metrics:
          createServiceMonitors: true
  2. TempoStack 인스턴스에 대한 경고를 활성화하려면 spec.observability.metrics.createPrometheusRules 필드를 true 로 설정합니다.

    apiVersion: tempo.grafana.com/v1alpha1
    kind: TempoStack
    metadata:
      name: <name>
    spec:
      observability:
        metrics:
          createPrometheusRules: true

검증

웹 콘솔의 관리자 보기를 사용하여 구성이 성공했는지 확인할 수 있습니다.

  1. ObserveTargets 로 이동하여 Source: User 에 대해 필터링한 다음 tempo-<instance_name>-<component > 형식의 ServiceMonitors 의 상태가 Up 인지 확인합니다.
  2. 경고가 올바르게 설정되었는지 확인하려면 모니터링경고 → 경고 규칙으로 이동하여 Source: User 에 대해 필터링한 다음 TempoStack 인스턴스 구성 요소에 대한 경고 규칙을 사용할 수 있는지 확인합니다.

4.2.2.2. Tempo Operator 지표 및 경고 구성

웹 콘솔에서 Tempo Operator를 설치할 때 이 네임스페이스에서 Operator 권장 클러스터 모니터링 활성화 확인란을 선택하여 Tempo Operator의 메트릭 및 경고를 생성할 수 있습니다.

설치 중에 확인란을 선택하지 않은 경우 Tempo Operator를 설치한 후에도 메트릭 및 경고를 수동으로 활성화할 수 있습니다.

프로세스

  • Tempo Operator가 설치된 프로젝트에서 기본적으로 openshift.io/cluster - monitoring: "true" 레이블을 추가합니다.

검증

웹 콘솔의 관리자 보기를 사용하여 구성이 성공했는지 확인할 수 있습니다.

  1. ObserveTargets 로 이동하여 Source: Platform 을 필터링한 다음 Up 상태가 있어야 하는 tempo-operator 를 검색합니다.
  2. 경고가 올바르게 설정되었는지 확인하려면 모니터링경고 → 경고 규칙으로 이동하여 Source: Platform 에 대한 필터링 및 Tempo Operator경고 규칙을 찾습니다.