View a markdown version of this page

追蹤和指標 - 適用於 Go 的 AWS SDK v2

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

追蹤和指標

經過 適用於 Go 的 AWS SDK 檢測,可記錄 SDK 操作的追蹤範圍和用戶端指標。根據預設,用戶端會針對追蹤和指標使用無操作實作,這表示除非您設定提供者,否則不會收集任何資料。

服務用戶端有兩個可觀測性的組態選項:

  • TracerProvider – 用於建立追蹤器和記錄用戶端追蹤範圍的進入點。

  • MeterProvider – 用於建立計量和記錄用戶端指標的進入點。

雖然受到 OpenTelemetry (OTel) 規格的啟發,但這些 APIs會在 中獨立定義smithy-go。開發套件提供轉接器模組,可將具體的 OTel 開發套件實作連接到開發套件的提供者界面。

追蹤

使用 smithyoteltracing 轉接器模組將 OTel trace.TracerProvider連接至服務用戶端。

下列範例示範如何設定 Amazon S3 用戶端的追蹤:

import ( "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/smithy-go/tracing/smithyoteltracing" "go.opentelemetry.io/otel/trace" ) // provider is an OTel trace.TracerProvider that you have configured. var provider trace.TracerProvider svc := s3.NewFromConfig(cfg, func(o *s3.Options) { o.TracerProvider = smithyoteltracing.Adapt(provider) })

SDK 操作使用跨階層進行檢測,涵蓋操作生命週期的高階元件,例如請求序列化、簽署和重試迴圈。

指標

使用 smithyotelmetrics 轉接器模組將 OTel metric.MeterProvider連接至服務用戶端。

下列範例示範如何設定 Amazon S3 用戶端的指標:

import ( "github.com/aws/aws-sdk-go-v2/service/s3" "github.com/aws/smithy-go/metrics/smithyotelmetrics" "go.opentelemetry.io/otel/metric" ) // provider is an OTel metric.MeterProvider that you have configured. var provider metric.MeterProvider svc := s3.NewFromConfig(cfg, func(o *s3.Options) { o.MeterProvider = smithyotelmetrics.Adapt(provider) })

支援的指標

SDK 用戶端會收集下列指標:

指標名稱 單位 Type 說明
client.call.duration s 直方圖 整體通話持續時間,包括重試次數以及傳送或接收請求和回應內文的時間。
client.call.attempts {attempt} MonotonicCounter 個別操作的嘗試次數。
client.call.errors {error} MonotonicCounter 操作的錯誤數目。
client.call.attempt_duration s 直方圖 連線到服務、傳送請求,以及取回 HTTP 狀態碼和標頭 (包括排入佇列等待傳送的時間) 的時間。
client.call.resolve_endpoint_duration s 直方圖 為請求解析端點 (端點解析程式,而非 DNS) 的時間。
client.call.deserialization_duration s 直方圖 還原序列化訊息內文的時間。
client.call.auth.signing_duration s 直方圖 簽署請求的時間。
client.call.auth.resolve_identity_duration s 直方圖 從身分提供者取得身分 (AWS 憑證、承載字符等) 的時間。

適用時,每個指標都會包含下列屬性 (維度):

  • rpc.service – 服務名稱。

  • rpc.method – 操作名稱。

  • exception.type – 錯誤類型 (隨附於 client.call.errors)。

  • auth.scheme_id – 身分驗證機制 (包含在身分驗證相關指標中)。

HTTP 用戶端指標

軟體開發套件的 HTTP 用戶端會收集與基礎 HTTP 連線生命週期相關的下列其他指標:

指標名稱 單位 Type 說明
client.http.connections.acquire_duration s 直方圖 請求取得連線所需的時間。
client.http.connections.dns_lookup_duration s 直方圖 執行 DNS 查詢所需的時間。
client.http.connections.tls_handshake_duration s 直方圖 執行 TLS 交握所需的時間。
client.http.connections.usage {connection} UpDownCounter 集區中連線的目前狀態。使用值為 idle或 的state維度acquired
client.http.do_request_duration s 直方圖 執行 HTTP 請求所花費的總時間。
client.http.time_to_first_byte s 直方圖 從傳送請求到接收第一個回應位元組的時間。