Exporter vers BigQuery

Ce document décrit certains attributs de l'ensemble de données BigQuery créé lorsqu'un récepteur exporte des traces depuis Cloud Trace vers BigQuery.

Schéma

Le schéma de votre table qui stocke les données de trace est déterminé par la définition du Délai de l'API Trace V2.

Trace effectue le suivi de vos colonnes de table et corrige la table lorsqu'un nouveau délai contient des champs qui ne peuvent pas être stockés dans la table existante. Une opération de correctif est requise lorsqu'un délai entrant contient des entrées qui n'ont pas encore été vues. Par exemple, si un délai d'arrivée contient un nouvel Attribut, la table est corrigée.

Conservation des données

Vous configurez les règles de conservation des données de vos tables BigQuery. Pour en savoir plus sur la gestion des tables et des données de table, consultez la page Utiliser des tables.

Type de table

Si vous configurez un récepteur pour exporter des traces vers BigQuery, Trace configure une table partitionnée par date d'ingestion. Pour en savoir plus sur les tables partitionnées, y compris sur la création, la gestion, l'interrogation et la suppression de ces tables, consultez la section Utiliser des tables partitionnées.

Exemples de requêtes

Dans les requêtes suivantes, DATASET est le nom de l'ensemble de données BigQuery et MY_TABLE le nom d'une table de cet ensemble de données.

  • Pour afficher toutes les colonnes de la table pour la date du 20 novembre 2019 tout en limitant le résultat à 10 lignes, exécutez la requête :

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
    
  • Pour afficher toutes les partitions disponibles dans la table, exécutez la requête :

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

Requête HipsterShop

HipsterShop est une application de démonstration disponible sur GitHub.

Voici un exemple de requête illustrant comment utiliser les requêtes BigQuery pour collecter des informations qui ne sont pas immédiatement disponibles à l'aide de l'interface Trace.

La requête interne recherche tous les segments correspondant à l'expression régulière spécifiée qui ont été reçues le 2 décembre 2019. La requête externe sélectionne les éléments suivants :

  • nom
  • nombre de délais qui correspondent
  • nombre d'ID de trace distincts
  • 50e, 90e et 99e quantiles
  • Chemin HTTP
  • Message d'erreur

et affiche les résultats triés en fonction du nombre de traces :

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
 

Pour une installation particulière de cette application, le résultat de la requête est le suivant :

Affichez la réponse à la requête précédente.

Afficher les données de trace

Pour afficher vos données de trace à l'aide de l'interface BigQuery, sélectionnez la table contenant vos traces exportées.