Emissão de eventos de rastreamento no Snowflake Scripting¶
Você pode usar as funções SYSTEM
do Snowflake para emitir eventos de rastreamento de um manipulador de função ou procedimento escrito no Script Snowflake.
Antes de emitir eventos de rastreamento, certifique-se de que o nível de rastreamento esteja definido para que os dados desejados sejam armazenados na tabela de eventos. Para obter mais informações, consulte Definição de níveis para registro, métricas e rastreamento.
Nota
Antes de começar a emitir eventos de rastreamento, você deve configurar uma tabela de eventos. Para obter mais informações, consulte Visão geral da tabela de evento.
Você pode acessar os dados de eventos de rastreamento armazenados executando um comando SELECT na tabela de eventos. Para obter mais informações, consulte Visualização dos dados de rastreamento.
Para obter informações gerais sobre como configurar o registro e recuperar mensagens no Snowflake, consulte Eventos de rastreamento para funções e procedimentos.
Nota
Para obter diretrizes a serem lembradas ao adicionar eventos de rastreamento, consulte Diretrizes gerais para adicionar eventos de rastreamento.
Adição de eventos de rastreamento¶
Você pode adicionar eventos de rastreamento chamando a função SYSTEM$ADD_EVENT (para Script Snowflake), passando um nome para o evento. Opcionalmente, você também pode associar atributos - pares chave-valor - a um evento.
O código no exemplo a seguir adiciona dois eventos, SProcEmptyEvent
e SProcEventWithAttributes
. Com SProcEventWithAttributes
, o código também adiciona dois atributos: key1
e key2
.
SYSTEM$ADD_EVENT('SProcEmptyEvent');
SYSTEM$ADD_EVENT('SProcEventWithAttributes', {'key1': 'value1', 'key2': 'value2'});
A adição desses eventos resulta em duas linhas na tabela de eventos, cada uma com um valor diferente na coluna RECORD:
{
"name": "SProcEmptyEvent"
}
{
"name": "SProcEventWithAttributes"
}
A linha de evento SProcEventWithAttributes
inclui os seguintes atributos na coluna RECORD_ATTRIBUTES da linha:
{
"key1": "value1",
"key2": "value2"
}
Adição de atributos de span¶
Você pode definir atributos - pares chave-valor - associados aos spans chamando a função SYSTEM$SET_SPAN_ATTRIBUTES.
Para obter mais detalhes sobre spans, consulte Como o Snowflake representa eventos de rastreamento.
A função SYSTEM$SET_SPAN_ATTRIBUTES (para Script Snowflake) está disponível na seguinte forma:
SYSTEM$SET_SPAN_ATTRIBUTES(<object>);
onde
object
é um objeto do Script Snowflake com pares chave-valor que especificam os atributos desse evento de rastreamento.
O código no exemplo a seguir cria quatro atributos e define seus valores:
SYSTEM$SET_SPAN_ATTRIBUTES('{'attr1':'value1', 'attr2':true}');
A configuração desses atributos resulta no seguinte na coluna RECORD_ATTRIBUTES da tabela de eventos:
{
"attr1": "value1",
"attr2": "value2"
}
Exemplos¶
O código no exemplo a seguir usa a função SYSTEM$ADD_EVENT para adicionar um evento chamado name_a
e um evento chamado name_b
. Com name_b
, ele associa dois atributos, score
e pass
. O código também usa SYSTEM$SET_SPAN_ATTRIBUTES para definir dois atributos para o span, key1
e key2
.
CREATE OR REPLACE PROCEDURE pi_proc()
RETURNS DOUBLE
LANGUAGE SQL
AS $$
BEGIN
-- Add an event without attributes
SYSTEM$ADD_EVENT('name_a');
-- Add an event with attributes
LET attr := {'score': 89, 'pass': TRUE};
SYSTEM$ADD_EVENT('name_b', attr);
-- Set attributes for the span
SYSTEM$SET_SPAN_ATTRIBUTES({'key1': 'value1', 'key2': TRUE});
RETURN 3.14;
END;
$$;
CALL pi_proc();