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.