Eseguire la migrazione all'esportatore OTLP

Questo documento descrive come modificare una configurazione di logging di OpenTelemetry Collector che utilizza un esportatore esistente, in questo caso l'esportatore di logging googlecloud, per utilizzare l'esportatore OTLP e l'API Telemetry (OTLP), telemetry.googleapis.com.

Abilita l'API Telemetry

L'esportatore OTLP scrive nell'API Telemetry, quindi questa API deve essere abilitata nel tuo progetto. Abilita l'API Telemetry eseguendo il comando seguente:

gcloud services enable telemetry.googleapis.com

Individua l'esportatore da sostituire.

Nel file di configurazione, individua la voce exporters per la registrazione. La tua configurazione potrebbe essere simile alla seguente:

exporters:
  googlecloud/logging:

Sostituisci l'esportatore googlecloud/logging e aggiungi l'estensione googleauthclient:

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

extensions:
  googleclientauth: {}

Aggiungere responsabili del trattamento

Nel file di configurazione, individua la voce processors. La configurazione potrebbe essere simile alla seguente:

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

Copia e incolla la configurazione per ciascuno dei seguenti processori nel file di configurazione:

  1. Un processore resource che acquisisce informazioni sul tuo progetto Google Cloud .

      resource/gcp_project_id:
        attributes:
          - action: insert
            value: PROJECT_ID
            key: gcp.project_id
    
  2. Un processore transform che conserva le informazioni sull'origine della strumentazione e sugli attributi del servizio di risorse.

      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 != ""
              - 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
    

La configurazione modificata è simile alla seguente:

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...]

Modifica il servizio e la pipeline di logging

Nella configurazione, individua service utilizzato per la registrazione, che include un pipeline che utilizza l'esportatore googlecloud/logging. La configurazione potrebbe essere simile alla seguente:

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

Apporta le seguenti modifiche a questa configurazione:

  1. Aggiungi l'estensione googleclientauth alla voce service.
  2. Cambia l'esportatore della pipeline in otlp_grpc/otlp_logs.
  3. Aggiungi i nuovi processori all'elenco dei processori della pipeline:
    • resource/gcp_project_id
    • transform/otlp_grpc/preserve_instrumentation_source_version
    • transform/otlp_grpc/preserve_service_resource_attributes

La configurazione modificata è simile alla seguente:

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

Migra le dashboard e le norme di avviso, se necessario

Se hai grafici o policy di avviso che monitorano l'utilizzo dell'API Cloud Logging, aggiornali per monitorare l'utilizzo dell'API Telemetry. L'esportatore OTLP invia i log al tuo progetto Google Cloud utilizzando l'API Telemetry anziché l'API Cloud Logging.