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 mit der Cloud Logging API Protokolldaten schreiben oder strukturierte Protokolldaten schreiben, können Sie einen Logeintrag mit einer Trace oder einem Span verknüpfen. Im Logeintrag kann auch angegeben werden, ob der Trace eine Stichprobe ist. Informationen dazu, wie der Ops-Agent strukturierte Protokolldaten in Felder in einer LogEntry konvertiert, finden Sie unter Spezielle Felder in strukturierten Nutzlasten.

Sie können einen Logeintrag mit einem Trace verknüpfen, indem Sie das Feld trace im LogEntry-Objekt festlegen. 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.

Wenn Sie bei Verwendung der Cloud Logging API einen Logeintrag mit einer Span verknüpfen möchten, legen Sie im Feld spanId des LogEntry-Objekts die 16-stellige hexadezimale Codierung der Span-ID fest. Wenn Sie beispielsweise einen Logeintrag mit einem Span mit der ID 74 verknüpfen möchten, setzen Sie die Span-ID auf 000000000000004a.

Wenn Sie Trace-Sampling verwenden und angeben möchten, dass der Trace beim Schreiben des Logeintrags erfasst wurde, legen Sie das Feld traceSampled im LogEntry-Objekt fest. Wenn Sie Trace-Sampling verwenden, ist es möglich, dass ein Logeintrag erstellt wird, wenn der Trace selbst nicht erfasst wird.

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

Wenn Sie Cloud Logging-Clientbibliotheken verwenden, können die Trace-Felder in einem Logeintrag in einigen Fällen automatisch festgelegt werden. Manuell festgelegte Werte haben Vorrang vor automatisch festgelegten Werten.

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

Alternativ können die Trace-Felder in einigen Fällen, wenn eine HTTP-Anfrage vorhanden ist, über das Feld W3C traceparent oder den Wert X-Cloud-Trace-Context in der HTTP-Anfrage festgelegt werden.

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.