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 seguente comando:

gcloud services enable telemetry.googleapis.com

Individua l'esportatore da sostituire

Nel file di configurazione, individua la voce exporters per il logging. La 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: {}

Aggiungi processori

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 di ciascuno dei seguenti processori nel file di configurazione:

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

      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.

      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. Un processore transform che conserva le informazioni sugli attributi delle risorse.

      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
    

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 di logging e la pipeline

Nella configurazione, individua il service utilizzato per il logging, che include una 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. Modifica 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

Esegui la migrazione di dashboard e norme di avviso, se necessario

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