本文將說明如何使用 OpenTelemetry 擷取自訂用戶端指標。您可以使用 Java 和 Go 用戶端程式庫,取得自訂用戶端指標。
自訂用戶端指標可協助您找出系統中延遲時間的來源。詳情請參閱「Spanner 要求中的延遲點」。
Spanner 用戶端程式庫也會使用 OpenTelemetry 可觀察性架構提供統計資料和追蹤記錄。詳情請參閱「使用 OpenTelemetry 設定追蹤記錄收集」。
OpenTelemetry 是開放原始碼觀測能力架構和工具包,可讓您建立及管理追蹤記錄、指標和記錄等遙測資料。
事前準備
您必須設定 OpenTelemetry SDK,並使用適當的選項匯出遙測資料。建議您使用 OpenTelemetry Protocol (OTLP) 匯出工具。
如要使用 OpenTelemetry 設定自訂用戶端指標,您需要設定 OpenTelemetry SDK 和 OTLP 匯出工具:
使用下列程式碼,將必要依附元件新增至應用程式:
Java
Go
使用 OTLP 匯出工具建立 OpenTelemetry 物件,然後使用
SpannerOptions
將其插入 Spanner:Java
Go
擷取 GFE 延遲時間
Google Front End (GFE) 延遲時間是指 Google 網路從用戶端接收遠端程序呼叫,到 GFE 收到回應的第一個位元組之間的時間長度 (以毫秒為單位)。
您可以使用下列程式碼擷取 GFE 延遲時間:
Java
Go
程式碼範例會在將指標名稱匯出至 Cloud Monitoring 時,在名稱後方加上字串 spanner/gfe_latency
。您可以使用附加的字串,在 Cloud Monitoring 中搜尋這個指標。
擷取 Cloud Spanner API 要求延遲時間
Cloud Spanner API 要求延遲時間是指 Cloud Spanner API 前端收到用戶端要求的第一個位元組,以及 Cloud Spanner API 前端傳送回應的最後一個位元組之間的時間 (以秒為單位)。
這個延遲指標可做為 Cloud Monitoring 指標的一部分。
擷取用戶端往返延遲時間
用戶端來回延遲時間是指,從用戶端傳送至資料庫的 Cloud Spanner API 要求 (透過 GFE 和 Cloud Spanner API 前端) 第一個位元組,到用戶端從資料庫收到的回應最後一個位元組之間的時間長度 (以毫秒為單位)。
使用 OpenTelemetry 時,系統不支援 Spanner 用戶端的來回延遲指標。您可以改為查看用戶端作業延遲指標。詳情請參閱「用戶端指標說明」。
您也可以使用 OpenCensus 和橋接器設定指標,並將資料遷移至 OpenTelemetry。
擷取查詢延遲時間
查詢延遲時間是指在 Spanner 資料庫中執行 SQL 查詢所需的時間長度 (以毫秒為單位)。
您可以使用下列程式碼擷取查詢延遲時間:
Java
Go
程式碼範例會在將指標名稱匯出至 Cloud Monitoring 時,在名稱後方加上字串 spanner/query_stats_elapsed
。您可以使用附加的字串,在 Cloud Monitoring 中搜尋這個指標。
在 Metrics Explorer 中查看指標
前往 Google Cloud 控制台的「Metrics Explorer」頁面。
選取專案。
按一下「Select a metric」(選取指標)。
使用下列字串搜尋延遲指標:
roundtrip_latency
:用於用戶端來回延遲時間指標。spanner/gfe_latency
:適用於 GFE 延遲時間指標。spanner/query_stats_elapsed
:查詢延遲時間指標。
選取指標,然後按一下「套用」。
如要進一步瞭解如何分組或匯總指標,請參閱「使用選單建立查詢」。
後續步驟
- 進一步瞭解 OpenTelemetry。
- 瞭解如何設定 OpenTelemetry SDK。
- 瞭解如何遷移至 OpenTelemetry。
- 瞭解如何使用指標診斷延遲問題。