Como exportar para o BigQuery

Nesta página, descrevemos detalhes específicos sobre a exportação de traces do Cloud Trace para o BigQuery.

Schema

O esquema da tabela que armazena dados de trace é determinado pela definição da API Trace V2 de período.

O Trace rastreia as colunas da tabela e faz o patch da tabela quando um novo período contém campos que não podem ser armazenados na tabela existente. Uma operação de patch é necessária quando um período de chegada contém entradas não vistas anteriormente. Por exemplo, se um período de chegada tiver um novo atributo, a tabela será corrigida.

Retenção de dados

Você configura as políticas de retenção de dados das tabelas do BigQuery. Para informações sobre como gerenciar tabelas e dados de tabelas, consulte Como trabalhar com tabelas.

Tipo de tabela

Se você configurar um coletor para exportar traces para o BigQuery, o Trace configurará uma tabela particionada por tempo de processamento. Para informações detalhadas sobre tabelas particionadas, incluindo como criar, gerenciar, consultar e excluir essas tabelas, consulte Como trabalhar com tabelas particionadas.

Consultas de amostra

Nas consultas a seguir, [DATASET] é o nome do conjunto de dados do BigQuery e [MY_TABLE] é o nome de uma tabela nesse conjunto de dados.

  • Para exibir todas as colunas na tabela para a data de 20 de novembro de 2019 e limitar o resultado a 10 linhas, execute a consulta:

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

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

Consulta do HipsterShop

O HipsterShop é um aplicativo de demonstração disponível no GitHub.

Veja a seguir um exemplo de consulta que ilustra como você pode usar consultas do BigQuery para coletar informações que não estão prontamente disponíveis usando a interface do Trace.

A consulta interna encontra todos os períodos que correspondem à expressão regular especificada que foi recebida em 2 de dezembro de 2019. A consulta externa seleciona para exibir o seguinte:

  • name
  • número de períodos correspondentes
  • número de códigos de trace distintos
  • 50º, 90º e 99º quantis
  • Caminho HTTP
  • Mensagem de erro

e exibe os resultados classificados pelas contagens de trace:

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 desse aplicativo, o resultado da consulta é o seguinte:

Exibe a resposta para a consulta anterior.

Como visualizar dados de trace

Para visualizar os dados de trace usando a IU da Web do BigQuery, selecione uma tabela com os traces exportados.