匯出至 BigQuery

本文說明匯出端將追蹤記錄從 Cloud Trace 匯出至 BigQuery 時,所建立的 BigQuery 資料集的部分屬性。

結構定義

儲存追蹤記錄資料的資料表結構定義,是由 Trace V2 API 的 Span 定義決定。

Trace 會追蹤資料表的資料欄,並在新區間包含無法儲存在現有資料表中的欄位時修補資料表。如果傳入的跨度包含先前未見的項目,就需要執行修補作業。舉例來說,如果傳入的區間包含新的屬性,則會修補該資料表。

資料保留

您可以設定 BigQuery 資料表的資料保留政策。如要瞭解如何管理資料表和資料表資料,請參閱「使用資料表」一文。

資料表類型

如果您設定接收器將追蹤記錄匯出至 BigQuery,追蹤記錄會設定擷取時間分區資料表。如需分區資料表的詳細資訊,包括如何建立、管理、查詢及刪除這些資料表,請參閱「使用分區資料表」一文。

查詢範例

在以下查詢中,DATASET 是 BigQuery 資料集的名稱,MY_TABLE 則是該資料集中的資料表名稱。

  • 如要顯示資料表中 2019 年 11 月 20 日的所有資料欄,並將結果限制為 10 列,請執行以下查詢:

    SELECT
      *
    FROM
      `DATASET.MY_TABLE`
    WHERE
      DATE(_PARTITIONTIME) = "2019-11-20" LIMIT 10
  • 如要顯示表格中可用的所有區隔,請執行以下查詢:

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

HipsterShop 查詢

HipsterShop 是 GitHub 上的示範應用程式。

以下是範例查詢,說明如何使用 BigQuery 查詢來收集無法透過追蹤介面輕鬆取得的資訊。

內部查詢會找出符合 2019 年 12 月 2 日收到的指定規則運算式的所有區間。外層查詢會選取下列項目供顯示:

  • 名稱
  • 相符時距數
  • 不重複的追蹤 ID 數量
  • 第 50、90 和 99 個分位數
  • HTTP 路徑
  • 錯誤訊息

並顯示依追蹤記錄計數排序的結果:

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
 

針對這項應用程式的特定安裝作業,查詢結果如下所示:

顯示先前查詢的回應。

查看追蹤記錄資料

如要使用 BigQuery 介面查看追蹤記錄資料,請選取含有匯出追蹤記錄的資料表。