本文說明接收器將 Cloud Trace 中的追蹤記錄匯出至 BigQuery 時,所建立 BigQuery 資料集的部分屬性。
結構定義
儲存追蹤資料的資料表結構定義,取決於 Span 的 Trace V2 API 定義。
Trace 會追蹤資料表欄,並在新的範圍包含無法儲存在現有資料表的欄位時修補資料表。如果抵達的範圍包含先前未見的項目,則必須執行修補作業。舉例來說,如果傳入的範圍包含新的 Attribute,系統就會修補表格。
資料保留
設定 BigQuery 資料表的資料保留政策。如要瞭解如何管理資料表和資料表資料,請參閱使用資料表。
資料表類型
如果您將接收器設定為將追蹤記錄匯出至 BigQuery,Trace 會設定擷取時間分區資料表。如要進一步瞭解分區資料表,包括如何建立、管理、查詢及刪除這類資料表,請參閱使用分區資料表。
查詢範例
在下列查詢中,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 上的GitHub示範應用程式。
以下是查詢範例,說明如何使用 BigQuery 查詢收集無法透過 Trace 介面輕鬆取得的資訊。
內部查詢會找出所有符合指定規則運算式的範圍,這些範圍是在 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 介面查看追蹤資料,請選取具有匯出追蹤記錄的資料表。