View a markdown version of this page

Tracce e metriche - AWS SDK per Go v2

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tracce e metriche

AWS SDK per Go È progettato per registrare gli intervalli di traccia e le metriche lato client per le operazioni SDK. Per impostazione predefinita, i client utilizzano implementazioni no-op sia per il tracciamento che per le metriche, il che significa che non viene raccolto alcun dato a meno che non si configuri un provider.

I client di servizio hanno due opzioni di configurazione per l'osservabilità:

  • TracerProvider— Punto di ingresso per la creazione di traccianti e la registrazione degli intervalli di traccia dei client.

  • MeterProvider— Punto di ingresso per la creazione di contatori e la registrazione delle metriche lato client.

Sebbene ispirate alle specifiche OpenTelemetry (OTel), queste APIs sono definite indipendentemente in. smithy-go L'SDK fornisce moduli adattatori per collegare implementazioni OTel SDK concrete alle interfacce del provider dell'SDK.

Tracciamento

Utilizzate il modulo adattatore smithyoteltracing per connettere un client di servizio. OTel trace.TracerProvider

L'esempio seguente mostra come configurare il tracciamento per un client 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) })

Le operazioni SDK sono strumentate con una gerarchia di intervalli che copre i componenti di alto livello del ciclo di vita dell'operazione, come la serializzazione delle richieste, la firma e il ciclo di riprova.

Metriche

Utilizzate il modulo adattatore smithyotelmetrics per connettere An a un client di servizio. OTel metric.MeterProvider

L'esempio seguente mostra come configurare i parametri per un client 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) })

Parametri supportati

I client SDK raccolgono le seguenti metriche:

Nome parametro Unità Tipo Description
client.call.duration s Istogramma Durata complessiva della chiamata, compresi i nuovi tentativi e il tempo necessario per inviare o ricevere la richiesta e il messaggio di risposta.
client.call.attempts {tentativo} MonotonicCounter Il numero di tentativi per una singola operazione.
client.call.errors {errore} MonotonicCounter Il numero di errori per un'operazione.
client.call.attempt_duration s Istogramma L'ora necessaria per connettersi al servizio, inviare la richiesta e recuperare il codice di stato HTTP e le intestazioni (incluso il tempo in coda in attesa di invio).
client.call.resolve_endpoint_duration s Istogramma L'ora necessaria per risolvere un endpoint (endpoint resolver, non DNS) per la richiesta.
client.call.deserialization_duration s Istogramma Il momento necessario per deserializzare il corpo del messaggio.
client.call.auth.signing_duration s Istogramma L'ora in cui firmare una richiesta.
client.call.auth.resolve_identity_duration s Istogramma Il momento necessario per acquisire un'identità (AWS credenziali, token al portatore, ecc.) da un provider di identità.

I seguenti attributi (dimensioni) sono inclusi in ogni metrica, ove applicabile:

  • rpc.service— Il nome del servizio.

  • rpc.method— Il nome dell'operazione.

  • exception.type— Il tipo di errore (incluso inclient.call.errors).

  • auth.scheme_id— Lo schema di autenticazione (incluso nelle metriche relative all'autenticazione).

Metriche del client HTTP

Il client HTTP dell'SDK raccoglie le seguenti metriche aggiuntive relative al ciclo di vita della connessione HTTP sottostante:

Nome parametro Unità Tipo Description
client.http.connections.acquire_duration s Istogramma Il tempo impiegato da una richiesta per acquisire una connessione.
client.http.connections.dns_lookup_duration s Istogramma Il tempo necessario per eseguire una ricerca DNS.
client.http.connections.tls_handshake_duration s Istogramma Il tempo necessario per eseguire un handshake TLS.
client.http.connections.usage {connessione} UpDownCounter Lo stato attuale delle connessioni nel pool. Utilizza una state dimensione con un valore di idle oacquired.
client.http.do_request_duration s Istogramma Il tempo totale impiegato per eseguire la richiesta HTTP.
client.http.time_to_first_byte s Istogramma Il tempo che intercorre tra l'invio della richiesta e la ricezione del primo byte di risposta.