Exporte para o BigQuery

Este documento descreve alguns atributos do conjunto de dados do BigQuery que é criado quando um destino exporta rastreios do Cloud Trace para o BigQuery.

Esquema

O esquema da sua tabela que armazena dados de rastreio é determinado pela definição da API Trace V2 de Span.

O rastreio monitoriza as colunas da tabela e corrige-a quando um novo intervalo contém campos que não podem ser armazenados na tabela existente. É necessária uma operação de patch quando um intervalo de chegada contém entradas não vistas anteriormente. Por exemplo, se um intervalo de chegada contiver um novo atributo, a tabela é corrigida.

Retenção de dados

Configura as políticas de retenção de dados das suas tabelas do BigQuery. Para obter informações sobre a gestão de tabelas e dados de tabelas, consulte o artigo Trabalhar com tabelas.

Tipo de tabela

Se configurar um destino para exportar rastreios para o BigQuery, o Trace configura uma tabela particionada por tempo de ingestão. Para obter informações detalhadas sobre tabelas particionadas, incluindo como criar, gerir, consultar e eliminar estas tabelas, consulte o artigo Trabalhar com tabelas particionadas.

Consultas de exemplo

Nas consultas seguintes, DATASET é o nome do conjunto de dados do BigQuery e MY_TABLE é o nome de uma tabela nesse conjunto de dados.

  • Para apresentar todas as colunas na tabela para a data de 20 de novembro de 2019, ao mesmo tempo que limita o resultado a 10 linhas, execute a seguinte consulta:

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
  • Para apresentar todas as partições disponíveis na tabela, execute a consulta:

    SELECT
      _PARTITIONTIME as pt
    FROM
      `DATASET.MY_TABLE`
    GROUP BY 1

Consulta HipsterShop

O HipsterShop é uma aplicação de demonstração disponível no GitHub.

Segue-se uma consulta de exemplo que ilustra como pode usar as consultas do BigQuery para recolher informações que não estão facilmente disponíveis através da interface de rastreio.

A consulta interna encontra todos os intervalos que correspondem à expressão regular especificada que foram recebidos a 2 de dezembro de 2019. A consulta externa seleciona para apresentação o seguinte:

  • nome
  • número de intervalos que correspondem
  • número de IDs de rastreio distintos
  • Quantis 50, 90 e 99
  • Caminho HTTP
  • Mensagem de erro

e apresenta os resultados ordenados pelas contagens de rastreios:

SELECT t0.span.displayName.value, count(t0.span.spanId) as spanCount, count(distinct traceId) as traceCount,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(50)] as p50,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(95)] as p95,
APPROX_QUANTILES(milliseconds, 100)[OFFSET(99)] as p99,
t0.span.attributes.attributeMap._http_path,
t0.span.attributes.attributeMap._error_message
FROM (
SELECT *,
REGEXP_EXTRACT(span.name, r"./traces/([a-f0-9]+).") as traceId,
TIMESTAMP_DIFF(span.endTime,span.startTime, MILLISECOND) as milliseconds
FROM `hipstershop-demo.Hipstershop_trace_export.cloud_trace`
WHERE DATE(_PARTITIONTIME) = "2019-12-02") AS t0
WHERE t0.span.parentSpanId is NULL
GROUP by t0.span.displayName.value, t0.span.attributes.attributeMap._http_path,t0.span.attributes.attributeMap._error_message
ORDER BY traceCount DESC
LIMIT 1000
 

Para uma instalação específica desta aplicação, o resultado da consulta é o seguinte:

Apresentar a resposta à consulta anterior.

Veja dados de rastreio

Para ver os dados de rastreio através da interface do BigQuery, selecione a tabela com os rastreios exportados.