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