Spalten von Ereignistabellen

Eine Ereignistabelle hat einen vordefinierten Satz von Spalten. Unter diesem Thema werden die Spalten genauer erläutert.

Weitere Informationen zur Verwendung von Ereignistabellen finden Sie unter Verwenden von Ereignistabellen.

Spalten von Ereignistabellen

Ereignistabellen haben die folgenden Spalten:

Spalte

Datentyp

Beschreibung

TIMESTAMP

TIMESTAMP_NTZ

UTC-Zeitstempel für den Zeitpunkt, an dem das Ereignis erstellt wurde. Bei Ereignissen, die eine Zeitspanne darstellen, ist dies das Ende der Zeitspanne.

START_TIMESTAMP

TIMESTAMP_NTZ

Bei Ereignissen, die eine Zeitspanne darstellen, wie z. B. Ablaufverfolgungsereignisse, wird der Beginn der Zeitspanne als UTC-Zeitstempel angegeben.

OBSERVED_TIMESTAMP

TIMESTAMP_NTZ

UTC-Zeit, die für Protokolle verwendet wird. Hat derzeit denselben Wert wie TIMESTAMP.

TRACE

OBJECT

Ablaufverfolgungskontext für alle Signaltypen. Enthält die Zeichenfolgenwerte trace_id und span_id.

RESOURCE

OBJECT

Reserviert für zukünftige Verwendung.

RESOURCE_ATTRIBUTES

OBJECT

Attribute, die die Quelle eines Ereignisses identifizieren, wie Datenbank, Schema, Benutzer, Warehouse usw.

SCOPE

OBJECT

Geltungsbereiche für Ereignisse. Beispiel: Klassennamen für Protokolle.

SCOPE_ATTRIBUTES

OBJECT

Reserviert für zukünftige Verwendung.

RECORD_TYPE

STRING

Der Ereignistyp. Eine der folgenden Optionen:

  • LOG für eine Protokollmeldung.

  • SPAN für benutzerdefinierte Funktionsaufrufe, die sequentiell in demselben Thread ausgeführt werden. Weitere Informationen dazu finden Sie unter RECORD_TYPE-Spalte.

  • SPAN_EVENT für ein einzelnes Ablaufverfolgungsereignis. Eine einzelne Abfrage kann mehr als ein SPAN_EVENT ausgeben.

RECORD

OBJECT

Fester Werte für jeden Datensatztyp, wie unter RECORD-Spalte beschrieben.

RECORD_ATTRIBUTES

OBJECT

Variable Attribute für jeden Datensatztyp, wie unter RECORD_ATTRIBUTES-Spalte beschrieben.

VALUE

VARIANT

Primärer Ereigniswert.

EXEMPLARS

ARRAY

Reserviert für zukünftige Verwendung.

Erfasste Daten nach Ereignistyp

Daten zu Protokollereignissen

Attribut

Beschreibung

OBSERVED_TIMESTAMP

Hat derzeit denselben Wert wie TIMESTAMP.

RECORD

Schweregrad, der vom Protokollereignis erfasst wurde.

RECORD_ATTRIBUTES

Stelle im Code, an der das Protokollereignis ausgegeben wurde. Die Werte variieren je nach Handler-Sprache, können aber den Codedateipfad, den Funktionsnamen, die Zeilennummer usw. enthalten.

RECORD_TYPE

Der Ereignistyp: LOG für eine Protokollmeldung

RESOURCE_ATTRIBUTES

Attribute, die die Quelle des Ereignisses identifizieren, wie Datenbank, Schema, Benutzer, Warehouse usw.

SCOPE

Geltungsbereich, in dem das Ereignis aufgetreten ist, z. B. der Name der Klasse, in der das Protokollereignis erstellt wurde.

TIMESTAMP

Zeitstempel für den Zeitpunkt, an dem das Ereignis erstellt wurde.

VALUE

Die Protokollmeldung.

Daten zu Ablaufverfolgungsereignissen

Attribut

Beschreibung

RECORD

Bei einem Bereich (Span) ein Objekt, das den Namen und die Art des Bereichs enthält. Bei einem Bereichsereignis enthält das Objekt den Namen des Bereichs (Span).

RECORD_ATTRIBUTES

Attributdaten im Zusammenhang mit einem Bereich (Span) oder einem Bereichsereignis.

RECORD_TYPE

Der Ereignistyp: SPAN für einen Bereich, SPAN_EVENT für ein Bereichsereignis.

RESOURCE_ATTRIBUTES

Attribute, die die Quelle des Ereignisses identifizieren, wie Datenbank, Schema, Benutzer, Warehouse usw.

START_TIMESTAMP

Bei einem Bereich (Span) der Zeitpunkt, an dem der Bereich (Span) begann. Wird nicht für ein Bereichsereignis verwendet.

TIMESTAMP

Zeitstempel für den Zeitpunkt, an dem das Ereignis erstellt wurde.

TRACE

Identifikatoren trace_id und span_id für einen Bereich (Span) und die darin aufgetretenen Ereignisse.

EXEMPLARS-Spalte

Reserviert für zukünftige Verwendung.

OBSERVED_TIMESTAMP-Spalte

Der UTC-Zeitstempel eines Protokollereignisses. Wird nicht für Ablaufverfolgungsereignisse verwendet.

RECORD-Spalte

Liefert Kerninformationen zu dem Ereignis, wie Protokolliergrad eines Protokollereignisses oder Name des Ablaufverfolgungsereignisses (Datensatz zu Bereich oder Bereichsereignis).

Die Attribute des Datensatzes werden, falls vorhanden, in der Spalte RECORD_ATTRIBUTES gespeichert.

Die in dieser Spalte enthaltenen Werte hängen vom Wert in der Spalte RECORD_TYPE (LOG, SPAN oder SPAN_EVENT) ab, wie in den folgenden Abschnitten beschrieben.

RECORD_TYPE: LOG

Wenn die Spalte RECORD_TYPE den Wert LOG hat, ist der Wert der Spalte RECORD der Schweregrad der Protokollmeldung. Der Spaltenwert kann die folgenden Schlüssel enthalten:

Schlüssel

Typ

Beschreibung

severity_text

STRING

Der Text für den Schweregrad des Protokolleintrags. Eine der folgenden Optionen:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

Handelt es sich bei dem Protokolleintrag um eine unbehandelte Ausnahme, ist dieser Wert der höchste Schweregrad für die aktuelle Laufzeitumgebung der Handler-Sprache. Bei einem in Python geschriebenen Handler lautet der Wert beispielsweise FATAL.

Beispiel

{
  "severity_text": "INFO"
}
Copy

RECORD_TYPE: SPAN

Bereiche (Spans) repräsentieren einzelne Ausführungen von Funktionen und Prozeduren dar. Bei gespeicherten Prozeduren gibt es nur einen einzigen Bereich (Span). Bei benutzerdefinierten Funktionen kann es für einen einzelnen Funktionsaufruf mehrere Bereiche (Spans) geben, je nachdem, wie Snowflake die Ausführung plant.

Alle Bereiche (Spans) einer bestimmten Abfrage haben denselben Wert für den trace_id-Schlüssel der Spalte TRACE.

Die Dauer eines Bereichs (Span) ist die Differenz zwischen den Werten in den Spalten start_timestamp und timestamp, die den Zeitpunkt des Beginns bzw. des Endes der Ausführung des Bereichs (Span) angeben.

Die ID des Bereichs (Span) und der Abfrageablaufverfolgung werden vom Wert in der Spalte TRACE repräsentiert.

Snowflake erstellt für jede Ausführung einen Bereich (Span) mit den folgenden Schlüsseln:

Schlüssel

Typ

Beschreibung

dropped_attributes_count

int

Die Anzahl der Attribute, die ignoriert werden, nachdem das aufgezeichnete Maximum erreicht wurde.

name

string

Fester Wert.

kind

string

Fester Wert SPAN_KIND_INTERNAL

status

string

STATUS_CODE_ERROR, wenn der Bereich (Span) einer unbehandelten Ausnahme entspricht. Ansonsten STATUS_CODE_UNSET.

Bei benutzerdefinierten Funktionen kann Snowflake Attribute für Bereiche (Spans) hinzufügen, um die Anzahl der von der Funktion verarbeiteten und ausgegebenen Zeilen anzugeben.

RECORD_TYPE: SPAN_EVENT

Bereichsereignisse sind Ereignisdatensätze, die mit einer bestimmten, oben beschriebenen Ausführung eines Bereichs (Span) verbunden sind. Sie können Ereignisse erstellen, die den Anforderungen Ihrer Anwendung entsprechen. Die Anzahl der Bereichsereignisse ist auf 128 begrenzt.

Der Wert der Spalte TRACE bezeichnet den Bereich (Span), in dem das Ereignis erstellt wurde.

Bereichsereignisse haben einen einzigen Schlüssel name und können in der Spalte RECORD_ATTRIBUTES beliebige Attribute enthalten.

Schlüssel

Typ

Beschreibung

name

string

Der Name des Bereichsereignisses.

RECORD_ATTRIBUTES-Spalte

Beschreibt das Ereignis mit Metadaten, die von Snowflake oder vom Handler-Code festgelegt werden. Der Wert hängt vom Typ des Datensatzes ab, den die Zeile enthält, wie in den folgenden Abschnitten beschrieben.

RECORD_TYPE: LOG

Die Stelle im Code, an der das Protokollereignis ausgegeben wurde, einschließlich Codedateipfad, Funktionsnamen, Zeilennummer usw.

Attribut

Typ

Beschreibung

code.filepath

int

Die Datei mit dem Code, der die Meldung erzeugt hat.

code.function

string

Name der Funktion, die die Meldung generiert hat.

code.lineno

int

Zeilennummer im Code, die die Meldung generiert hat.

code.namespace

int

Namespace des Codes, der die Meldungen generiert hat.

exception.message

string

Die Fehlermeldung einer unbehandelten Ausnahme.

exception.type

string

Der Name der Klasse einer unbehandelten Ausnahme.

exception.stacktrace

string

Die Stapelüberwachung einer unbehandelten Ausnahme, formatiert durch die Laufzeitumgebung der Handler-Sprache.

exception.escaped

boolean

true, wenn dieser Eintrag von einer unbehandelten Ausnahme stammt.

thread.id

int

Thread, in dem das Protokollereignis erstellt wurde.

thread.name

string

Thread, in dem das Protokollereignis erstellt wurde.

Beispiel

{
  "code.filepath": "main.scala",
  "code.function": "$anonfun$new$10",
  "code.lineno": 149,
  "code.namespace": "main.main$",
  "thread.id": 1,
  "thread.name": "main"
}
Copy

RECORD_TYPE: SPAN

Attribute, falls vorhanden, die dem Bereich (Span) bei der Erfassung zugewiesen wurden. Attributnamen und -werte werden durch Handler-Code oder durch Snowflake festgelegt.

Die folgende Tabelle enthält die Attribute, die von Snowflake festgelegt werden können.

Attribut

Typ

Beschreibung

snow.rows.processed

int

Anzahl der Zeilen, die von dem Bereich (Span) der Funktion verarbeitet werden.

Beispiel

Der Code im folgenden Beispiel enthält von Snowflake festgelegte Attribute.

{
  "snow.rows.processed": 12
}
Copy

Beispiel

Der Code im folgenden Beispiel enthält Attribute, die durch Handler-Code festgelegt werden.

{
  "MyFunctionVersion": "1.1.0"
}
Copy

RECORD_TYPE: SPAN_EVENT

Attribute, die dem Bereichsereignis bei der Erfassung zugewiesen werden. Attributnamen und -werte können von Snowflake oder durch Benutzercode festgelegt werden.

Beispiel

Der Code im folgenden Beispiel enthält Attribute, die durch Handler-Code festgelegt werden.

{
  "mykey1": "value1",
  "mykey2": "value2"
}
Copy

RECORD_TYPE-Spalte

Gibt den Typ des Datensatzes an, der in der Ereignistabellenzeile beschrieben wird. Der Wert in dieser Spalte gibt an, für welche der drei Typen von Datensätzen die Ereignistabelle Daten enthalten kann.

Die Spalte RECORD enthält die Daten dieses Datensatzes. Die Spalte RECORD_ATTRIBUTES enthält die Metadaten dieses Datensatzes, falls vorhanden.

In der folgenden Tabelle sind die möglichen Werte für diese Spalte aufgeführt.

Spaltenwert

Beschreibung

LOG

Die Zeile repräsentiert einen Protokolleintrag, der vom Handler-Code generiert wurde.

SPAN

Die Zeile repräsentiert einen Bereich (Span).

Bei einer gespeicherten Prozedur gibt es nur einen einzigen Bereich (Span). Bei einer benutzerdefinierten Funktion, die parallelisiert werden kann, gibt es einen Bereich (Span) für jeden Thread, in dem die Funktion ausgeführt wird. Die Anzahl der Threads hängt von mehreren Faktoren ab, unter anderem von der Größe des Snowflake-Warehouses, in dem die Funktion ausgeführt wird.

Ein Bereich (Span) kann mehrere Bereichsereignisse enthalten. Weitere Informationen dazu finden Sie unter Erfasste Bereichsdaten.

SPAN_EVENT

Die Zeile repräsentiert ein Bereichsereignis. Einem bestimmten Bereich (Span) können mehrere Bereichsereignisdatensätze zugeordnet sein. Ihr Handler-Code kann Ereignisse erzeugen, die Ihren Anforderungen entsprechen. Die Anzahl der Bereichsereignisse ist auf 128 begrenzt.

RESOURCE-Spalte

Reserviert für zukünftige Verwendung.

RESOURCE_ATTRIBUTES-Spalte

Beschreibt die Quelle eines Ereignisses in Form von Snowflake-Objekten.

Die Attribute, die den Wert in dieser Spalte bestimmen, werden von Snowflake festgelegt und können nicht geändert werden.

Ressourcenattribute für Ereignisquelle

Attributname

Attributtyp

Beschreibung

Beispiel

snow.database.id

int

Der interne/systemgenerierte Bezeichner der Datenbank, die die ausführbare Datei enthält.

12345

snow.database.name

string

Der Name der Datenbank, die die ausführbare Datei enthält.

MY_DATABASE

snow.executable.id

int

Der interne/systemgenerierte Bezeichner der ausführbaren Datei (Prozedur, Funktion, SnowService usw.), die das Ereignis generiert.

12345

snow.executable.name

string

Der Name der ausführbaren Datei (Prozedur, Funktion usw.), die das Ereignis generiert.

MY_UDF

snow.executable.type

string

Eine der folgenden Optionen:

  • procedure für eine gespeicherte Prozedur

  • function für eine benutzerdefinierte Funktion

  • sql für ein Ereignis aus einer einzelnen Abfrage, z. B. einem Snowflake Scripting-Block.

  • service für Snowflake SnowService

procedure

snow.owner.id

int

Der interne/systemgenerierte Bezeichner der OWNERSHIP-Rolle der ausführbaren Datei.

1234

snow.owner.name

string

Der Name der OWNERSHIP-Rolle der ausführbaren Datei.

UDF_OWNER_RL

snow.schema.id

int

Der interne/systemgenerierte Bezeichner des Schemas, das die ausführbare Datei enthält.

12345

snow.schema.name

string

Der Name des Schemas, das die ausführbare Datei enthält.

MY_SCHEMA

telemetry.sdk.language

string

Die Sprache der Ressource/des SDK. Snowflake verwendet „java“, „scala“, „python“, „javascript“ und „sql“.

java

Ressourcenattribute für die Ausführungsumgebung

Attribut

Typ

Beschreibung

Beispiele

db.user

string

Der Name des Benutzers, der die Funktion ausführt.

MY_USER_NAME

snow.query.id

string

Die ID der Abfrage.

01a6aeb7-0604-c466-0000-097127d13812

snow.release.version

string

Das Snowflake-Release, das beim Generieren des Ereignisses ausgeführt wurde.

7.9.0

snow.session.id

int

Die ID der Sitzung, in der die ausführbare Datei ausgeführt wird.

10

snow.session.role.primary.id

int

Der interne/systemgenerierte Bezeichner der Primärrolle in der Sitzung.

10

snow.session.role.primary.name

string

Der Name der Primärrolle in der Sitzung.

MY_ROLE

snow.user.id

int

Der interne/systemgenerierte Bezeichner des Benutzers, das die Abfrage ausführt.

1234

snow.warehouse.id

int

Der interne/systemgenerierte Bezeichner des Warehouses, das die Abfrage ausführt, die das Ereignis generiert hat.

12345

snow.warehouse.name

string

Der Name des Warehouses, das die Abfrage ausführt, die das Ereignis generiert hat.

MY_WAREHOUSE

Ressourcenattribute für Anwendungen

Attribut

Typ

Beschreibung

Beispiele

snow.application.consumer.name

string

Bei nativen Anwendungen der Name des Kontos des Verbrauchers.

CONSUMER_NAME

snow.application.consumer.organization

string

Bei nativen Anwendungen der Name der Organisation des Verbrauchers.

CONSUMER_ORG_NAME

snow.application.package.name

string

Bei nativen Anwendungen der Name des Anwendungspakets.

MY_INSTALLED_PACKAGE_NAME

snow.listing.global_name

string

Bei nativen Anwendungen der interne/systemgenerierte Bezeichner des Freigabeangebots.

GZYZN3J3

snow.listing.name

string

Bei nativen Anwendungen der Name des Freigabeangebots.

MY_LISTING_NAME

Ressourcenattribute für Snowflake-Version

Attribut

Typ

Beschreibung

Beispiele

service.version

string

Version der ausführbaren Datei, sofern relevant. Kombination aus snow.version und snow.patch, die durch einen Punkt verknüpft sind, sofern vorhanden. Standard-OpenTelemetry-Attribut.

2.3.1

snow.patch

string

Patch-Level (Revisionsnummer) der aktiven ausführbaren Datei.

1

snow.version

string

Version der aktiven ausführbaren Datei.

2.3

Beispiel

{
  "db.user": "MYUSERNAME",
  "snow.database.id": 13,
  "snow.database.name": "MY_DB",
  "snow.executable.id": 197,
  "snow.executable.name": "FUNCTION_NAME(I NUMBER):ARG_NAME(38,0)",
  "snow.executable.type": "FUNCTION",
  "snow.owner.id": 2,
  "snow.owner.name": "MY_ROLE",
  "snow.query.id": "01ab0f07-0000-15c8-0000-0129000592c2",
  "snow.schema.id": 16,
  "snow.schema.name": "PUBLIC",
  "snow.session.id": 1275605667850,
  "snow.session.role.primary.id": 2,
  "snow.session.role.primary.name": "MY_ROLE",
  "snow.user.id": 25,
  "snow.warehouse.id": 5,
  "snow.warehouse.name": "MYWH",
  "telemetry.sdk.language": "python"
}
Copy

SCOPE-Spalte

Bei Protokollereignissen der Namespace des Codes, der das Ereignis ausgegeben hat, z. B. der Name der Klasse, die einen Protokolleintrag erstellt. Dies wird nicht für Ablaufverfolgungsereignisse verwendet.

In der folgenden Tabelle sind die Attribute aufgeführt, die in diese Spalte aufgenommen werden können.

Geltungsbereichswert

Attribut

Typ

Beschreibung

Beispiele

name

String

Namespace des Codes, der das Ereignis ausgibt.

com.sample.MyClass

Beispiel

{
  "name": "com.sample.MyClass"
}
Copy

SCOPE_ATTRIBUTES-Spalte

Reserviert für zukünftige Verwendung.

START_TIMESTAMP-Spalte

Zeitpunkt des Beginns eines Bereichs (Span) als UTC-Zeitstempel.

RECORD_TYPE-Spaltenwert

START_TIMESTAMP-Wertbeschreibung

LOG

Nicht verwendet.

SPAN

Zeitpunkt, an dem der Bereich (Span) gestartet ist.

SPAN_EVENT

Nicht verwendet.

TIMESTAMP-Spalte

Zeitpunkt, zu dem ein Ereignis ausgegeben wurde. Die Bedeutung des Wertes hängt vom Typ des Datensatzes ab, den die Zeile repräsentiert, wie in der folgenden Tabelle aufgeführt:

RECORD_TYPE-Spaltenwert

TIMESTAMP-Wertbeschreibung

LOG

Die Echtzeit (wall-clock time), zu der das Ereignis ausgegeben wurde.

SPAN

Zeitpunkt, zu dem die Ausführung abgeschlossen wurde.

SPAN_EVENT

Die Echtzeit (wall-clock time), zu der das Ereignis ausgegeben wurde.

TRACE-Spalte

Eindeutige Bezeichner für die Ausführung von Funktionen und Prozeduren.

RECORD_TYPE-Spaltenwert

TRACE-Wertbeschreibung

LOG

Nicht verwendet.

SPAN

trace_id und span_id

SPAN_EVENT

trace_id und span_id

Ablaufverfolgungswert

In der folgenden Tabelle sind die Attribute aufgeführt, die in diese Spalte aufgenommen werden können.

Attribut

Typ

Beschreibung

Beispiele

span_id

Hex string

Ein eindeutiger Bezeichner, der an das Threading-Modell gebunden ist. Prozeduren, die immer nur einen Thread haben, haben auch nur einen einzigen span_id-Wert. Funktionen, die von Snowflake auf mehreren Threads ausgeführt werden können (z. B. für mehrere Zeilen), können mehrere span_id-Werte haben.

b4c28078330873a2

trace_id

Hex string

Ein eindeutiger Bezeichner für Anrufe, die aus einer Abfrage heraus erfolgen. Jeder Aufruf einer gespeicherten Prozedur hat seinen eigenen trace_id-Wert. Innerhalb einer Abfrage haben alle Funktionsaufrufe, die von der Abfrage aus erfolgen, denselben trace_id-Wert.

Dieser Wert ist für jede Abfrage eindeutig und ist für alle Bereiche (Spans) innerhalb einer Abfrage gleich. Sie können dies für das Gruppieren von Ereignissen innerhalb einer einzelnen Abfrageausführung verwenden.

6992e9febf0b97f45b34a62e54936adb

Beispiel

Der Code im folgenden Beispiel zeigt die Attribute, die für einen Bereich (Span) oder für ein Bereichsereignis vorhanden sein müssen.

{
  "span_id": "b4c28078330873a2",
  "trace_id": "6992e9febf0b97f45b34a62e54936adb"
}
Copy

VALUE-Spalte

Bei Protokollereignissen ist dies normalerweise die Protokollmeldung. Wenn es sich bei dem protokollierten Ereignis um eine unbehandelte Ausnahme handelt, ist der Wert in dieser Spalte einfach exception.

Beachten Sie, dass die Spalte VALUE vom Typ VARIANT (nicht STRING) ist, sodass hier bei einigen Sprachen, wie JavaScript, auch Werte vorliegen können, die keine Zeichenfolgenwerte sind.