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"})
Copy

A adição desses eventos resulta em duas linhas na tabela de eventos, cada uma com um valor diferente na coluna RECORD:

{
  "name": "SProcEmptyEvent"
}
Copy
{
  "name": "SProcEventWithAttributes"
}
Copy

A linha de evento SProcEventWithAttributes inclui os seguintes atributos na coluna RECORD_ATTRIBUTES da linha:

{
  "key1": "value1",
  "key2": "value2"
}
Copy

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>);
Copy

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}');
Copy

A configuração desses atributos resulta no seguinte na coluna RECORD_ATTRIBUTES da tabela de eventos:

{
  "attr1": "value1",
  "attr2": "value2"
}
Copy

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;
$$
;
Copy
call MYPROC();
Copy