Nach BigQuery exportieren

Auf dieser Seite werden Details zum Exportieren von Traces aus Cloud Trace nach BigQuery beschrieben.

Schema

Das Schema für Ihre Tabelle, in der Trace-Daten gespeichert sind, hängt von der Definition der Trace V2 API von Span ab.

Trace verfolgt Ihre Tabellenspalten und patcht die Tabelle, wenn ein neuer Span Felder enthält, die nicht in der vorhandenen Tabelle gespeichert werden können. Ein Patchvorgang ist erforderlich, wenn ein eingehender Span Einträge enthält, die zuvor nicht gesehen wurden. Wenn ein eingehender Span beispielsweise ein neues Attribut enthält, wird die Tabelle gepatcht.

Datenaufbewahrung

Sie konfigurieren die Datenaufbewahrungsrichtlinien für Ihre BigQuery-Tabellen. Informationen zum Verwalten von Tabellen und Tabellendaten finden Sie unter Mit Tabellen arbeiten.

Tabellentyp

Wenn Sie eine Senke zum Exportieren von Traces nach BigQuery konfigurieren, konfiguriert Trace eine nach Aufnahmezeit partitionierte Tabelle. Ausführliche Informationen zu partitionierten Tabellen, einschließlich zum Erstellen, Verwalten, Abfragen und Löschen dieser Tabellen, finden Sie unter Mit partitionierten Tabellen arbeiten.

Beispielabfragen

In den folgenden Abfragen ist [DATASET] der Name des BigQuery-Datasets und [MY_TABLE] der Name einer Tabelle in diesem Dataset.

  • Führen Sie die Abfrage aus, um alle Spalten in der Tabelle für den 20. November 2019 anzuzeigen und das Ergebnis auf zehn Zeilen zu begrenzen:

    SELECT
      *
    FROM
      `[DATASET].[MY_TABLE]`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
    
  • Führen Sie die folgende Abfrage aus, um alle in der Tabelle verfügbaren Partitionen anzuzeigen:

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

HipsterShop-Abfrage

HipsterShop ist eine Demoanwendung, die auf GitHub verfügbar ist.

Die folgende Beispielabfrage veranschaulicht, wie Sie BigQuery-Abfragen verwenden können, um Informationen zu erfassen, die mit der Trace-Oberfläche nicht sofort verfügbar sind.

Die interne Abfrage sucht alle Spans, die dem angegebenen regulären Ausdruck entsprechen, der am 2. Dezember 2019 empfangen wurde. Mit der äußeren Abfrage wird Folgendes angezeigt:

  • name
  • Anzahl der übereinstimmenden Spans
  • Anzahl der eindeutigen Trace-IDs
  • 50., 90. und 99. Quantile
  • HTTP-Pfad
  • Fehlermeldung

Die Ergebnisse werden nach der Trace-Anzahl sortiert:

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
 

Für eine bestimmte Installation dieser Anwendung sieht das Abfrageergebnis so aus:

Zeigt die Antwort auf die vorherige Abfrage an.

Trace-Daten anzeigen

Wählen Sie eine Tabelle mit den exportierten Traces aus, um die Trace-Daten in der BigQuery-Web-UI anzusehen.