Migra al exportador de OTLP

En este documento, se describe cómo modificar una configuración de registro del recopilador de OpenTelemetry que usa un exportador existente (en este caso, el exportador de registros de googlecloud) para usar el exportador de OTLP y la API de Telemetría (OTLP), telemetry.googleapis.com.

Habilita la API de Telemetry

El exportador de OTLP escribe en la API de Telemetry, por lo que esa API debe estar habilitada en tu proyecto. Habilita la API de Telemetry ejecutando el siguiente comando:

gcloud services enable telemetry.googleapis.com

Busca el exportador que se reemplazará

En el archivo de configuración, busca la entrada exporters para el registro. Tu configuración podría verse de la siguiente manera:

exporters:
  googlecloud/logging:

Reemplaza el exportador googlecloud/logging y agrega la extensión googleauthclient:

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

extensions:
  googleclientauth: {}

Agrega procesadores

En el archivo de configuración, busca la entrada processors. Tu configuración podría verse de la siguiente manera:

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

Copia y pega la configuración de cada uno de los siguientes procesadores en tu archivo de configuración:

  1. Un procesador de resource que captura información sobre tu proyecto de Google Cloud .

      resource/gcp_project_id:
        attributes:
          - action: insert
            value: PROJECT_ID
            key: gcp.project_id
    
  2. Es un procesador de transform que conserva información sobre los atributos de la fuente de la instrumentación y del servicio de recursos.

      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 configuración modificada se ve de la siguiente manera:

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 el servicio de registro y la canalización

En tu configuración, busca el service que se usa para el registro, que incluye un pipeline que usa el exportador googlecloud/logging. Tu configuración podría verse de la siguiente manera:

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

Realiza los siguientes cambios en esta configuración:

  1. Agrega la extensión googleclientauth a la entrada service.
  2. Cambia el exportador de la canalización a otlp_grpc/otlp_logs.
  3. Agrega los procesadores nuevos a la lista de procesadores de la canalización:
    • resource/gcp_project_id
    • transform/otlp_grpc/preserve_instrumentation_source_version
    • transform/otlp_grpc/preserve_service_resource_attributes

La configuración modificada se ve de la siguiente manera:

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 los paneles y las políticas de alertas, si es necesario

Si tienes gráficos o políticas de alertas que hacen un seguimiento del uso de la API de Cloud Logging, actualízalos para supervisar el uso de la API de Telemetry. El exportador de OTLP envía registros a tu proyecto Google Cloud a través de la API de Telemetry en lugar de la API de Cloud Logging.