Exportar a BigQuery

En este documento se describen algunos atributos del conjunto de datos de BigQuery que se crea cuando un receptor exporta trazas de Cloud Trace a BigQuery.

Esquema

El esquema de la tabla que almacena los datos de la traza se determina mediante la definición de la API Trace V2 de Span.

Trace monitoriza las columnas de la tabla y aplica parches a la tabla cuando un nuevo intervalo contiene campos que no se pueden almacenar en la tabla. Se requiere una operación de parche cuando un intervalo que llega contiene entradas que no se han visto antes. Por ejemplo, si un intervalo de llegada contiene un nuevo atributo, la tabla se parchea.

Conservación de datos

Configuras las políticas de conservación de datos de tus tablas de BigQuery. Para obtener información sobre cómo gestionar tablas y datos de tablas, consulta el artículo Trabajar con tablas.

Tipo de tabla

Si configura un sumidero para exportar trazas a BigQuery, Trace configura una tabla con particiones por hora de ingestión. Para obtener información detallada sobre las tablas con particiones, incluido cómo crear, gestionar, consultar y eliminar estas tablas, consulta el artículo Trabajar con tablas con particiones.

Consultas de ejemplo

En las siguientes consultas, DATASET es el nombre del conjunto de datos de BigQuery y MY_TABLE es el nombre de una tabla de ese conjunto de datos.

  • Para mostrar todas las columnas de la tabla correspondientes al 20 de noviembre del 2019 y limitar el resultado a 10 filas, ejecuta la siguiente consulta:

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
  • Para mostrar todas las particiones disponibles en la tabla, ejecuta la siguiente consulta:

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

Consulta de HipsterShop

HipsterShop es una aplicación de demostración disponible en GitHub.

A continuación, se muestra una consulta de ejemplo que ilustra cómo puedes usar las consultas de BigQuery para obtener información que no está disponible fácilmente mediante la interfaz de Trace.

La consulta interna busca todos los intervalos que coincidan con la expresión regular especificada y que se hayan recibido el 2 de diciembre del 2019. La consulta externa selecciona para mostrar lo siguiente:

  • name
  • Número de intervalos que coinciden
  • Número de IDs de traza distintos
  • Cuantiles 50, 90 y 99
  • Ruta HTTP
  • Mensaje de error

y muestra los resultados ordenados por el número de trazas:

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
 

En una instalación concreta de esta aplicación, el resultado de la consulta es el siguiente:

Muestra la respuesta a la consulta anterior.

Ver datos de traza

Para ver los datos de las trazas mediante la interfaz de BigQuery, selecciona la tabla con las trazas exportadas.