本文說明如何使用 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
程式碼範例會將字串 spanner/gfe_latency 附加至指標名稱,然後匯出至 Cloud Monitoring。您可以使用附加的字串,在「監控」中搜尋這項指標。
擷取 Cloud Spanner API 要求延遲時間
Cloud Spanner API 要求延遲時間是指 Cloud Spanner API 前端收到第一個用戶端要求位元組,到 Cloud Spanner API 前端傳送最後一個回應位元組之間的時間,以秒為單位。
這項延遲指標是監控指標的一部分。
擷取用戶端往返延遲時間
用戶端來回延遲時間是指用戶端傳送至資料庫的 Cloud Spanner API 要求 (透過 GFE 和 Cloud Spanner API 前端) 的第一個位元組,與用戶端從資料庫收到的最後一個回應位元組之間的時間長度,以毫秒為單位。
OpenTelemetry 不支援 Spanner 用戶端來回延遲時間指標。您可以改為查看作業延遲用戶端指標。詳情請參閱「用戶端指標說明」。
您也可以使用 OpenCensus 搭配橋接器設定指標,然後將資料遷移至 OpenTelemetry。
擷取查詢延遲時間
查詢延遲時間是指在 Spanner 資料庫中執行 SQL 查詢所需的時間長度 (以毫秒為單位)。
您可以使用下列程式碼擷取查詢延遲時間:
Java
Go
程式碼範例會在匯出至 Monitoring 時,將字串 spanner/query_stats_elapsed 附加至指標名稱。您可以使用附加的字串,在「監控」中搜尋這項指標。
在 Metrics Explorer 中查看指標
前往 Google Cloud 控制台的「指標探索器」頁面。
選取專案。
按一下「Select a metric」(選取指標)。
使用下列字串搜尋延遲時間指標:
roundtrip_latency:用戶端往返延遲時間指標。spanner/gfe_latency:適用於 GFE 延遲指標。spanner/query_stats_elapsed:查詢延遲時間指標。
選取指標,然後按一下「套用」。
如要進一步瞭解如何分組或彙整指標,請參閱「使用選單建構查詢」。
後續步驟
- 進一步瞭解 OpenTelemetry。
- 瞭解如何設定 OpenTelemetry SDK。
- 瞭解如何遷移至 OpenTelemetry。
- 瞭解如何使用指標診斷延遲問題。