

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Traces et métriques
<a name="configure-observability"></a>

 AWS SDK pour Go Il est instrumenté pour enregistrer les intervalles de suivi et les métriques côté client pour les opérations du SDK. Par défaut, les clients utilisent des implémentations non opérationnelles pour le suivi et les métriques, ce qui signifie qu'aucune donnée n'est collectée sauf si vous configurez un fournisseur. 

 Les clients du service disposent de deux options de configuration pour l'observabilité : 
+  [TracerProvider](https://pkg.go.dev/github.com/aws/smithy-go/tracing#TracerProvider)— Point d'entrée pour créer des traceurs et enregistrer les intervalles de suivi des clients. 
+  [MeterProvider](https://pkg.go.dev/github.com/aws/smithy-go/metrics#MeterProvider)— Point d'entrée pour créer des compteurs et enregistrer les mesures côté client. 

 Bien qu'inspirées des spécifications OpenTelemetry (OTel), celles-ci APIs sont définies indépendamment dans`smithy-go`. Le SDK fournit des modules adaptateurs pour connecter des implémentations concrètes du OTel SDK aux interfaces du fournisseur du SDK. 

## Tracing
<a name="configure-tracing"></a>

 Utilisez le module adaptateur [smithyoteltracing](https://pkg.go.dev/github.com/aws/smithy-go/tracing/smithyoteltracing) pour connecter un OTel `trace.TracerProvider` à un client de service. 

 L'exemple suivant montre comment configurer le suivi pour 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)
})
```

 Les opérations du SDK sont instrumentées selon une hiérarchie d'intervalles qui couvre les composants de haut niveau du cycle de vie des opérations, tels que la sérialisation des demandes, la signature et la boucle de nouvelle tentative. 

## Métriques
<a name="configure-metrics"></a>

 Utilisez le module adaptateur [smithyotelmetrics](https://pkg.go.dev/github.com/aws/smithy-go/metrics/smithyotelmetrics) pour connecter un OTel `metric.MeterProvider` à un client de service. 

 L'exemple suivant montre comment configurer les métriques pour 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)
})
```

### Métriques prises en charge
<a name="supported-metrics"></a>

 Les clients du SDK collectent les métriques suivantes : 


| Nom de la métrique | Unit | Type | Description | 
| --- | --- | --- | --- | 
| client.call.duration | s | Histogramme | Durée totale de l'appel, y compris les nouvelles tentatives, le temps d'envoi ou de réception de la demande et le corps de réponse. | 
| client.call.attempts | \$1tentative\$1 | MonotonicCounter | Nombre de tentatives pour une opération individuelle. | 
| client.call.errors | \$1erreur\$1 | MonotonicCounter | Le nombre d'erreurs associées à une opération. | 
| client.call.attempt\$1duration | s | Histogramme | Le temps nécessaire pour se connecter au service, envoyer la demande et récupérer le code d'état HTTP et les en-têtes (y compris le temps passé en attente d'envoi). | 
| client.call.resolve\$1endpoint\$1duration | s | Histogramme | Durée de résolution d'un point de terminaison (résolveur de point de terminaison, pas DNS) pour la demande. | 
| client.call.deserialization\$1duration | s | Histogramme | C'est le moment de désérialiser le corps d'un message. | 
| client.call.auth.signing\$1duration | s | Histogramme | C'est le moment de signer une demande. | 
| client.call.auth.resolve\$1identity\$1duration | s | Histogramme | Le moment d'acquérir une identité (AWS informations d'identification, jeton porteur, etc.) auprès d'un fournisseur d'identité. | 

 Les attributs (dimensions) suivants sont inclus dans chaque métrique, le cas échéant : 
+ `rpc.service`— Le nom du service.
+ `rpc.method`— Le nom de l'opération.
+ `exception.type`— Le type d'erreur (inclus dans`client.call.errors`).
+ `auth.scheme_id`— Le schéma d'authentification (inclus dans les métriques relatives à l'authentification).

### Métriques du client HTTP
<a name="http-client-metrics"></a>

 Le client HTTP du SDK collecte les mesures supplémentaires suivantes relatives au cycle de vie de la connexion HTTP sous-jacente : 


| Nom de la métrique | Unit | Type | Description | 
| --- | --- | --- | --- | 
| client.http.connections.acquire\$1duration | s | Histogramme | Le temps nécessaire à une demande pour établir une connexion. | 
| client.http.connections.dns\$1lookup\$1duration | s | Histogramme | Le temps nécessaire pour effectuer une recherche DNS. | 
| client.http.connections.tls\$1handshake\$1duration | s | Histogramme | Le temps nécessaire pour effectuer une poignée de main TLS. | 
| client.http.connections.usage | \$1connexion\$1 | UpDownCounter | État actuel des connexions dans le pool. Utilise une state dimension dont la valeur est idle ouacquired. | 
| client.http.do\$1request\$1duration | s | Histogramme | Le temps total passé à exécuter la requête HTTP. | 
| client.http.time\$1to\$1first\$1byte | s | Histogramme | Temps écoulé entre l'envoi de la demande et la réception du premier octet de réponse. | 