Wenn Sie Cloud Logging-Logeinträge mit Cloud Trace-Traces und ‑Spans korrelieren, können Sie Logs zusammen mit Trace-Wasserfalldiagrammen oder im Log-Explorer ansehen, wenn Sie Fehler bei verteilten Anfragen beheben. Wenn Sie Logs mit Traces verknüpfen möchten, können Sie die Felder trace, spanId und traceSampled in einem LogEntry-Objekt manuell festlegen oder Logging-Clientbibliotheken verwenden, um diese Felder automatisch aus dem OpenTelemetry-Kontext oder HTTP-Anfrageheadern zu füllen.
Logeintrag manuell mit einem Trace oder Span verknüpfen
Wenn Sie die Cloud Logging API zum Schreiben von Logdaten verwenden oder strukturierte Logdaten schreiben, können Sie einen Logeintrag mit einem Trace oder einem Span verknüpfen. Im Logeintrag kann auch aufgezeichnet werden, ob der Trace erfasst wurde. Informationen dazu, wie der Ops-Agent strukturierte Logdaten in Felder in einem LogEntry konvertiert, finden Sie unter Spezielle Felder in strukturierten Nutzlasten.
Wenn Sie einen Logeintrag mit einem Trace verknüpfen möchten, legen Sie das Feld trace im LogEntry-Objekt fest:
- Bevorzugtes Format:
TRACE_ID - Legacy-Format:
projects/PROJECT_ID/traces/TRACE_ID
In den vorherigen Ausdrücken ist PROJECT_ID die Projekt-ID Ihres Google Cloud und TRACE_ID die Trace-ID.
Wenn Sie einen Logeintrag mit einem Span verknüpfen möchten, wenn Sie die Logging API verwenden, legen Sie das Feld spanId im LogEntry-Objekt auf die 16-stellige hexadezimale Codierung der ID des Spans fest.
Wenn Sie beispielsweise einen Logeintrag mit einem Span mit der ID 74 verknüpfen möchten, legen Sie die Span-ID auf 000000000000004a fest.
Wenn Sie angeben möchten, dass Sie die Trace-Stichprobenerhebung verwenden und der Trace beim Schreiben des Logeintrags für die Speicherung erhoben wurde, legen Sie das Feld traceSampled im LogEntry-Objekt fest. Wenn Sie die Trace-Stichprobenerhebung verwenden, kann es sein, dass ein Logeintrag erstellt wird, obwohl der Trace selbst nicht erfasst wird.
Logeintrag automatisch mit einem Trace oder Span verknüpfen
Mit Logging-Clientbibliotheken können die Trace-Felder in einigen Fällen automatisch festgelegt werden. Manuell festgelegte Werte haben Vorrang vor automatisch festgelegten Werten.
Wenn Sie beispielsweise OpenTelemetry verwenden und aus einem aktiven OpenTelemetry-Span protokollieren, werden die Trace-Felder im Logeintrag aus dem OpenTelemetry-Kontext übernommen.
Alternativ können die Trace-Felder in einigen Fällen, wenn eine HTTP-Anfrage vorhanden ist, aus dem W3C-Feld traceparent oder dem X-Cloud-Trace-Context-Wert in der HTTP-Anfrage festgelegt werden.
Weitere Informationen zum automatischen Ausfüllen von Trace-Feldern in Logeinträgen finden Sie in der folgenden sprachspezifischen Clientbibliotheksdokumentation:
Logs ansehen
Sie können den Logeintrag für einen Trace zusammen mit dem Wasserfalldiagramm oder im Log-Explorer aufrufen. Wenn Sie den Log-Explorer verwenden, wird der Zeitraum automatisch auf den Zeitstempelbereich des Traces beschränkt. Wenn keine Logeinträge angezeigt werden können, wird im Log-Explorer die Meldung No entries found matching current filter angezeigt.
Führen Sie einen der folgenden Schritte aus, um den Logeintrag für den Trace im Bereich Trace-Details aufzurufen:
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.
Wenn Sie den Logeintrag im Log-Explorer aufrufen möchten, klicken Sie im Bereich Details neben dem Label Log auf Ansehen. Wenn Sie einen Cloud Load Balancing-Trace haben, klicken Sie neben dem Label VM-Log auf Anzeigen.
Weitere Informationen zum Ansehen von Logeinträgen in 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 (Identity and Access Management) Logbetrachter und Projektbetrachter bereitgestellt.
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.