In diesem Dokument wird das Format beschrieben, in dem Trace-Spans gespeichert werden. Das Format der Daten entspricht im Allgemeinen den Proto-Dateien, die vom OpenTelemetry OTLP-Protokoll definiert werden. Felder werden jedoch möglicherweise vor dem Speichern von einem OpenTelemetry-spezifischen Datentyp in einen JSON-Datentyp konvertiert.
Die Telemetry API verwendet das OpenTelemetry OTLP-Protokoll.
Dieses Protokoll basiert auf den Dateien trace_service.proto und trace.proto. Informationen zu Feldlimits finden Sie unter Telemetry API-Limits.
Die Cloud Trace API verwendet nicht das OpenTelemetry OTLP-Protokoll und definiert ein proprietäres Datenformat. Trace-Daten, die über diese API an Ihr Google Cloud -Projekt gesendet werden, werden in das in diesem Dokument beschriebene Format konvertiert. Es gelten jedoch die Limits für die Cloud Trace API.
Speicherformat für Spans
| Feld | Beschreibung | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trace_id |
Global eindeutige Kennung für den Trace.
Diese Kennung ist ein numerischer 128-Bit-Wert, der als 16-Byte-Hexadezimalstring formatiert ist. Beispiel: Ein numerischer Wert von null ist ungültig. Die |
||||||||||||||||
span_id |
Erforderlich. Kennung für den Span.
Muss innerhalb eines Traces eindeutig sein.
Diese Kennung ist ein 64-Bit-Zahlenwert, der als 8-Byte-Hexadezimalstring formatiert ist.
Beispiel: Ein numerischer Wert von null ist ungültig. |
||||||||||||||||
trace_state |
Dieses Feld entspricht dem OpenTelemetry-Bibliotheken zeichnen den Wert des |
||||||||||||||||
parent_span_id |
Optional. Gibt den Vorgang an, der diesen Bereich aufgerufen hat. Für den Stamm-Span ist die ID des übergeordneten Spans auf „null“ gesetzt. Die über- und untergeordnete Beziehung zwischen Spannen wird von Visualisierungstools verwendet, um die Baumstruktur zu erstellen. |
||||||||||||||||
name |
Erforderlich. Der Name des Vorgangs, der ausgeführt wurde. Der Name kann ein Methodenname oder ein anderer Name für die Website pro Aufruf sein. Wenn Sie für dieselbe ausführbare Datei und denselben Endpunkt einen einheitlichen Namen verwenden, lassen sich Spans in verschiedenen Traces leichter in Beziehung setzen. Best Practices finden Sie unter Spans benennen. Der Spannenname wird bereinigt und in der Google Cloud Console angezeigt. |
||||||||||||||||
kind |
Gibt an, wo im System der Vorgang stattgefunden hat. Der Wert entspricht der Aufzählung OpenTelemetry: Span Kind:
|
||||||||||||||||
start_time |
Erforderlich. Startzeit des Zeitraums, auf die nächste Nanosekunde gerundet. |
||||||||||||||||
start_time_unix_nano |
Die Startzeit in Nanosekunden gemäß der UNIX-Epoche. |
||||||||||||||||
end_time |
Erforderlich. Ende des Zeitraums, auf die nächste Nanosekunde gerundet. |
||||||||||||||||
end_time_unix_nano |
Die Endzeit in Nanosekunden gemäß der UNIX-Epoche. |
||||||||||||||||
receive_time |
Erforderlich. Empfangszeit des Zeitraums, auf die nächste Nanosekunde genau. |
||||||||||||||||
receive_time_unix_nano |
Die Endzeit in Nanosekunden gemäß der UNIX-Epoche. |
||||||||||||||||
duration_unix_nano |
Die Dauer in Nanosekunden. |
||||||||||||||||
attributes |
Jedes Attribut ist ein Schlüssel/Wert-Paar. Die verfügbaren Attribute hängen von Ihren Tracedaten ab. Die Struktur der Attribute entspricht dem OpenTelemetry-Standard. Weitere Informationen zu OpenTelemetry-Attributen OpenTelemetry gibt semantische Konventionen für Attribute an. Weitere Informationen zu diesen Konventionen finden Sie unter Semantische Konventionen für Traces. Hier einige Beispiele für Attribute: "yourcompany.your.own.key": "your own value" "network.protocol.name": "http" "network.protocol.version": "1.1" "http.response.status_code": "200" "network.peer.address": "REDACTED" |
||||||||||||||||
dropped_attributes_count |
Die Anzahl der verworfenen Attribute. Attribute können verworfen werden, weil ihre Schlüssel zu lang sind oder weil es zu viele Attribute gibt. Wenn dieser Wert null ist, wurden keine Attribute verworfen. Dieser Wert kann durch die clientseitige Instrumentierung oder durch eine Anwendung festgelegt werden. Der Wert kann vom Server erhöht werden. |
||||||||||||||||
events |
Ein Ereignis, das zu einem bestimmten Zeitpunkt stattfindet. Jedes Ereignis enthält die folgenden Felder.
|
||||||||||||||||
dropped_events_count |
Die Anzahl der verworfenen Ereignisse. Ereignisse können verworfen werden, weil es zu viele Ereignisse gibt. Wenn dieser Wert null ist, wurden keine Ereignisse verworfen. |
||||||||||||||||
links |
Mit dem Bereich verknüpfte Links. Links sind Verweise von diesem Span auf einen anderen Span im selben oder in einem anderen Trace. Mithilfe von Links können Spans aus einem Trace mit Spans in einem anderen Trace in Beziehung gesetzt werden. Angenommen, ein Vorgang führt zu einem asynchronen Vorgang. In diesem Szenario gibt es zwei Traces: einen für den ursprünglichen Vorgang und einen für den asynchronen Vorgang. Sie können Links verwenden, um die Spans in diesen Traces in Beziehung zu setzen. Jeder Link enthält die folgenden Felder.
|
||||||||||||||||
dropped_links_count |
Die Anzahl der verworfenen Links. Links können verworfen werden, weil es zu viele Links gibt. Wenn dieser Wert null ist, wurden keine Links verworfen. |
||||||||||||||||
status |
In diesem Feld wird der Abschlussstatus für einen Zeitraum aufgezeichnet.
Der Wert des Unterfelds
Das Unterfeld |
||||||||||||||||
resource |
In diesem Feld wird die Infrastruktur oder das Hostingsystem angegeben, aus dem die Telemetriedaten erfasst wurden oder auf die sich die Telemetriedaten beziehen. Betrachten Sie beispielsweise eine Anwendung, die in Google Kubernetes Engine ausgeführt wird. Attribute für diese Ressource können den Prozessnamen und den Namespace umfassen. Dieses Feld enthält die folgenden Unterfelder:
Weitere Informationen finden Sie unter OpenTelemetry: Resources. |
||||||||||||||||
instrumentation_scope |
In diesem Feld wird die Bibliotheks- oder Anwendungskomponente für die angegebene Angenommen, die Anwendung „checkout-service“ wird in Cloud Run bereitgestellt. Das bedeutet, dass die Ein Client-Span wie „WritePaymentInfoToStripe“ kann ein Span sein, der von der „payment-processor-library“ gemeldet wird, die sich im Cloud Run-Dienst „checkout-service“ befindet. Dieses Feld enthält die folgenden Unterfelder:
Weitere Informationen finden Sie unter OpenTelemetry: Instrumentation scope. |
||||||||||||||||
resource_schema_link |
Diese Felder müssen eine URL sein, die als String formatiert ist. Diese Felder enthalten eine URL, die eine Schemadatei für eine Ressource zurückgibt. Das Format der Schemadatei und der Daten wird von OpenTelemetry definiert. Weitere Informationen finden Sie unter OpenTelemetry: Schemas. Diese Felder können nur bei Verwendung der Telemetry API festgelegt werden. Bei dieser API wird nicht geprüft, ob die Daten dem deklarierten Schema entsprechen. |
||||||||||||||||
scope_schema_link |
Diese Felder müssen eine URL sein, die als String formatiert ist. Diese Felder enthalten eine URL, die eine Schemadatei für einen Bereich zurückgibt. Das Format der Schemadatei und der Daten wird von OpenTelemetry definiert. Weitere Informationen finden Sie unter OpenTelemetry: Schemas. Diese Felder können nur bei Verwendung der Telemetry API festgelegt werden. Bei dieser API wird nicht geprüft, ob die Daten dem deklarierten Schema entsprechen. |
||||||||||||||||
apphub |
Anwendungsspezifische Labels sind verfügbar, wenn Trace-Spans von App Hub-Anwendungen generiert werden, wenn diese Anwendungen auf unterstützter Infrastruktur ausgeführt werden oder instrumentiert wurden. Weitere Informationen zum Anwendungsmonitoring und dazu, wann diese Labels verfügbar sind, finden Sie in der Übersicht zum Anwendungsmonitoring. Dieses Feld enthält die Unterfelder
|