Emissão de eventos de rastreamento no Script Snowflake¶
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 Configuração do nível de rastreamento.
Nota
Antes de começar a emitir eventos de rastreamento, você deve configurar uma tabela de eventos. Para obter mais informações, consulte Configuração de uma tabela de eventos.
Você pode acessar os dados de eventos de rastreamento armazenados executando um comando SELECT na tabela de eventos. Para obter mais informações, consulte Acesso a dados de rastreamento.
Para obter informações gerais sobre a configuração de registro e recuperação de mensagens no Snowflake, consulte Eventos de rastreamento para funções e procedimentos.
Nota
Para as diretrizes a serem consideradas 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, attr1
e attr2
.
create procedure MYPROC()
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("{'attr1':'value1', 'attr2':true}");
return 3.14;
end;
$$
;
call MYPROC();