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.