View a markdown version of this page

Traces et métriques - AWS SDK pour Go v2

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

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— Point d'entrée pour créer des traceurs et enregistrer les intervalles de suivi des clients.

  • 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 danssmithy-go. Le SDK fournit des modules adaptateurs pour connecter des implémentations concrètes du OTel SDK aux interfaces du fournisseur du SDK.

Tracing

Utilisez le module adaptateur 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

Utilisez le module adaptateur 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

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 {tentative} MonotonicCounter Nombre de tentatives pour une opération individuelle.
client.call.errors {erreur} MonotonicCounter Le nombre d'erreurs associées à une opération.
client.call.attempt_duration 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_endpoint_duration 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_duration s Histogramme C'est le moment de désérialiser le corps d'un message.
client.call.auth.signing_duration s Histogramme C'est le moment de signer une demande.
client.call.auth.resolve_identity_duration 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 dansclient.call.errors).

  • auth.scheme_id— Le schéma d'authentification (inclus dans les métriques relatives à l'authentification).

Métriques du client HTTP

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_duration s Histogramme Le temps nécessaire à une demande pour établir une connexion.
client.http.connections.dns_lookup_duration s Histogramme Le temps nécessaire pour effectuer une recherche DNS.
client.http.connections.tls_handshake_duration s Histogramme Le temps nécessaire pour effectuer une poignée de main TLS.
client.http.connections.usage {connexion} UpDownCounter État actuel des connexions dans le pool. Utilise une state dimension dont la valeur est idle ouacquired.
client.http.do_request_duration s Histogramme Le temps total passé à exécuter la requête HTTP.
client.http.time_to_first_byte s Histogramme Temps écoulé entre l'envoi de la demande et la réception du premier octet de réponse.