事件表列

事件表具有一组预定义的列。本主题介绍这些列。

有关使用事件表的更多信息,请参阅 使用事件表

事件表列

事件表包含以下列:

数据类型

描述

TIMESTAMP

TIMESTAMP_NTZ

事件创建时的 UTC 时间戳。对于表示时间 span 的事件,这是时间 span 的结尾。

START_TIMESTAMP

TIMESTAMP_NTZ

对于表示时间 span 的事件(如跟踪事件),时间 span 的开头作为 UTC 时间戳。

OBSERVED_TIMESTAMP

TIMESTAMP_NTZ

用于日志的 UTC 时间。当前值与 TIMESTAMP 的值相同。

TRACE

OBJECT

跟踪所有信号类型的上下文。包含字符串值 trace_idspan_id

RESOURCE

OBJECT

保留以供将来使用。

RESOURCE_ATTRIBUTES

OBJECT

用于标识事件源(例如数据库、架构、用户、仓库等)的属性。

SCOPE

OBJECT

事件的作用域。例如,日志的类名。

SCOPE_ATTRIBUTES

OBJECT

保留以供将来使用。

RECORD_TYPE

STRING

事件类型。以下其中一项:

  • LOG,适用于日志消息。

  • SPAN,适用于在同一线程上按顺序执行的用户定义函数调用。有关更多信息,请参阅 RECORD_TYPE 列

  • SPAN_EVENT,适用于单个跟踪事件。单个查询可以发出多个 SPAN_EVENT

RECORD

OBJECT

每种记录类型的固定值,如 RECORD 列 中所述。

RECORD_ATTRIBUTES

OBJECT

每种记录类型的变量属性,如 RECORD_ATTRIBUTES 列 中所述。

VALUE

VARIANT

主要事件值。

EXEMPLARS

ARRAY

保留以供将来使用。

按事件类型获取的数据

日志数据

属性

描述

OBSERVED_TIMESTAMP

当前值与 TIMESTAMP 的值相同。

RECORD

:ref:` 日志事件 <label-event_table_record_column_log>` 记录的严重性级别。

RECORD_ATTRIBUTES

代码中发出日志事件的位置。这些值因语言而异,但可以包括代码文件路径、函数名称、行号等。

RECORD_TYPE

事件类型:LOG,适用于日志消息

RESOURCE_ATTRIBUTES

用于标识事件源(例如数据库、架构、用户、仓库等)的属性。

SCOPE

事件发生的作用域,例如创建日志事件的类的名称。

TIMESTAMP

事件创建时的时间戳。

VALUE

日志消息。

跟踪事件的数据

属性

描述

RECORD

适用于 span、包含 span 名称和种类的对象;适用于 span 事件,对象包括 span 的名称。

RECORD_ATTRIBUTES

与 :ref:` span <label-event_table_record_attributes_span>` 或 :ref:` span 事件 <label-event_table_record_attributes_span_event>` 关联的属性数据。

RECORD_TYPE

事件类型:SPAN,适用于 span;SPAN_EVENT,适用于 span 事件。

RESOURCE_ATTRIBUTES

用于标识事件源(例如数据库、架构、用户、仓库等)的属性。

START_TIMESTAMP

适用于 span、span 开始的时间。不适用于 span 事件。

TIMESTAMP

事件创建时的时间戳。

TRACE

标识符 trace_idspan_id,适用于 span 以及其中的 span 事件。

EXEMPLARS 列

保留以供将来使用。

OBSERVED_TIMESTAMP 列

日志的 UTC 时间戳。不用于跟踪事件。

RECORD 列

提供有关事件的核心信息,包括日志事件的日志级别或跟踪事件(span 或 span 事件记录)的名称。

针对记录的属性(如果有)记录在 RECORD_ATTRIBUTES 列 中。

此列包含的值因 RECORD_TYPE 列LOGSPANSPAN_EVENT)的值而异,正如以下部分中所述。

针对 LOG RECORD_TYPE

当 RECORD_TYPE 列值为 LOG 时, RECORD 列值包含日志消息的严重性。列值可能包含以下键:

类型

描述

severity_text

STRING

日志严重性的文本。以下其中一项:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

当日志条目用于 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 时,此值是当前语言运行时的最高严重性错误级别。例如,对于用 Python 编写的代码,其值为 FATAL

示例

{
  "severity_text": "INFO"
}
Copy

针对 SPAN RECORD_TYPE

span 表示函数和过程的单独执行。对于存储过程,有单个 span。对于用户定义的函数,单个函数调用可能有多个 span,具体取决于 Snowflake 如何决定计划执行。

对于 trace_id 列的 TRACE 键,给定查询的所有 span 具有相同的值。

span 的持续时间是 start_timestamptimestamp 列中的值之间的差值,分别指示 span 执行的开始时间和结束时间。

span 和查询跟踪的 ID 使用 TRACE 列中的值表示。

Snowflake 将为每个执行创建一个 span,具有如下所示的键:

类型

描述

dropped_attributes_count

整数

达到记录的最大值后忽略的属性数。

name

字符串

固定值。

kind

字符串

固定值 SPAN_KIND_INTERNAL

status

字符串

当 span 对应 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 时,则为 STATUS_CODE_ERROR。否则,显示 STATUS_CODE_UNSET

对于用户定义的函数,Snowflake 可以添加 span 属性,指示函数处理和发出的行数。

针对 SPAN_EVENT RECORD_TYPE

span 事件是附加到特定 span 执行的事件记录,如上所述。您可以创建事件以满足应用程序的需求。span 事件数上限为 128 个。

TRACE 列的值将标识事件创建的 span。

span 事件具有单个键 name,并且可以在 RECORD_ATTRIBUTES 列中添加任意属性。

类型

描述

name

字符串

span 事件的名称。

RECORD_ATTRIBUTES 列

使用由 Snowflake 或代码设置的元数据描述事件。该值将因行包含的记录类型而异,如以下部分所述。

针对 LOG RECORD_TYPE

代码中发出日志事件的位置,包括代码文件路径、函数名称、行号等。

属性

类型

描述

code.filepath

整数

包含生成消息的代码的文件。

code.function

字符串

生成消息的函数的名称。

code.lineno

整数

代码中生成消息的行号。

code.namespace

整数

生成消息的代码的命名空间。

exception.message

字符串

来自 :doc:` 未处理异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 的错误消息。

exception.type

字符串

:doc:` 未处理异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 的类的名称。

exception.stacktrace

字符串

由语言运行时格式化的 :doc:` 未处理异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 的堆栈跟踪。

exception.escaped

布尔

如果此条目来自 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>`,则为 true

thread.id

整数

用于创建日志事件的线程。

thread.name

字符串

用于创建日志事件的线程。

示例

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

针对 SPAN RECORD_TYPE

记录 span 时为 span 分配的属性(如果有)。属性名称和值由代码或 Snowflake 设置。

下表列出了 Snowflake 可能设置的属性。

属性

类型

描述

snow.rows.processed

整数

函数的 span 处理的行数。

示例

以下示例中的代码包括 Snowflake 设置的属性。

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

示例

以下示例中的代码包括由处理程序代码设置的属性。

{
  "MyFunctionVersion": "1.1.0"
}
Copy

针对 SPAN_EVENT RECORD_TYPE

记录 span 事件时为事件分配的属性(如果有)。属性名称和值可以由 Snowflake 或用户代码设置。

示例

以下示例中的代码包括由处理程序代码设置的属性。

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

RECORD_TYPE 列

指定事件表行描述的记录的类型。此列的值标识事件表可能包含三类记录中哪类记录的数据。

RECORD 列包含此记录的数据。RECORD_ATTRIBUTES 列包含此记录的元数据(如果有)。

下表列出了此列的可能值。

列值

描述

LOG

该行表示处理程序代码生成的日志条目。

SPAN

该行表示一个 span。

对于存储过程,有单个 span。对于可以并行化的用户定义函数,执行该函数的每个线程都有一个 span。线程数将因多种因素而异,包括执行函数的 Snowflake 仓库的大小。

一个 span 可以包含多个 span 事件。有关更多信息,请参阅 记录的 span 数据

SPAN_EVENT

该行表示一个 span 事件。一个特定 span 可以附加多个 span 事件记录。处理程序代码可能会创建事件以满足您的需求。span 事件数上限为 128 个。

RESOURCE 列

保留以供将来使用。

RESOURCE_ATTRIBUTES 列

根据 Snowflake 对象描述事件的源。

构成此列值的属性由 Snowflake 设置,无法更改。

事件源的资源属性

属性名称

属性类型

描述

示例

snow.database.id

整数

包含可执行文件的数据库的内部/系统生成的标识符。

12345

snow.database.name

字符串

包含可执行文件的数据库的名称。

MY_DATABASE

snow.executable.id

整数

生成事件的可执行文件(过程、函数 SnowService 等)的内部/系统生成的标识符。

12345

snow.executable.name

字符串

生成事件的可执行文件的名称。例如,这可能是过程、函数或 Streamlit 应用程序的名称。

MY_UDF

snow.executable.type

字符串

以下其中一项:

  • procedure,适用于存储过程

  • function,适用于用户定义的函数

  • sql,适用于单个查询中的事件,例如 Snowflake Scripting 块。

  • service,适用于 Snowflake SnowService

  • streamlit 适用于 Streamlit 应用程序

procedure

snow.owner.id

整数

可执行文件的 OWNERSHIP 角色的内部/系统生成的标识符。

1234

snow.owner.name

字符串

可执行文件的 OWNERSHIP 角色的名称。

UDF_OWNER_RL

snow.schema.id

整数

包含可执行文件的架构的内部/系统生成的标识符。

12345

snow.schema.name

字符串

包含可执行文件的架构的名称。

MY_SCHEMA

telemetry.sdk.language

字符串

资源/SDK 的语言。Snowflake 使用 Java、Scala、Python、JavaScript 和 SQL。

java

执行环境的资源属性

属性

类型

描述

示例

db.user

字符串

对于函数或过程,这是指执行该函数或过程的用户的名称。对于 Streamlit 应用程序,这是指在某一事件中查看该应用程序的用户的名称。

MY_USER_NAME

snow.query.id

字符串

查询的 ID。

01a6aeb7-0604-c466-0000-097127d13812

snow.release.version

字符串

生成事件时运行的 Snowflake 版本

7.9.0

snow.session.id

整数

运行可执行文件的会话的 ID。

10

snow.session.role.primary.id

整数

会话中主要角色的内部/系统生成的标识符。

10

snow.session.role.primary.name

字符串

会话中主要角色的名称。

MY_ROLE

snow.user.id

整数

运行查询的用户的内部/系统生成的标识符。

1234

snow.warehouse.id

整数

运行(生成事件的)查询的仓库的内部/系统生成的标识符。

12345

snow.warehouse.name

字符串

运行(生成事件的)查询的仓库的名称。

MY_WAREHOUSE

应用程序的资源属性

属性

类型

描述

示例

snow.application.consumer.name

字符串

适用于原生应用程序,是使用者账户的名称。

CONSUMER_NAME

snow.application.consumer.organization

字符串

适用于原生应用程序,是使用者组织的名称。

CONSUMER_ORG_NAME

snow.application.package.name

字符串

适用于原生应用程序,是应用程序包的名称。

MY_INSTALLED_PACKAGE_NAME

snow.listing.global_name

字符串

适用于原生应用程序,是列表的内部/系统生成的标识符。

GZYZN3J3

snow.listing.name

字符串

适用于原生应用程序,是列表的名称。

MY_LISTING_NAME

Snowflake 版本的资源属性

属性

类型

描述

示例

service.version

字符串

可执行文件的版本(如果相关)。由它们存在的点联接的 snow.versionsnow.patch 组合。标准 OpenTelemetry 属性。

2.3.1

snow.patch

字符串

正在运行的可执行文件的补丁级别。

1

snow.version

字符串

正在运行的可执行文件的版本。

2.3

示例

{
  "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 列

适用于日志事件,发出事件的代码的命名空间,例如创建日志条目的类的名称。这不用于跟踪事件。

下表列出了此列中可能包含的属性。

范围值

属性

类型

描述

示例

name

字符串

发出事件的代码的命名空间。

com.sample.MyClass

示例

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

SCOPE_ATTRIBUTES 列

保留以供将来使用。

START_TIMESTAMP 列

span 以 UTC 时间戳开始的时间。

RECORD_TYPE 列值

START_TIMESTAMP 值描述

LOG

未使用。

SPAN

span 开始的时间。

SPAN_EVENT

未使用。

TIMESTAMP 列

发出事件的时间。该值的含义将因行所表示的记录类型而异,如下表所示:

RECORD_TYPE 列值

TIMESTAMP 值描述

LOG

发出事件的挂钟时间。

SPAN

执行结束的时间。

SPAN_EVENT

发出事件的挂钟时间。

TRACE 列

表示函数和过程执行的唯一标识符。

RECORD_TYPE 列值

TRACE 值描述

LOG

未使用。

SPAN

trace_idspan_id

SPAN_EVENT

trace_idspan_id

跟踪值

下表列出了此列中可能包含的属性。

属性

类型

描述

示例

span_id

十六进制字符串

与线程模型绑定的唯一标识符。过程,将为单线程,将具有单个 span_id 值。函数,可能由 Snowflake 对多个线程(例如多行)执行,可能具有多个 span_id 值。

b4c28078330873a2

trace_id

十六进制字符串

从查询发出的调用的唯一标识符。对存储过程的每次调用都有各自的 trace_id 值。在查询中,对查询发出的所有函数调用将共享相同的 trace_id 值。

此值对于每个查询均唯一,并且对于查询中的所有 span 均相同。您可以使用它对单个查询执行中的事件进行分组。

6992e9febf0b97f45b34a62e54936adb

示例

以下示例中的代码显示 span 或 span 事件将存在的属性。

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

VALUE 列

对于日志事件,这通常是日志消息。当记录的事件是针对 :doc:` 未处理的异常 </developer-guide/logging-tracing/unhandled-exception-messages>` 时,此列中的值将仅为 exception

请注意, VALUE 列的类型为 VARIANT(不是 STRING),因此它可以具有某些语言(例如 JavaScript)的非字符串值。

语言: 中文