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:
Ver datos de traza
Para ver los datos de las trazas mediante la interfaz de BigQuery, selecciona la tabla con las trazas exportadas.