In Cloud Logging einbinden

In diesem Dokument wird beschrieben, wie Sie einen Trace einem Cloud Logging-Logeintrag zuordnen. Mithilfe der Trace-Felder in der LogEntry-Struktur (spanId, trace und traceSampled) können Sie Logs und Traces korrelieren, um eine bessere verteilte Fehlerbehebung zu ermöglichen.

Logeintrag manuell mit einem Trace oder einer Span verknüpfen

Wenn Sie zum Schreiben von Logdaten die Cloud Logging API verwenden oder strukturierte Protokolldaten können Sie einen Logeintrag mit einem Trace oder einem Span verknüpfen. Logeintrag kann auch aufzeichnen, ob der Trace erfasst wurde. Informationen dazu, wie der Ops-Agent strukturierte Protokolldaten in Felder in einer LogEntry konvertiert, finden Sie unter Spezielle Felder in strukturierten Nutzlasten.

Zum Verknüpfen eines Logeintrags mit einem Trace durch Festlegen des Felds trace im LogEntry-Objekt. Das Feld trace muss auf einen String im folgenden Format festgelegt werden:

   projects/PROJECT_ID/traces/TRACE_ID

Dabei ist PROJECT_ID Ihre Google Cloud-Projekt-ID und TRACE_ID die Trace-ID.

So verknüpfen Sie bei Verwendung der Cloud Logging API einen Logeintrag mit einem Span: Legen Sie das Feld spanId im LogEntry-Objekt fest. in die 16-stellige hexadezimale Codierung der Span-ID. So verknüpfen Sie beispielsweise einen Logeintrag mit einem Span mit der ID 74: die Span-ID auf 000000000000004a setzen.

Um anzuzeigen, dass Sie Trace Sampling verwenden und eine Trace-Stichprobe erstellt wurde Legen Sie zum Speichern des Logeintrags das Feld traceSampled in Das LogEntry-Objekt Wenn Sie Trace Sampling verwenden, ist es möglich, dass zwar ein Logeintrag erstellt wird, aber der Trace selbst nicht erfasst wird.

Logeinträge automatisch mit einem Trace oder einer Span verknüpfen

Mit dem Cloud Logging-Client Bibliotheken, in einigen Fällen die Trace-Felder, in einem Logeintrag automatisch festgelegt werden. Manuell festgelegte Werte haben Vorrang vor automatisch festgelegten Werten.

Wenn Sie beispielsweise OpenTelemetry verwenden und Protokolle aus einem aktiven OpenTelemetry-Span erfassen, werden die Trace-Felder im Logeintrag aus dem OpenTelemetry-Kontext ausgefüllt.

In einigen Fällen, wenn eine HTTP-Anfrage vorhanden ist, können die Trace-Felder im W3C traceparent oder im X-Cloud-Trace-Context-Wert in der HTTP-Anfrage.

Weitere Informationen zur automatischen Ausfüllung von Trace-Feldern in Protokolleinträgen finden Sie in der folgenden sprachspezifischen Clientbibliotheksdokumentation:

Logs ansehen

Den Logeintrag für einen Trace können Sie neben der Wasserfallgrafik oder in der Loganzeige ansehen. Wenn Sie die Loganzeige verwenden, wird sie automatisch auf den Zeitstempelbereich des Trace beschränkt. Wenn keine Logeinträge vorhanden sind, wird der Loganzeige die Nachricht No entries found matching current filter angezeigt.

Führen Sie im Bereich Trace-Details einen der folgenden Schritte aus, um sich den Logeintrag für den Trace anzusehen:

  • Klicken Sie in der Wasserfallgrafik auf Logs anzeigen, um die Trace-Logeinträge neben der Wasserfallgrafik anzuzeigen. Wenn Logs anzeigen nicht angezeigt wird, sind keine Logeinträge verfügbar.

  • Klicken Sie im Bereich Details neben dem Label Log auf Anzeigen, um den Logeintrag in der Loganzeige anzuzeigen. Beachten Sie, dass Sie bei einem Cloud Load Balancing-Trace neben dem Label VM-Log auf Ansicht klicken müssen.

Weitere Informationen zum Anzeigen von Logeinträgen in Cloud Logging finden Sie unter Log-Explorer verwenden.

Berechtigungen zur Loganzeige

Zum Anzeigen von Logeinträgen ist die Berechtigung logging.logEntries.list in Ihrem Projekt erforderlich. Diese Berechtigung wird durch die IAM-Rollen Logbetrachter und Projektbetrachter erteilt.

Zum Anzeigen des VM-Instanz-Logs ist die Berechtigung compute.instances.get in Ihrem Projekt erforderlich. Diese Berechtigung wird durch die IAM-Rollen Compute Engine-Netzwerkbetrachter und Projektbetrachter erteilt.