Acesso a dados de rastreamento

Os dados de rastreamento são armazenados em uma tabela de eventos que você configurou para oferecer suporte ao rastreamento. Você pode acessar os dados executando o comando SELECT na tabela de eventos.

Nota

Antes de começar a emitir dados de rastreamento, você deve configurar uma tabela de eventos. Para obter mais informações, consulte Configuração de uma tabela de eventos.

Uma tabela de eventos tem um conjunto de colunas predefinidas que capturam informações sobre as mensagens registradas, inclusive:

  • O carimbo de data/hora do início de um intervalo.

  • O carimbo de data/hora em que o evento foi criado.

  • O tipo de dados registrado, como, por exemplo, se os dados são para um span ou evento de span.

  • O nome do span ou evento.

  • Atributos, se houver, associados ao span ou evento.

Para obter informações de referência sobre as colunas da tabela de eventos, consulte Colunas da tabela de eventos.

Exemplo de consulta de dados de rastreamento

As seções a seguir ilustram com dados de exemplo como você pode consultar a tabela de eventos para obter dados de rastreamento.

Dados coletados

A saída no exemplo a seguir mostra o conteúdo de um subconjunto selecionado de colunas de uma tabela de eventos depois que os dados de rastreamento foram capturados para três manipuladores separados escritos em Python.

Para obter informações de referência sobre as colunas da tabela de eventos que coletam dados de rastreamento, consulte Dados para eventos de rastreamento.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| TIMESTAMP          | START_TIMESTAMP    | RESOURCE_ATTRIBUTES   | RECORD_TYPE | RECORD                                                                                                        | RECORD_ATTRIBUTES                                                           |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | 2023-04-20 0:45:49 | **See excerpt below** | SPAN        | { "kind": "SPAN_KIND_INTERNAL", "name": "snow.auto_instrumented", "status": { "code": "STATUS_CODE_UNSET" } } |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 |                    |                       | SPAN_EVENT  | { "name": "test_udtf_init" }                                                                                  |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 |                    |                       | SPAN_EVENT  | { "name": "test_udtf_process" }                                                                               | { "input": "42" }                                                           |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 |                    |                       | SPAN_EVENT  | { "name": "test_udtf_end_partition" }                                                                         |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:00 | 2023-04-20 0:46:00 |                       | SPAN        | { "kind": "SPAN_KIND_INTERNAL", "name": "snow.auto_instrumented", "status": { "code": "STATUS_CODE_UNSET" } } | { "example.func.times_two": "begin", "example.func.times_two.response": 8 } |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:00 |                    |                       | SPAN_EVENT  | { "name": "event_without_attributes" }                                                                        |                                                                             |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:00 |                    |                       | SPAN_EVENT  | { "name": "event_with_attributes" }                                                                           | { "example.key1": "value1", "example.key2": "value2" }                      |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:08 | 2023-04-20 0:46:08 |                       | SPAN        | { "kind": "SPAN_KIND_INTERNAL", "name": "snow.auto_instrumented", "status": { "code": "STATUS_CODE_UNSET" } } | { "example.proc.do_tracing": "begin" }                                      |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:46:08 |                    |                       | SPAN_EVENT  | { "name": "event_with_attributes" }                                                                           | { "example.key1": "value1", "example.key2": "value2" }                      |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Trechos de RESOURCE_ATTRIBUTES

Os seguintes trechos JSON contêm dois dos atributos incluídos na coluna RESOURCE_ATTRIBUTES para cada um dos três manipuladores cujos dados estão incluídos na saída anterior. O código de consulta SELECT que segue esses trechos seleciona valores desses atributos.

A coluna RESOURCE_ATTRIBUTES contém dados sobre a origem do evento. Para informações de referência, consulte Coluna RESOURCE_ATTRIBUTES.

{
  ...
  "snow.executable.name": "DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER)",
  "snow.executable.type": "FUNCTION",
  ...
}

{
  ...
  "snow.executable.name": "TIMES_TWO(X NUMBER):NUMBER(38,0)",
  "snow.executable.type": "FUNCTION",
  ...
}

{
  ...
  "snow.executable.name": "DO_TRACING():VARIANT",
  "snow.executable.type": "PROCEDURE",
  ...
}
Copy

Consulta com instrução SELECT

Ao consultar dados, você pode selecionar valores de atributos em uma coluna usando a notação de colchetes, como no formulário a seguir:

COLUMN_NAME['attribute_name']
Copy

O código no exemplo abaixo consulta a tabela anterior com a intenção de isolar os dados relacionados à função DIGITS_OF_NUMBER.

SET EVENT_TABLE_NAME='my_db.public.my_events';

SELECT
  TIMESTAMP as time,
  RESOURCE_ATTRIBUTES['snow.executable.name'] as handler_name,
  RESOURCE_ATTRIBUTES['snow.executable.type'] as handler_type,
  RECORD['name'] as event_name,
  RECORD_ATTRIBUTES as attributes
FROM
  IDENTIFIER($event_table_name)
WHERE
  RECORD_TYPE = 'SPAN_EVENT'
  AND HANDLER_NAME LIKE 'DIGITS_OF_NUMBER%';
Copy

Resultados de consultas

A saída no exemplo a seguir ilustra o resultado da consulta.

-------------------------------------------------------------------------------------------------------------------------------------------
| TIME               | HANDLER_NAME                                          | HANDLER_TYPE | EVENT_NAME              | ATTRIBUTES        |
-------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER) | FUNCTION     | test_udtf_init          |                   |
-------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER) | FUNCTION     | test_udtf_process       | { "input": "42" } |
-------------------------------------------------------------------------------------------------------------------------------------------
| 2023-04-20 0:45:49 | DIGITS_OF_NUMBER(INPUT NUMBER):TABLE: (RESULT NUMBER) | FUNCTION     | test_udtf_end_partition |                   |
-------------------------------------------------------------------------------------------------------------------------------------------