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. Cette API doit donc être activée dans votre projet. Activez l'API Telemetry en exécutant la commande suivante :

gcloud services enable telemetry.googleapis.com

Localisez 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 processeur resource qui capture des informations sur votre projet Google Cloud .

      resource/gcp_project_id:
        attributes:
          - action: insert
            value: PROJECT_ID
            key: gcp.project_id
    
  2. Processeur transform qui conserve les informations sur la source d'instrumentation.

      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 processeur transform qui conserve les informations sur les attributs de ressource.

      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 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 avez des graphiques ou des 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 les journaux à votre projet Google Cloud à l'aide de l'API Telemetry au lieu de l'API Cloud Logging.