本文簡要說明「內容」(指狀態) 和「內容傳播」(指將狀態資訊傳遞至子項作業)。對於分散式追蹤,追蹤 ID 和正在處理的範圍 ID 必須傳遞至子項作業。
子項作業會建立 span 並設定下列欄位:
- 時距 ID:子項作業的專屬 ID。如果同一項作業執行多次,該作業就會有多個範圍,每個範圍都有專屬 ID。
- 追蹤 ID:這個特定整體作業所屬端對端作業的專屬 ID。這個欄位的值由父項提供。
- 父項時距 ID:父項時距的專屬 ID。
這個欄位的值由父項提供。
如果是根範圍,這個 ID 為
null。
追蹤 ID、範圍 ID 和父項範圍 ID 欄位的值,可讓分散式追蹤系統正確地將範圍連結在一起,形成追蹤記錄。舉例來說,Cloud Trace 會將 span 儲存在存放區中,並使用這些 ID 欄位來識別哪些 span 組成追蹤記錄。
脈絡可能包含其他有助於分散式追蹤的狀態資訊。舉例來說,全球資訊網協會 (W3C) 標準包含父項範圍是否已取樣的相關資訊。
情境傳播通訊協定
以下各節說明特定要求通訊協定如何傳播內容。
HTTP 要求
對於 HTTP 要求,內容傳播通常是透過 HTTP 標頭 (例如 traceparent 和 tracestate 標頭) 完成,這些標頭已由 W3C 標準化。支援追蹤內容傳播的Google Cloud 服務通常同時支援 traceparent 和舊版 X-Cloud-Trace-Context 標頭。
建議您盡可能在應用程式中使用 traceparent 標頭。您的應用程式可能需要使用舊版 X-Cloud-Trace-Context 標頭,或支援以不同格式接收追蹤脈絡。
如果您的應用程式只支援 X-Cloud-Trace-Context 標頭,建議您更新應用程式,支援並優先使用 traceparent 標頭。您的應用程式可以繼續使用 X-Cloud-Trace-Context 標頭做為備用解決方案。
下表摘要列出這兩個標頭之間的一些重大差異:
| 屬性 | traceparent標頭 |
X-Cloud-Trace-Context標題 |
|---|---|---|
| 分隔符 | 連字號 (-) |
正斜線 (/) 和半形分號 (;) |
| 時距 ID 表示法 |
十六進位數 | 小數 |
舊版 X-Cloud-Trace-Context 標頭
Google Cloud 使用的 X-Cloud-Trace-Context 標頭早於 W3C 規格。為確保回溯相容性,部分 Google Cloud 服務會繼續接受、產生及傳播 X-Cloud-Trace-Context 標頭。不過,這些系統可能也支援 traceparent 標頭。
X-Cloud-Trace-Context 標頭的格式如下:
X-Cloud-Trace-Context: TRACE_ID/SPAN_ID;o=OPTIONS
標頭欄位的定義如下:
TRACE_ID是一個表示 128 位元數的 32 字元十六進位值。SPAN_ID是無正負號時距 ID 的 64 位元十進位表示法。OPTIONS支援0(未取樣的父項) 和1(已取樣的父項)。
gRPC 要求
如果是 gRPC 要求,則會使用 gRPC 中繼資料 (實作於 HTTP 標頭之上) 傳播內容。gRPC 應用程式可能會使用 traceparent 標頭或名為 grpc-trace-bin 的中繼資料內容鍵。
對於您擁有的元件,建議使用 traceparent 標頭。
Google Cloud 服務的脈絡傳播
Google Cloud 服務可能會在要求處理程序中擔任發起者或中介角色。舉例來說,下列服務會參與處理要求:
- Apigee
- App Engine
- Cloud Endpoints
- Cloud Load Balancing
- Cloud Run
- Cloud Scheduler
- Cloud Tasks
- Pub/Sub
追蹤內容的啟動和傳播支援功能取決於特定 Google Cloud 服務。如要要求服務新增內容傳播支援功能,請使用 Google Issue Tracker。 Google Cloud
在應用程式中傳播脈絡
部分檢測程式庫 (例如 OpenTelemetry) 可以傳播包含追蹤所需資料的 context 物件。如需支援追蹤的 OpenTelemetry 程式庫清單,請參閱語言 API 和 SDK。
如果您使用開放原始碼程式庫,請判斷是否提供脈絡傳播功能,以及是否需要設定。舉例來說,如果您使用 OpenTelemetry 檢測 Go 應用程式,應用程式應呼叫 SetTextMapPropagator,將內容設定為使用 W3C traceparent 格式。如需範例,請參閱「Go 檢測點範例」。
如果沒有合適的檢測程式庫,您必須確保應用程式會將追蹤內容傳播至子項作業。
後續步驟
瞭解追蹤記錄取樣。
OpenTelemetry 資源: