AWS SDK for Java 2.x: referência abrangente de métricas - AWS SDK for Java 2.x

AWS SDK for Java 2.x: referência abrangente de métricas

Com o AWS SDK for Java 2.x, você pode coletar métricas dos clientes de serviço em sua aplicação e depois publicar (gerar) essas métricas no Amazon CloudWatch.

Essas tabelas listam as métricas que é possível coletar e os requisitos de uso do cliente HTTP.

Para obter mais informações sobre como habilitar e configurar métricas para o SDK, consulte Como habilitar métricas do SDK.

Métricas coletadas com cada solicitação

Nome da métrica Descrição Tipo

ApiCallDuration

A duração da chamada de API. Isso inclui todas as tentativas de chamada feitas.

Duração*

ApiCallSuccessful

Verdadeiro se a chamada de API foi bem-sucedida, falso se não foi.

Booleano

CredentialsFetchDuration

O tempo necessário para obter as credenciais de assinatura para a chamada da API.

Duração*

EndpointResolveDuration A duração do tempo para resolver o endpoint usado na chamada de API. Duração*

MarshallingDuration

O tempo necessário para converter a solicitação de SDK em uma solicitação HTTP.

Duração*

OperationName

O nome da operação de serviço que está sendo invocada.

String

RetryCount

O número de novas tentativas que o SDK realizou na execução da solicitação. 0 indica que a solicitação funcionou na primeira vez e que nenhuma tentativa foi feita.

Consulte mais informações sobre como configurar a retenção de dados em Estratégias de novas tentativas.

Inteiro

ServiceId

O ID exclusivo para o serviço.

String

ServiceEndpoint

O endpoint para o serviço.

URI

TokenFetchDuration

O tempo necessário para obter as credenciais de assinatura para a chamada da API. Duração*

*java.time.Duration.

Métricas coletadas para cada tentativa de solicitação

Cada chamada de API pode exigir várias tentativas antes de receber uma resposta. Essas métricas são coletadas para cada tentativa.

Métricas principais

Nome da métrica Descrição Tipo

AwsExtendedRequestId

O ID da solicitação estendida da solicitação de serviço.

String

AwsRequestId

O ID da solicitação de serviço.

String

BackoffDelayDuration

O tempo que o SDK esperou antes dessa tentativa de chamada de API. O valor é baseado no conjunto BackoffStrategy do cliente. Veja mais informações na seção Estratégias de novas tentativas a seguir deste guia.

Duração*

ErrorType

O tipo de erro que ocorreu em uma tentativa de chamada.

Os valores possíveis são:

  • Throttling: o serviço respondeu com um erro de controle de utilização.

  • ServerError: o serviço respondeu com um erro diferente de controle de utilização.

  • ConfiguredTimeout: o cliente atingiu o tempo limite, seja no nível da chamada de API ou no nível da tentativa de chamada de API.

  • IO: ocorreu um erro de E/S.

  • Other: veja todos os outros erros que não se enquadram em nenhuma das categorias listadas acima.

String
ReadThroughput

O throughput de leitura do cliente, definido como NumberOfResponseBytesRead / (TTLB - TTFB). Esse valor está em bytes por segundo.

Observe que essa métrica mede apenas os bytes lidos de dentro do ResponseTransformer ou AsyncResponseTransformer. Os dados que são lidos fora do transformador, por exemplo, quando o fluxo de resposta é retornado como resultado do transformador, não são incluídos no cálculo.

Duplo

ServiceCallDuration

O tempo necessário para se conectar ao serviço (ou adquirir uma conexão do pool de conexões), enviar a solicitação serializada e receber a resposta inicial (por exemplo, código de status e cabeçalhos HTTP). Isso NÃO inclui o tempo para ler toda a resposta do serviço.

Duração*

SigningDuration

O tempo necessário para assinar a solicitação HTTP.

Duração*

TimeToFirstByte O tempo necessário do envio da solicitação HTTP (incluindo a aquisição de uma conexão) até o serviço e o recebimento do primeiro byte dos cabeçalhos na resposta. Duração*
TimeToLastByte

O tempo necessário do envio da solicitação HTTP (incluindo a aquisição de uma conexão) até o serviço e o recebimento do último byte da resposta.

Observe que, para APIs que retornam respostas de streaming, essa métrica abrange o tempo até a conclusão do ResponseTransformer ou AsyncResponseTransformer.

Duração*

UnmarshallingDuration

O tempo necessário para desvincular uma resposta HTTP de uma resposta do SDK.

Observação: para operações de streaming, isso não inclui o tempo de leitura da carga útil da resposta.

Duração*

*java.time.Duration.

Métricas HTTP

Nome da métrica Descrição Tipo Um cliente HTTP é necessário*

AvailableConcurrency

O número de solicitações simultâneas adicionais que o cliente HTTP suporta sem estabelecer novas conexões com o servidor de destino.

Para operações HTTP/1, isso é igual ao número de conexões TCP ociosas estabelecidas com o serviço. Para operações HTTP/2, isso é igual ao número de fluxos ociosos.

Observação: esse valor varia de acordo com a implementação do cliente HTTP:

  • Cliente Apache: o valor se aplica a todo o cliente HTTP

  • Cliente Netty: o valor se aplica por endpoint

  • Cliente baseado no AWS CRT: o valor se aplica por endpoint

O valor tem como escopo uma instância individual do cliente HTTP e exclui a simultaneidade de outros clientes HTTP na mesma JVM.

Inteiro

Apache, Netty, CRT

ConcurrencyAcquireDuration

O tempo necessário para adquirir um canal do grupo de conexões.

Para operações HTTP/1, um canal é igual a uma conexão TCP. Para operações HTTP/2, um canal é igual a um canal de fluxo HTTP/2.

A aquisição de um novo canal pode incluir tempo para:

  1. Aguardar uma permissão de simultaneidade, conforme restringido pela configuração de simultaneidade máxima do cliente.

  2. Estabelecer uma nova conexão, se nenhuma conexão existente estiver disponível no grupo.

  3. Executar o handshake e a negociação do TLS, se ele estiver ativado.

Duração*

Apache, Netty, CRT

HttpClientName

O nome do HTTP usado para a solicitação.

String

Apache, Netty, CRT

HttpStatusCode

O código de status da resposta HTTP.

Inteiro

Any

LeasedConcurrency

O número de solicitações que estão sendo executadas atualmente pelo cliente HTTP.

Para operações HTTP/1, isso é igual ao número de conexões TCP ativas estabelecidas com o serviço (excluindo conexões ociosas). Para operações HTTP/2, isso é igual ao número de fluxos HTTP ativos com o serviço (excluindo a capacidade de fluxo ocioso).

Observação: esse valor varia de acordo com a implementação do cliente HTTP:

  • Cliente Apache: o valor se aplica a todo o cliente HTTP

  • Cliente Netty: o valor se aplica por endpoint

  • Cliente baseado no AWS CRT: o valor se aplica por endpoint

O valor tem como escopo uma instância individual do cliente HTTP e exclui a simultaneidade de outros clientes HTTP na mesma JVM.

Inteiro

Apache, Netty, CRT

LocalStreamWindowSize

O tamanho da janela HTTP/2 local em bytes para o fluxo que executa essa solicitação.

Inteiro

Netty

MaxConcurrency

O número máximo de solicitações simultâneas que o cliente HTTP suporta.

Para operações HTTP/1, isso é igual ao número máximo de conexões TCP que o cliente HTTP pode agrupar. Para operações HTTP/2, isso é igual ao número máximo de fluxos que o cliente HTTP pode agrupar.

Observação: esse valor varia de acordo com a implementação do cliente HTTP:

  • Cliente Apache: o valor se aplica a todo o cliente HTTP

  • Cliente Netty: o valor se aplica por endpoint

  • Cliente baseado no AWS CRT: o valor se aplica por endpoint

O valor tem como escopo uma instância individual do cliente HTTP e exclui a simultaneidade de outros clientes HTTP na mesma JVM.

Inteiro

Apache, Netty, CRT

PendingConcurrencyAcquires

O número de solicitações que aguardam a simultaneidade do cliente HTTP.

Para operações HTTP/1, isso é igual ao número de solicitações que aguardam o estabelecimento ou o retorno de uma conexão TCP do pool de conexões. Para operações HTTP/2, isso é igual ao número de solicitações que aguardam um novo fluxo (e, possivelmente, uma nova conexão HTTP/2) do grupo de conexões.

Observação: esse valor varia de acordo com a implementação do cliente HTTP:

  • Cliente Apache: o valor se aplica a todo o cliente HTTP

  • Cliente Netty: o valor se aplica por endpoint

  • Cliente baseado no AWS CRT: o valor se aplica por endpoint

O valor tem como escopo uma instância individual do cliente HTTP e exclui a simultaneidade de outros clientes HTTP na mesma JVM.

Inteiro

Apache, Netty, CRT

RemoteStreamWindowSize

O tamanho da janela HTTP/2 remota em bytes para o fluxo que executa essa solicitação.

Inteiro

Netty

*java.time.Duration.

Os termos usados na coluna significam: