事件表列¶
事件表具有一组预定义的列。本主题介绍这些列。
有关使用事件表的更多信息,请参阅 使用事件表。
事件表列¶
事件表包含以下列:
列 |
数据类型 |
描述 |
---|---|---|
TIMESTAMP_NTZ |
事件创建时的 UTC 时间戳。对于表示时间 span 的事件,这是时间 span 的结尾。 |
|
TIMESTAMP_NTZ |
对于表示时间 span 的事件(如跟踪事件),时间 span 的开头作为 UTC 时间戳。 |
|
TIMESTAMP_NTZ |
用于日志的 UTC 时间。当前值与 TIMESTAMP 的值相同。 |
|
OBJECT |
跟踪所有信号类型的上下文。包含字符串值 |
|
OBJECT |
保留以供将来使用。 |
|
OBJECT |
用于标识事件源(例如数据库、架构、用户、仓库等)的属性。 |
|
OBJECT |
事件的作用域。例如,日志的类名。 |
|
OBJECT |
保留以供将来使用。 |
|
STRING |
事件类型。以下其中一项:
|
|
OBJECT |
每种记录类型的固定值,如 RECORD 列 中所述。 |
|
OBJECT |
每种记录类型的变量属性,如 RECORD_ATTRIBUTES 列 中所述。 |
|
VARIANT |
主要事件值。 |
|
ARRAY |
保留以供将来使用。 |
按事件类型获取的数据¶
日志数据¶
属性 |
描述 |
---|---|
当前值与 TIMESTAMP 的值相同。 |
|
:ref:` 日志事件 <label-event_table_record_column_log>` 记录的严重性级别。 |
|
代码中发出日志事件的位置。这些值因语言而异,但可以包括代码文件路径、函数名称、行号等。 |
|
事件类型: |
|
用于标识事件源(例如数据库、架构、用户、仓库等)的属性。 |
|
事件发生的作用域,例如创建日志事件的类的名称。 |
|
事件创建时的时间戳。 |
|
日志消息。 |
跟踪事件的数据¶
属性 |
描述 |
---|---|
与 :ref:` span <label-event_table_record_attributes_span>` 或 :ref:` span 事件 <label-event_table_record_attributes_span_event>` 关联的属性数据。 |
|
事件类型: |
|
用于标识事件源(例如数据库、架构、用户、仓库等)的属性。 |
|
适用于 span、span 开始的时间。不适用于 span 事件。 |
|
事件创建时的时间戳。 |
|
标识符 |
EXEMPLARS 列¶
保留以供将来使用。
OBSERVED_TIMESTAMP 列¶
日志的 UTC 时间戳。不用于跟踪事件。
RECORD 列¶
提供有关事件的核心信息,包括日志事件的日志级别或跟踪事件(span 或 span 事件记录)的名称。
针对记录的属性(如果有)记录在 RECORD_ATTRIBUTES 列 中。
此列包含的值因 RECORD_TYPE 列 (LOG
、SPAN
或 SPAN_EVENT
)的值而异,正如以下部分中所述。
针对 LOG
RECORD_TYPE¶
当 RECORD_TYPE 列值为 LOG
时, RECORD 列值包含日志消息的严重性。列值可能包含以下键:
键 |
类型 |
描述 |
---|---|---|
|
STRING |
日志严重性的文本。以下其中一项:
当日志条目用于 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 时,此值是当前语言运行时的最高严重性错误级别。例如,对于用 Python 编写的代码,其值为 |
示例¶
{
"severity_text": "INFO"
}
针对 SPAN
RECORD_TYPE¶
span 表示函数和过程的单独执行。对于存储过程,有单个 span。对于用户定义的函数,单个函数调用可能有多个 span,具体取决于 Snowflake 如何决定计划执行。
对于 trace_id
列的 TRACE
键,给定查询的所有 span 具有相同的值。
span 的持续时间是 start_timestamp
和 timestamp
列中的值之间的差值,分别指示 span 执行的开始时间和结束时间。
span 和查询跟踪的 ID 使用 TRACE 列中的值表示。
Snowflake 将为每个执行创建一个 span,具有如下所示的键:
键 |
类型 |
描述 |
---|---|---|
|
整数 |
达到记录的最大值后忽略的属性数。 |
|
字符串 |
固定值。 |
|
字符串 |
固定值 |
|
字符串 |
当 span 对应 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 时,则为 |
对于用户定义的函数,Snowflake 可以添加 span 属性,指示函数处理和发出的行数。
针对 SPAN_EVENT
RECORD_TYPE¶
span 事件是附加到特定 span 执行的事件记录,如上所述。您可以创建事件以满足应用程序的需求。span 事件数上限为 128 个。
TRACE 列的值将标识事件创建的 span。
span 事件具有单个键 name
,并且可以在 RECORD_ATTRIBUTES 列中添加任意属性。
键 |
类型 |
描述 |
---|---|---|
|
字符串 |
span 事件的名称。 |
RECORD_ATTRIBUTES 列¶
使用由 Snowflake 或代码设置的元数据描述事件。该值将因行包含的记录类型而异,如以下部分所述。
针对 LOG
RECORD_TYPE¶
代码中发出日志事件的位置,包括代码文件路径、函数名称、行号等。
属性 |
类型 |
描述 |
---|---|---|
|
整数 |
包含生成消息的代码的文件。 |
|
字符串 |
生成消息的函数的名称。 |
|
整数 |
代码中生成消息的行号。 |
|
整数 |
生成消息的代码的命名空间。 |
|
字符串 |
来自 :doc:` 未处理异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 的错误消息。 |
|
字符串 |
:doc:` 未处理异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 的类的名称。 |
|
字符串 |
由语言运行时格式化的 :doc:` 未处理异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 的堆栈跟踪。 |
|
布尔 |
如果此条目来自 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>`,则为 |
|
整数 |
用于创建日志事件的线程。 |
|
字符串 |
用于创建日志事件的线程。 |
示例¶
{
"code.filepath": "main.scala",
"code.function": "$anonfun$new$10",
"code.lineno": 149,
"code.namespace": "main.main$",
"thread.id": 1,
"thread.name": "main"
}
针对 SPAN
RECORD_TYPE¶
记录 span 时为 span 分配的属性(如果有)。属性名称和值由代码或 Snowflake 设置。
下表列出了 Snowflake 可能设置的属性。
属性 |
类型 |
描述 |
---|---|---|
|
整数 |
函数的 span 处理的行数。 |
示例¶
以下示例中的代码包括 Snowflake 设置的属性。
{
"snow.rows.processed": 12
}
示例¶
以下示例中的代码包括由处理程序代码设置的属性。
{
"MyFunctionVersion": "1.1.0"
}
针对 SPAN_EVENT
RECORD_TYPE¶
记录 span 事件时为事件分配的属性(如果有)。属性名称和值可以由 Snowflake 或用户代码设置。
示例¶
以下示例中的代码包括由处理程序代码设置的属性。
{
"mykey1": "value1",
"mykey2": "value2"
}
RECORD_TYPE 列¶
指定事件表行描述的记录的类型。此列的值标识事件表可能包含三类记录中哪类记录的数据。
RECORD 列包含此记录的数据。RECORD_ATTRIBUTES 列包含此记录的元数据(如果有)。
下表列出了此列的可能值。
列值 |
描述 |
---|---|
|
该行表示处理程序代码生成的日志条目。 |
|
该行表示一个 span。 对于存储过程,有单个 span。对于可以并行化的用户定义函数,执行该函数的每个线程都有一个 span。线程数将因多种因素而异,包括执行函数的 Snowflake 仓库的大小。 一个 span 可以包含多个 span 事件。有关更多信息,请参阅 记录的 span 数据。 |
|
该行表示一个 span 事件。一个特定 span 可以附加多个 span 事件记录。处理程序代码可能会创建事件以满足您的需求。span 事件数上限为 128 个。 |
RESOURCE 列¶
保留以供将来使用。
RESOURCE_ATTRIBUTES 列¶
根据 Snowflake 对象描述事件的源。
构成此列值的属性由 Snowflake 设置,无法更改。
事件源的资源属性¶
属性名称 |
属性类型 |
描述 |
示例 |
---|---|---|---|
|
整数 |
包含可执行文件的数据库的内部/系统生成的标识符。 |
|
|
字符串 |
包含可执行文件的数据库的名称。 |
|
|
整数 |
生成事件的可执行文件(过程、函数 SnowService 等)的内部/系统生成的标识符。 |
|
|
字符串 |
生成事件的可执行文件的名称。例如,这可能是过程、函数或 Streamlit 应用程序的名称。 |
|
|
字符串 |
以下其中一项:
|
|
|
整数 |
可执行文件的 OWNERSHIP 角色的内部/系统生成的标识符。 |
|
|
字符串 |
可执行文件的 OWNERSHIP 角色的名称。 |
|
|
整数 |
包含可执行文件的架构的内部/系统生成的标识符。 |
|
|
字符串 |
包含可执行文件的架构的名称。 |
|
|
字符串 |
资源/SDK 的语言。Snowflake 使用 Java、Scala、Python、JavaScript 和 SQL。 |
|
执行环境的资源属性¶
属性 |
类型 |
描述 |
示例 |
---|---|---|---|
|
字符串 |
对于函数或过程,这是指执行该函数或过程的用户的名称。对于 Streamlit 应用程序,这是指在某一事件中查看该应用程序的用户的名称。 |
|
|
字符串 |
查询的 ID。 |
|
|
字符串 |
生成事件时运行的 Snowflake 版本 |
|
|
整数 |
运行可执行文件的会话的 ID。 |
|
|
整数 |
会话中主要角色的内部/系统生成的标识符。 |
|
|
字符串 |
会话中主要角色的名称。 |
|
|
整数 |
运行查询的用户的内部/系统生成的标识符。 |
|
|
整数 |
运行(生成事件的)查询的仓库的内部/系统生成的标识符。 |
|
|
字符串 |
运行(生成事件的)查询的仓库的名称。 |
|
应用程序的资源属性¶
属性 |
类型 |
描述 |
示例 |
---|---|---|---|
|
字符串 |
适用于原生应用程序,是使用者账户的名称。 |
|
|
字符串 |
适用于原生应用程序,是使用者组织的名称。 |
|
|
字符串 |
适用于原生应用程序,是应用程序包的名称。 |
|
|
字符串 |
适用于原生应用程序,是列表的内部/系统生成的标识符。 |
|
|
字符串 |
适用于原生应用程序,是列表的名称。 |
|
Snowflake 版本的资源属性¶
属性 |
类型 |
描述 |
示例 |
---|---|---|---|
|
字符串 |
可执行文件的版本(如果相关)。由它们存在的点联接的 |
|
|
字符串 |
正在运行的可执行文件的补丁级别。 |
|
|
字符串 |
正在运行的可执行文件的版本。 |
|
示例¶
{
"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"
}
SCOPE 列¶
适用于日志事件,发出事件的代码的命名空间,例如创建日志条目的类的名称。这不用于跟踪事件。
下表列出了此列中可能包含的属性。
范围值¶
属性 |
类型 |
描述 |
示例 |
---|---|---|---|
|
字符串 |
发出事件的代码的命名空间。 |
|
示例¶
{
"name": "com.sample.MyClass"
}
SCOPE_ATTRIBUTES 列¶
保留以供将来使用。
START_TIMESTAMP 列¶
span 以 UTC 时间戳开始的时间。
RECORD_TYPE 列值 |
START_TIMESTAMP 值描述 |
---|---|
|
未使用。 |
|
span 开始的时间。 |
|
未使用。 |
TIMESTAMP 列¶
发出事件的时间。该值的含义将因行所表示的记录类型而异,如下表所示:
RECORD_TYPE 列值 |
TIMESTAMP 值描述 |
---|---|
|
发出事件的挂钟时间。 |
|
执行结束的时间。 |
|
发出事件的挂钟时间。 |
TRACE 列¶
表示函数和过程执行的唯一标识符。
RECORD_TYPE 列值 |
TRACE 值描述 |
---|---|
|
未使用。 |
|
|
|
|
跟踪值¶
下表列出了此列中可能包含的属性。
属性 |
类型 |
描述 |
示例 |
---|---|---|---|
|
十六进制字符串 |
与线程模型绑定的唯一标识符。过程,将为单线程,将具有单个 |
|
|
十六进制字符串 |
从查询发出的调用的唯一标识符。对存储过程的每次调用都有各自的 此值对于每个查询均唯一,并且对于查询中的所有 span 均相同。您可以使用它对单个查询执行中的事件进行分组。 |
|
示例¶
以下示例中的代码显示 span 或 span 事件将存在的属性。
{
"span_id": "b4c28078330873a2",
"trace_id": "6992e9febf0b97f45b34a62e54936adb"
}
VALUE 列¶
对于日志事件,这通常是日志消息。当记录的事件是针对 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 时,此列中的值将仅为 exception
。
请注意, VALUE 列的类型为 VARIANT(不是 STRING),因此它可以具有某些语言(例如 JavaScript)的非字符串值。