Migrer vers l'exportateur OTLP

Ce document explique comment modifier une configuration de journalisation du collecteur OpenTelemetry qui utilise un exportateur existant (dans ce cas, l'exportateur de journalisation googlecloud) — pour utiliser l'exportateur OTLP et l' API Telemetry (OTLP), telemetry.googleapis.com.

Activer l'API Telemetry

L'exportateur OTLP écrit dans l'API Telemetry. Vous devez donc activer cette API dans votre projet. Activez l'API Telemetry en exécutant la commande suivante :

gcloud services enable telemetry.googleapis.com

Rechercher l'exportateur à remplacer

Dans votre fichier de configuration, recherchez l'entrée exporters pour la journalisation. Votre configuration peut se présenter comme suit :

exporters:
  googlecloud/logging:

Remplacez l'exportateur googlecloud/logging et ajoutez l'extension googleauthclient :

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

extensions:
  googleclientauth: {}

Ajouter des processeurs

Dans votre fichier de configuration, recherchez l'entrée processors. Votre configuration peut se présenter comme suit :

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

Copiez et collez la configuration de chacun des processeurs suivants dans votre fichier de configuration :

  1. Un resource processeur qui capture des informations sur votre Google Cloud project.

      resource/gcp_project_id:
        attributes:
          - action: insert
            value: PROJECT_ID
            key: gcp.project_id
    
  2. Un processeur transform qui préserve les informations sur la source d'instrumentation et les attributs de service de ressource.

      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 configuration modifiée se présente comme suit :

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

Modifier le service et le pipeline de journalisation

Dans votre configuration, recherchez le service utilisé pour la journalisation, qui inclut un pipeline utilisant l'exportateur googlecloud/logging. Votre configuration peut se présenter comme suit :

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

Apportez les modifications suivantes à cette configuration :

  1. Ajoutez l'extension googleclientauth à l'entrée service.
  2. Remplacez l'exportateur du pipeline par otlp_grpc/otlp_logs.
  3. Ajoutez les nouveaux processeurs à la liste des processeurs du pipeline :
    • resource/gcp_project_id
    • transform/otlp_grpc/preserve_instrumentation_source_version
    • transform/otlp_grpc/preserve_service_resource_attributes

La configuration modifiée se présente comme suit :

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

Migrer les tableaux de bord et les règles d'alerte, si nécessaire

Si vous disposez de graphiques ou de règles d'alerte qui suivent l'utilisation de l'API Cloud Logging, mettez-les à jour pour surveiller l'utilisation de l'API Telemetry à la place. L'exportateur OTLP envoie des journaux à votre Google Cloud projet à l'aide de l'API Telemetry au lieu de l'API Cloud Logging.