使用 JavaScript 发出跟踪事件¶
您可以使用 Snowflake JavaScript API 中的 snowflake
类,通过用 JavaScript 编写的函数或过程处理程序发出跟踪事件。JavaScript API 已可用于 JavaScript 处理程序代码。
在发出跟踪事件之前,请确保已设置跟踪级别,以便将所需数据存储在事件表中。有关更多信息,请参阅 设置跟踪级别。
备注
在开始发出跟踪事件之前,必须设置事件表。有关更多信息,请参阅 设置事件表。
您可以通过对事件表执行 SELECT 命令,来访问存储的跟踪事件数据。有关更多信息,请参阅 访问跟踪数据。
有关在 Snowflake 中设置日志记录和检索消息的一般信息,请参阅 针对函数和过程的跟踪事件。
备注
有关添加跟踪事件时要牢记的准则,请参阅 添加跟踪事件的一般准则。
添加跟踪事件¶
可通过调用 snowflake.addEvent
函数并传递跟踪事件的名称来添加跟踪事件。您还可以选择将属性(键值对)与事件相关联。
addEvent
方法以以下形式提供:
snowflake.addEvent(name [, { key:value [, key:value] } ] );
以下示例中的处理程序代码添加了两个事件:name_a
和 name_b
。通过 name_b
,该代码还添加了两个属性:score
和 pass
。
create procedure PI_JS()
returns double
language javascript
as
$$
snowflake.addEvent('name_a'); // add an event without attributes
snowflake.addEvent('name_b', {'score': 89, 'pass': true});
return 3.14;
$$
;
设置这些属性会在事件表中产生两行,每行在列中 RECORD 具有不同的值:
{
"name": "name_a"
}
{
"name": "name_b"
}
name_b
事件行包含行的 RECORD_ATTRIBUTES 列中的以下属性:
{
"score": 89,
"pass": true
}
添加 Span 属性¶
您可以通过调用 snowflake.setSpanAttribute
函数来设置与 Span 关联的属性(键值对)。
setSpanAttribute
函数提供以下形式:
snowflake.setSpanAttribute(key, value);
有关 Span 的详细信息,请参阅 Snowflake 如何表示跟踪事件。
以下示例中的代码创建四个属性并设置其值:
// Setting span attributes.
snowflake.setSpanAttribute("example.boolean", true);
snowflake.setSpanAttribute("example.long", 2L);
snowflake.setSpanAttribute("example.double", 2.5);
snowflake.setSpanAttribute("example.string", "testAttribute");
设置这些属性会导致事件表的 RECORD_ATTRIBUTES 列中出现以下内容:
{
"example.boolean": true,
"example.long": 2,
"example.double": 2.5,
"example.string": "testAttribute"
}