Como posso solucionar problemas de latência do meu endpoint de API otimizado para borda no API Gateway?
Estou vendo uma latência maior quando os clientes enviam solicitações para minha API otimizada para borda no Amazon API Gateway. Como faço para encontrar a origem da latência para solução de problemas?
Breve descrição
Para encontrar a origem da latência de um endpoint de API otimizado para borda, determine quanto tempo leva cada uma das seguintes partes do caminho de conexão:
**Importante:**Essas etapas do caminho de conexão se aplicam somente aos endpoints de API otimizados para borda, e não aos endpoints da API regional. As APIs otimizadas para a borda são acessadas por meio de uma distribuição do Amazon CloudFront. Os endpoints regionais da API não são acessados por meio do CloudFront.
- Início da conexão com a resolução de nomes DNS
- Início da conexão com o handshake do Transmission Control Protocol (TCP) para se conectar ao CloudFront
- Início da conexão com o handshake Secure Sockets Layer (SSL) para se conectar ao CloudFront
- Início da conexão para enviar a solicitação HTTP do cliente ao CloudFront
- Início da conexão com o primeiro byte transferido do CloudFront
- Tempo total para a solicitação e a resposta à API
- É hora do API Gateway processar a solicitação e responder à localização periférica do CloudFront
- É hora de o endpoint de integração responder à solicitação HTTP do API Gateway
- É hora do API Gateway responder à localização periférica do CloudFront e do CloudFront responder ao cliente
As partes do caminho de conexão que demoram mais são a fonte da latência.
**Observação:**Você pode usar o AWS X-Ray para rastrear e analisar as solicitações dos usuários à medida que eles trafegam pelas APIs REST do Amazon API Gateway até os serviços subjacentes. O API Gateway oferece suporte ao rastreamento por raio-X para todos os tipos de endpoints da API Gateway REST API nas regiões da AWS onde o X-Ray está disponível. Para ver todas as regiões em que o X-Ray está disponível, consulte a tabela de regiões da AWS.
Resolução
Execute o script Bash curl_for_latency
Para determinar a duração das etapas de 1 a 6 no processo de caminho de conexão da sua API, execute o script Bash curl_for_latency no GitHub.
**Importante:**Certifique-se de substituir os valores de URL, método HTTP e parâmetros para corresponder às informações da sua API.
O script retorna o período de tempo necessário para que sua API conclua as seguintes etapas do caminho de conexão:
- Início da conexão com a resolução de nomes DNS (“time_namelookup”)
- Início da conexão com o handshake TCP para se conectar ao CloudFront (“time_connect”)
- Início da conexão com o handshake SSL para se conectar ao CloudFront (“time_appconnect”)
- Início da conexão para enviar a solicitação HTTP do cliente para o CloudFront (“time_pretransfer”)
- Início da conexão com o primeiro byte transferido do CloudFront (“time_starttransfer”)
- Tempo total para a solicitação e a resposta à API (“time_total”)
Depois de identificar os eventos que estão contribuindo para a latência, consulte Como soluciono problemas e reduzo o aumento da latência do CloudFront?
Verifique quanto tempo o API Gateway leva para processar a solicitação e responder à localização periférica do CloudFront
Analise a métrica de latência da sua API no console do CloudWatch. Em seguida, defina as configurações do gráfico de métricas de latência para intervalo de 1 minuto e Máximo para ver o maior tempo de processamento em um período de um minuto.
Para obter instruções, consulte Exibir métricas do API Gateway no console do CloudWatch.
Verifique quanto tempo o endpoint de integração leva para responder à solicitação HTTP do API Gateway
Analise a métrica IntegrationLatency no console do CloudWatch. Em seguida, defina as configurações do gráfico IntegrationLatency para intervalo de 1 minuto e Máximo para ver o maior tempo de processamento em um período de um minuto.
-ou-
Se você tiver o registro do CloudWatch ativado para sua API, analise os logs em busca de um item de linha semelhante ao seguinte:
Received response. Integration latency: 325 ms
Você também pode adicionar variáveis $context com log de acesso para solucionar problemas adicionais de latência.
Para obter instruções, consulte Como eu ativo o CloudWatch Logs para solucionar problemas com minha API REST API Gateway ou API WebSocket?
Solicitações do Amazon API Gateway integradas ao Lambda
Se você estiver usando o AWS Lambda com o API Gateway e observar uma métrica IntegrationLatency alta, analise os logs do CloudWatch da sua função do Lambda. A alta latência deve ser solucionada quando um endpoint de API integrado a uma função do Lambda demora muito para enviar respostas a um cliente. As inicializações a frio nas funções do Lambda não são registradas na métrica de duração da função; portanto, a latência de integração da sua API pode ser maior que a duração da função. Para ver a duração de sua função com uma inicialização a frio, use AWS X-Ray.
Para obter mais informações, acesse Como solucionar problemas de alta latência em minhas solicitações do API Gateway que são integradas ao Lambda?
Verifique quanto tempo o API Gateway leva para responder à localização periférica do CloudFront e para que o CloudFront responda ao cliente
Considere o tempo total da solicitação e da resposta à API (“time_total”) e, em seguida, subtraia o seguinte:
- Início da conexão para enviar a solicitação HTTP do cliente para o CloudFront (“time_pretransfer”)
- Tempo para o API Gateway processar a solicitação e responder à localização periférica do CloudFront (Métrica de latência da sua API)
O resultado é quanto tempo o API Gateway leva para responder à localização periférica do CloudFront e para que o CloudFront responda ao cliente.
Informações relacionadas
Trabalhando com métricas para APIs HTTP
Dimensões e métricas do Amazon API Gateway
Monitoramento da execução da API WebSocket com métricas do CloudWatch
Como posso usar os registros do Amazon API Gateway para solucionar problemas?
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há um ano