OTLP 내보내기 도구로 마이그레이션

이 문서에서는 기존 내보내기 도구(이 경우 googlecloud 로깅 내보내기 도구)를 사용하는 OpenTelemetry Collector 로깅 구성을 수정하여 OTLP 내보내기 도구와 Telemetry (OTLP) API telemetry.googleapis.com을 사용하는 방법을 설명합니다.

Telemetry API 사용 설정

OTLP 내보내기 도구는 Telemetry API에 쓰므로 프로젝트에서 해당 API를 사용 설정해야 합니다. 다음 명령어를 실행하여 Telemetry API를 사용 설정합니다.

gcloud services enable telemetry.googleapis.com

교체할 내보내기 도구 찾기

구성 파일에서 로깅의 exporters 항목을 찾습니다. 구성은 다음과 같이 표시될 수 있습니다.

exporters:
  googlecloud/logging:

googlecloud/logging 내보내기 도구를 교체하고 googleauthclient 확장 프로그램을 추가합니다.

exporters:
  otlp_grpc/otlp_logs:
    auth:
      authenticator: googleclientauth
    balancer_name: pick_first
    endpoint: telemetry.googleapis.com:443

extensions:
  googleclientauth: {}

프로세서 추가

구성 파일에서 processors 항목을 찾습니다. 구성은 다음과 같이 표시될 수 있습니다.

processors:
  resourcedetection/_global_0: [...details omitted...]
  transform/mylog__source_0:  [...details omitted...]

다음 각 프로세서의 구성을 복사하여 구성 파일에 붙여넣습니다.

  1. 프로젝트에 관한 정보를 캡처하는 resource 프로세서 Google Cloud

      resource/gcp_project_id:
        attributes:
          - action: insert
            value: PROJECT_ID
            key: gcp.project_id
    
  2. 계측 소스에 관한 정보를 보존하는 transform 프로세서

      transform/otlp_grpc/preserve_instrumentation_source_version:
        error_mode: ignore
        log_statements:
          - context: log
            statements:
              - set(attributes["instrumentation_source"], instrumentation_scope.name) where instrumentation_scope.name != ""
              - set(attributes["instrumentation_version"], instrumentation_scope.version) where instrumentation_scope.version != ""
    
  3. 리소스 속성에 관한 정보를 보존하는 transform 프로세서

      transform/otlp_grpc/preserve_service_resource_attributes:
        error_mode: ignore
        log_statements:
          - context: log
            statements:
              - set(attributes["service.name"], resource.attributes["service.name"]) where resource.attributes["service.name"] != nil
              - set(attributes["service.namespace"], resource.attributes["service.namespace"]) where resource.attributes["service.namespace"] != nil
              - set(attributes["service.instance.id"], resource.attributes["service.instance.id"]) where resource.attributes["service.instance.id"] != nil
    

수정된 구성은 다음과 같이 표시됩니다.

processors:
  resourcedetection/_global_0: [...details omitted...]
  transform/mylog__source_0:  [...details omitted...]
  resource/gcp_project_id: [...details omitted...]
  transform/otlp_grpc/preserve_instrumentation_source_version: [...details omitted...]
  transform/otlp_grpc/preserve_service_resource_attributes: [...details omitted...]

로깅 서비스 및 파이프라인 수정

구성에서 로깅에 사용되는 service를 찾습니다. 여기에는 googlecloud/logging 내보내기 도구를 사용하는 pipeline이 포함됩니다. 구성은 다음과 같이 표시될 수 있습니다.

service:
  pipelines:
    logs/logs_my__pipeline_mylog__source:
      exporters:
        - googlecloud/logging
      processors:
        - transform/mylog__source_0
        - resourcedetection/_global_0
      receivers:
        - tcplog

이 구성을 다음과 같이 변경합니다.

  1. service 항목에 googleclientauth 확장 프로그램을 추가합니다.
  2. 파이프라인의 내보내기 도구를 otlp_grpc/otlp_logs로 변경합니다.
  3. 새 프로세서를 파이프라인의 프로세서 목록에 추가합니다.
    • resource/gcp_project_id
    • transform/otlp_grpc/preserve_instrumentation_source_version
    • transform/otlp_grpc/preserve_service_resource_attributes

수정된 구성은 다음과 같이 표시됩니다.

service:
  extensions:
    - googleclientauth
  pipelines:
    logs/logs_my__pipeline_mylog__source:
      exporters:
        - otlp_grpc/otlp_logs
      processors:
        - transform/mylog__source_0
        - resourcedetection/_global_0
        - resource/gcp_project_id
        - transform/otlp_grpc/preserve_instrumentation_source_version
        - transform/otlp_grpc/preserve_service_resource_attributes
      receivers:
        - tcplog

필요한 경우 대시보드 및 알림 정책 이전

Cloud Logging API 사용량을 추적하는 차트 또는 알림 정책이 있는 경우 Telemetry API 사용량을 모니터링하도록 업데이트합니다. OTLP 내보내기 도구는 Cloud Logging API 대신 Telemetry API를 사용하여 프로젝트로 로그를 전송합니다. Google Cloud