View a markdown version of this page

Rastros y métricas - AWS SDK para Go v2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Rastros y métricas

AWS SDK para Go Está diseñado para registrar los intervalos de rastreo y las métricas del lado del cliente para las operaciones del SDK. De forma predeterminada, los clientes utilizan implementaciones no operativas tanto para el seguimiento como para las métricas, lo que significa que no se recopilan datos a menos que se configure un proveedor.

Los clientes de servicio tienen dos opciones de configuración para la observabilidad:

  • TracerProvider— Punto de entrada para crear rastreadores y registrar los intervalos de rastreo de los clientes.

  • MeterProvider— Punto de entrada para crear contadores y registrar las métricas del lado del cliente.

Si bien se inspiran en las especificaciones OpenTelemetry (OTel), APIs se definen de forma independiente en. smithy-go El SDK proporciona módulos adaptadores para conectar implementaciones concretas OTel del SDK a las interfaces de los proveedores del SDK.

Rastreo

Utilice el módulo adaptador smithyoteltracing para conectar y a un cliente de servicio. OTel trace.TracerProvider

El siguiente ejemplo muestra cómo configurar el seguimiento para un cliente de 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) })

Las operaciones del SDK se estructuran con una jerarquía de intervalos que abarca los componentes de alto nivel del ciclo de vida de la operación, como la serialización de las solicitudes, la firma y el ciclo de reintentos.

Métricas

Utilice el módulo adaptador smithyotelmetrics para conectarse y a un cliente de servicio. OTel metric.MeterProvider

El siguiente ejemplo muestra cómo configurar las métricas para un cliente de 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étricas admitidas

Los clientes del SDK recopilan las siguientes métricas:

Nombre de métrica Unidad Tipo Description (Descripción)
client.call.duration s Histograma Duración total de la llamada, incluidos los reintentos y el tiempo de envío o recepción de la solicitud y el cuerpo de la respuesta.
client.call.attempts {attempt} MonotonicCounter El número de intentos de una operación individual.
client.call.errors {error} MonotonicCounter El número de errores de una operación.
client.call.attempt_duration s Histograma El tiempo necesario para conectarse al servicio, enviar la solicitud y recuperar el código de estado HTTP y los encabezados (incluido el tiempo de espera para ser enviado).
client.call.resolve_endpoint_duration s Histograma El tiempo necesario para resolver un punto final (resolución de puntos finales, no DNS) para la solicitud.
client.call.deserialization_duration s Histograma El momento de deserializar el cuerpo de un mensaje.
client.call.auth.signing_duration s Histograma Hora de firmar una solicitud.
client.call.auth.resolve_identity_duration s Histograma El momento necesario para adquirir una identidad (AWS credenciales, identificador de portador, etc.) de un proveedor de identidad.

Cuando proceda, se incluyen los siguientes atributos (dimensiones) con cada métrica:

  • rpc.service— El nombre del servicio.

  • rpc.method— El nombre de la operación.

  • exception.type— El tipo de error (incluido conclient.call.errors).

  • auth.scheme_id— El esquema de autenticación (incluido en las métricas relacionadas con la autenticación).

Métricas de clientes HTTP

El cliente HTTP del SDK recopila las siguientes métricas adicionales relacionadas con el ciclo de vida de la conexión HTTP subyacente:

Nombre de métrica Unidad Tipo Description (Descripción)
client.http.connections.acquire_duration s Histograma El tiempo que tarda una solicitud en adquirir una conexión.
client.http.connections.dns_lookup_duration s Histograma El tiempo que se tarda en realizar una búsqueda de DNS.
client.http.connections.tls_handshake_duration s Histograma El tiempo que se tarda en realizar un apretón de manos de TLS.
client.http.connections.usage {conexión} UpDownCounter El estado actual de las conexiones del grupo. Utiliza una state dimensión con un valor de idle oacquired.
client.http.do_request_duration s Histograma El tiempo total dedicado a realizar la solicitud HTTP.
client.http.time_to_first_byte s Histograma El tiempo transcurrido desde el envío de la solicitud hasta la recepción del primer byte de respuesta.