Zum OTLP-Exporter migrieren

In diesem Dokument wird beschrieben, wie Sie eine OpenTelemetry Collector-Logging-Konfiguration ändern, die einen vorhandenen Exporter verwendet – in diesem Fall den googlecloud-Logging-Exporter –, um den OTLP-Exporter und die Telemetry (OTLP) API, telemetry.googleapis.com, zu verwenden.

Telemetry API aktivieren

Der OTLP-Exporter schreibt in die Telemetry API. Diese API muss in Ihrem Projekt aktiviert sein. Aktivieren Sie die Telemetry API, indem Sie den folgenden Befehl ausführen:

gcloud services enable telemetry.googleapis.com

Suchen Sie den zu ersetzenden Exporter.

Suchen Sie in der Konfigurationsdatei nach dem Eintrag exporters für die Protokollierung. Ihre Konfiguration könnte so aussehen:

exporters:
  googlecloud/logging:

Ersetzen Sie den googlecloud/logging-Exporter und fügen Sie die googleauthclient-Erweiterung hinzu:

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

extensions:
  googleclientauth: {}

Prozessoren hinzufügen

Suchen Sie in der Konfigurationsdatei nach dem Eintrag processors. Ihre Konfiguration könnte so aussehen:

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

Kopieren Sie die Konfiguration für jeden der folgenden Prozessoren und fügen Sie sie in Ihre Konfigurationsdatei ein:

  1. Ein resource-Prozessor, der Informationen zu Ihrem Google Cloud -Projekt erfasst.

      resource/gcp_project_id:
        attributes:
          - action: insert
            value: PROJECT_ID
            key: gcp.project_id
    
  2. Ein transform-Prozessor, der Informationen zur Instrumentierungsquelle beibehält.

      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. Ein transform-Prozessor, der Informationen zu den Ressourcenattributen beibehält.

      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
    

Die geänderte Konfiguration sieht so aus:

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

Logging-Dienst und ‑Pipeline ändern

Suchen Sie in Ihrer Konfiguration nach dem service, das für das Logging verwendet wird. Es enthält ein pipeline, in dem der googlecloud/logging-Exporter verwendet wird. Ihre Konfiguration könnte so aussehen:

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

Nehmen Sie die folgenden Änderungen an dieser Konfiguration vor:

  1. Fügen Sie dem Eintrag service die Erweiterung googleclientauth hinzu.
  2. Ändern Sie den Exporter der Pipeline in otlp_grpc/otlp_logs.
  3. Fügen Sie die neuen Prozessoren der Liste der Prozessoren der Pipeline hinzu:
    • resource/gcp_project_id
    • transform/otlp_grpc/preserve_instrumentation_source_version
    • transform/otlp_grpc/preserve_service_resource_attributes

Die geänderte Konfiguration sieht so aus:

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

Dashboards und Benachrichtigungsrichtlinien migrieren (falls erforderlich)

Wenn Sie Diagramme oder Benachrichtigungsrichtlinien haben, mit denen die Nutzung der Cloud Logging API erfasst wird, aktualisieren Sie sie, um stattdessen die Nutzung der Telemetry API zu erfassen. Der OTLP-Exporter sendet Logs an Ihr Google Cloud -Projekt über die Telemetry API anstelle der Cloud Logging API.