As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Traços e métricas
AWS SDK para Go É instrumentado para registrar extensões de rastreamento e métricas do lado do cliente para operações do SDK. Por padrão, os clientes usam implementações autônomas para rastreamento e métricas, o que significa que nenhum dado é coletado, a menos que você configure um provedor.
Os clientes de serviço têm duas opções de configuração para observabilidade:
-
TracerProvider
— Ponto de entrada para criar rastreadores e registrar extensões de rastreamento do cliente. -
MeterProvider
— Ponto de entrada para criar medidores e registrar métricas do lado do cliente.
Embora inspiradas nas especificações OpenTelemetry (OTel), elas APIs são definidas de forma independente emsmithy-go. O SDK fornece módulos adaptadores para conectar implementações concretas do OTel SDK às interfaces do provedor do SDK.
Rastreamento
Use o módulo adaptador smithyoteltracingtrace.TracerProvider
O exemplo a seguir mostra como configurar o rastreamento para um cliente 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) })
As operações do SDK são instrumentadas com uma hierarquia de abrangência que abrange os componentes de alto nível do ciclo de vida da operação, como serialização de solicitações, assinatura e o ciclo de repetição.
Metrics
Use o módulo adaptador smithyotelmetricsmetric.MeterProvider cliente de serviço.
O exemplo a seguir mostra como configurar métricas para um cliente 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 compatíveis
Os clientes do SDK coletam as seguintes métricas:
| Nome da métrica | Unidade | Tipo | Description |
|---|---|---|---|
client.call.duration |
s | Histograma | Duração geral da chamada, incluindo novas tentativas e tempo para enviar ou receber a solicitação e o corpo da resposta. |
client.call.attempts |
{attempt} | MonotonicCounter | O número de tentativas de uma operação individual. |
client.call.errors |
{error} | MonotonicCounter | O número de erros de uma operação. |
client.call.attempt_duration |
s | Histograma | O tempo para se conectar ao serviço, enviar a solicitação e recuperar o código de status e os cabeçalhos HTTP (incluindo o tempo na fila de espera para ser enviado). |
client.call.resolve_endpoint_duration |
s | Histograma | A hora de resolver um endpoint (resolvedor de endpoint, não DNS) para a solicitação. |
client.call.deserialization_duration |
s | Histograma | A hora de desserializar o corpo da mensagem. |
client.call.auth.signing_duration |
s | Histograma | A hora de assinar uma solicitação. |
client.call.auth.resolve_identity_duration |
s | Histograma | O momento de adquirir uma identidade (AWS credenciais, token do portador etc.) de um provedor de identidade. |
Os seguintes atributos (dimensões) estão incluídos em cada métrica, quando aplicável:
rpc.service— O nome do serviço.rpc.method— O nome da operação.exception.type— O tipo de erro (incluído comclient.call.errors).auth.scheme_id— O esquema de autenticação (incluído nas métricas relacionadas à autenticação).
Métricas do cliente HTTP
O cliente HTTP do SDK coleta as seguintes métricas adicionais relacionadas ao ciclo de vida da conexão HTTP subjacente:
| Nome da métrica | Unidade | Tipo | Description |
|---|---|---|---|
client.http.connections.acquire_duration |
s | Histograma | O tempo necessário para que uma solicitação adquira uma conexão. |
client.http.connections.dns_lookup_duration |
s | Histograma | O tempo necessário para realizar uma pesquisa de DNS. |
client.http.connections.tls_handshake_duration |
s | Histograma | O tempo necessário para realizar um handshake TLS. |
client.http.connections.usage |
{conexão} | UpDownCounter | O estado atual das conexões no pool. Usa uma state dimensão com um valor de idle ouacquired. |
client.http.do_request_duration |
s | Histograma | O tempo total gasto executando a solicitação HTTP. |
client.http.time_to_first_byte |
s | Histograma | O tempo desde o envio da solicitação até o recebimento do primeiro byte de resposta. |