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 smithyoteltracingtrace.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 smithyotelmetricsmetric.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. |