本文說明匯出端將追蹤記錄從 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 介面查看追蹤記錄資料,請選取含有匯出追蹤記錄的資料表。