本文說明追蹤記錄範圍的儲存格式。資料格式通常與OpenTelemetry OTLP 通訊協定定義的 proto 檔案一致。不過,欄位可能會先從 OpenTelemetry 專屬資料類型轉換為 JSON 資料類型,再進行儲存。
Telemetry API 使用 OpenTelemetry OTLP 通訊協定。這項通訊協定依賴 trace_service.proto 和 trace.proto 檔案。如要瞭解欄位限制,請參閱「Telemetry API 限制」。
Cloud Trace API 不會使用 OpenTelemetry OTLP 通訊協定,而是定義專屬的資料格式。透過這個 API 傳送至 Google Cloud 專案的追蹤資料,會轉換為本文所述的格式。不過,Cloud Trace API 仍有相關限制。
範圍儲存格式
| 欄位 | 說明 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trace_id |
追蹤記錄的全域專屬 ID。這個 ID 是以 16 位元組十六進位字串格式表示的 128 位元數值。例如:
零值無效。 視覺化和分析工具會使用 |
||||||||||||||||
span_id |
這是必要旗標,
span 的 ID。
在追蹤記錄中不得重複。
這個 ID 是 64 位元的數值,格式為 8 位元組的十六進位字串。例如: 零值無效。 |
||||||||||||||||
trace_state |
這個欄位對應至 OpenTelemetry 程式庫會在產生範圍時,自動記錄 |
||||||||||||||||
parent_span_id |
選用。識別叫用這個範圍的作業。 「根」時距的父項時距 ID 設為空值。 跨度之間的父項子項關係,會用於建構樹狀結構。 |
||||||||||||||||
name |
這是必要旗標,執行的作業名稱。 這個名稱可以是方法名稱,也可以是其他每個呼叫的網站名稱。 對於相同的可執行檔和端點,使用一致的名稱可讓您更輕鬆地關聯跨追蹤範圍。如需最佳做法,請參閱「如何命名範圍」。 系統會清除跨度名稱,並顯示在 Google Cloud 控制台中。 |
||||||||||||||||
kind |
指定系統中發生作業的位置。 這個值對應至 OpenTelemetry:Span Kind 列舉:
|
||||||||||||||||
start_time |
這是必要旗標,時間範圍的開始時間,精確至奈秒。 |
||||||||||||||||
start_time_unix_nano |
開始時間 (以奈秒為單位),自 UNIX Epoch 紀元時間開始算起。 |
||||||||||||||||
end_time |
這是必要旗標,時間範圍的結束時間,精確至奈秒。 |
||||||||||||||||
end_time_unix_nano |
結束時間 (以奈秒為單位),根據 UNIX 紀元計算。 |
||||||||||||||||
receive_time |
這是必要旗標,接收時間範圍,精確度為奈秒。 |
||||||||||||||||
receive_time_unix_nano |
結束時間 (以奈秒為單位),自 UNIX 紀元開始算起。 |
||||||||||||||||
duration_unix_nano |
時間長度 (以奈秒為單位)。 |
||||||||||||||||
attributes |
每個屬性都是鍵/值組合。 可用的屬性取決於追蹤資料。屬性結構遵循 OpenTelemetry 標準。詳情請參閱「OpenTelemetry:屬性」。 OpenTelemetry 會指定屬性的語意慣例。如要瞭解這些慣例,請參閱「追蹤語意慣例」。 屬性範例如下: "yourcompany.your.own.key": "your own value" "network.protocol.name": "http" "network.protocol.version": "1.1" "http.response.status_code": "200" "network.peer.address": "REDACTED" |
||||||||||||||||
dropped_attributes_count |
遭捨棄的屬性數量。 屬性鍵過長或屬性過多,都可能導致屬性遭到捨棄。如果這個值為零,表示沒有任何屬性遭到捨棄。 這個值可能由用戶端檢測或應用程式設定。伺服器可以遞增這個值。 |
||||||||||||||||
events |
時間點事件。每個事件都包含下列欄位。
|
||||||||||||||||
dropped_events_count |
遭捨棄的事件數。如果事件過多,系統可能會捨棄部分事件。如果這個值為零,表示沒有任何事件遭到捨棄。 |
||||||||||||||||
links |
與範圍相關聯的連結。連結是從這個範圍參照到相同或不同追蹤記錄中的另一個範圍。 連結提供一種機制,可將一個追蹤記錄中的範圍與另一個追蹤記錄中的範圍建立關聯。舉例來說,假設某項作業導致發生非同步作業。在此情境中,有兩個追蹤記錄,一個用於原始作業,另一個用於非同步作業。您可以使用連結來關聯這些追蹤記錄中的範圍。 每個連結都包含下列欄位。
|
||||||||||||||||
dropped_links_count |
遭捨棄的連結數量。連結過多時,系統可能會捨棄部分連結。如果這個值為零,表示沒有捨棄任何連結。 |
||||||||||||||||
status |
這個欄位會記錄時間範圍的完成狀態。
格式化字串的 |
||||||||||||||||
resource |
這個欄位會指出遙測資料的收集來源,或是遙測資料所指的基礎架構或主機系統。舉例來說,假設應用程式在 Google Kubernetes Engine 上執行,這項資源的屬性可能包括程序名稱和命名空間。 這個欄位包含下列子欄位:
詳情請參閱 OpenTelemetry:資源。 |
||||||||||||||||
instrumentation_scope |
這個欄位會識別收集遙測資料的指定 舉例來說,假設應用程式「結帳服務」已部署至 Cloud Run,這表示 用戶端範圍 (例如「WritePaymentInfoToStripe」) 可能是「payment-processor-library」回報的範圍,該範圍位於名為「checkout-service」的 Cloud Run 服務中。 這個欄位包含下列子欄位:
詳情請參閱「OpenTelemetry:檢測範圍」。 |
||||||||||||||||
resource_schema_link |
這些欄位必須是採字串格式的網址。 這些欄位包含可傳回資源結構定義檔案的網址。 結構定義檔案和資料的格式由 OpenTelemetry 定義。詳情請參閱「OpenTelemetry:結構定義」。 使用 Telemetry API 時,才能設定這些欄位。 該 API 不會驗證資料是否符合宣告的結構定義。 |
||||||||||||||||
scope_schema_link |
這些欄位必須是採字串格式的網址。 這些欄位包含的網址會傳回範圍的結構定義檔案。 結構定義檔案和資料的格式由 OpenTelemetry 定義。詳情請參閱「OpenTelemetry:結構定義」。 使用 Telemetry API 時,才能設定這些欄位。 該 API 不會驗證資料是否符合宣告的結構定義。 |
||||||||||||||||
apphub |
如果追蹤範圍是由 App Hub 應用程式產生,且這些應用程式在支援的基礎架構上執行,或是已完成插碼,您就能使用應用程式專屬標籤。如要進一步瞭解 Application Monitoring 和這些標籤的適用時間,請參閱應用程式監控總覽。 這個欄位包含
|