

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
<a name="configure-observability"></a>

 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](https://pkg.go.dev/github.com/aws/smithy-go/tracing#TracerProvider)— Punto di ingresso per la creazione di traccianti e la registrazione degli intervalli di traccia dei client. 
+  [MeterProvider](https://pkg.go.dev/github.com/aws/smithy-go/metrics#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
<a name="configure-tracing"></a>

 Utilizzate il modulo adattatore [smithyoteltracing](https://pkg.go.dev/github.com/aws/smithy-go/tracing/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
<a name="configure-metrics"></a>

 Utilizzate il modulo adattatore [smithyotelmetrics](https://pkg.go.dev/github.com/aws/smithy-go/metrics/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
<a name="supported-metrics"></a>

 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 | \$1tentativo\$1 | MonotonicCounter | Il numero di tentativi per una singola operazione. | 
| client.call.errors | \$1errore\$1 | MonotonicCounter | Il numero di errori per un'operazione. | 
| client.call.attempt\$1duration | 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\$1endpoint\$1duration | s | Istogramma | L'ora necessaria per risolvere un endpoint (endpoint resolver, non DNS) per la richiesta. | 
| client.call.deserialization\$1duration | s | Istogramma | Il momento necessario per deserializzare il corpo del messaggio. | 
| client.call.auth.signing\$1duration | s | Istogramma | L'ora in cui firmare una richiesta. | 
| client.call.auth.resolve\$1identity\$1duration | 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 in`client.call.errors`).
+ `auth.scheme_id`— Lo schema di autenticazione (incluso nelle metriche relative all'autenticazione).

### Metriche del client HTTP
<a name="http-client-metrics"></a>

 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\$1duration | s | Istogramma | Il tempo impiegato da una richiesta per acquisire una connessione. | 
| client.http.connections.dns\$1lookup\$1duration | s | Istogramma | Il tempo necessario per eseguire una ricerca DNS. | 
| client.http.connections.tls\$1handshake\$1duration | s | Istogramma | Il tempo necessario per eseguire un handshake TLS. | 
| client.http.connections.usage | \$1connessione\$1 | UpDownCounter | Lo stato attuale delle connessioni nel pool. Utilizza una state dimensione con un valore di idle oacquired. | 
| client.http.do\$1request\$1duration | s | Istogramma | Il tempo totale impiegato per eseguire la richiesta HTTP. | 
| client.http.time\$1to\$1first\$1byte | s | Istogramma | Il tempo che intercorre tra l'invio della richiesta e la ricezione del primo byte di risposta. | 