Emissão de eventos de rastreamento em JavaScript

Você pode usar a classe snowflake na API JavaScript Snowflake para emitir eventos de rastreamento de um manipulador de função ou procedimento escrito em JavaScript. A API JavaScript já está disponível para seu código do manipulador JavaScript.

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 snowflake.addEvent, passando um nome para o evento. Opcionalmente, você também pode associar atributos - pares chave-valor - a um evento.

O método addEvent está disponível na seguinte forma:

snowflake.addEvent(name [, { key:value [, key:value] } ] );
Copy

O código do manipulador no exemplo a seguir adiciona dois eventos, name_a e name_b. Com name_b, o código também adiciona dois atributos, score e 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;
  $$
  ;
Copy

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

{
  "name": "name_a"
}
Copy
{
  "name": "name_b"
}
Copy

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

{
  "score": 89,
  "pass": true
}
Copy

Adição de atributos de span

Você pode definir atributos - pares chave-valor - associados aos spans chamando a função snowflake.setSpanAttribute.

A função setSpanAttribute está disponível na seguinte forma:

snowflake.setSpanAttribute(key, value);
Copy

Para obter mais detalhes sobre spans, consulte Como o Snowflake representa eventos de rastreamento.

O código no exemplo a seguir cria quatro atributos e define seus valores:

// Setting span attributes.
snowflake.setSpanAttribute("example.boolean", true);
snowflake.setSpanAttribute("example.long", 2L);
snowflake.setSpanAttribute("example.double", 2.5);
snowflake.setSpanAttribute("example.string", "testAttribute");
Copy

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

{
  "example.boolean": true,
  "example.long": 2,
  "example.double": 2.5,
  "example.string": "testAttribute"
}
Copy