日志记录、跟踪和指标¶
您可以在代码执行时从代码中获取日志消息和跟踪事件,从而记录 Snowflake 函数和过程处理程序代码(包括 使用 Snowpark APIs 编写的代码)的活动。收集数据后,可以使用 SQL 查询数据以分析结果。
日志记录、跟踪和指标是 Snowflake 提供的可观察性功能之一,可让您更轻松地调试和优化应用程序。Snowflake 可根据 OpenTelemetry (https://opentelemetry.io/) 标准捕获结构中的可观察性数据。
具体而言,您可以记录和分析以下内容:
日志消息 – 独立的详细消息,包含有关特定代码片段状态的信息。
指标数据 – Snowflake 生成的 CPU 和内存指标。
跟踪事件 – 结构化数据,可用于获取跨代码多个部分的信息并对其进行分组。
开始使用¶
使用以下高级步骤开始捕获并使用日志和跟踪数据。
设置遥测级别¶
您可以通过设置每种数据类型的级别来管理存储在事件表中的遥测数据级别,如日志、跟踪和指标数据。使用级别设置确保捕获到所需的数据数量和种类。
有关更多信息,请参阅 为日志、指标和跟踪设置级别。
比较日志消息和跟踪事件¶
下表比较了日志消息和跟踪事件的特征和优势。
特征 |
日志条目 |
跟踪事件 |
---|---|---|
预期用途 |
记录有关代码状态的详细信息,但信息为非结构化形式。使用此信息了解在函数或过程的特定调用期间发生的情况。 |
记录代码每次调用的简短摘要,但摘要为结构化形式。汇总此信息,以概要了解代码行为。 |
采用有效负载结构 |
无。日志条目就是字符串。 |
使用可附加到跟踪事件的属性实现结构化。属性是可通过 SQL 查询轻松查询的键值对。 |
支持分组 |
否。每个日志条目都是一个独立事件。 |
是。跟踪事件组织为 Span。span 可以有自己的属性。 |
数量限制 |
无限制。代码发出的所有日志条目都会引入到事件表中。 |
每个 Span 的跟踪事件数量上限为 128。Span 属性的数量也有限制。 |
对记录的数据执行查询的复杂度 |
相对较高。查询必须解析每个日志条目,以从中提取有意义的信息。 |
相对较低。查询可利用跟踪事件的结构化性质。 |