J'observe une latence plus importante lorsque des clients envoient des demandes vers mon API optimisée pour les périphériques dans Amazon API Gateway. Comment puis-je déterminer l'origine de la latence ?

Pour rechercher l'origine de la latence d'une API optimisée pour les périphériques, déterminez le temps nécessaire à chaque partie (chaque étape) du chemin de connexion :

Important : Ces étapes s'appliquent à des API optimisées pour les périphériques, non à des API régionales. Les API optimisées pour les périphériques étant accessibles depuis une distribution Amazon CloudFront, le chemin de connexion inclut des étapes CloudFront.

  1. Début de la connexion jusqu'à la résolution de nom DNS.
  2. Début de la connexion jusqu'à la liaison TCP en vue de la connexion à CloudFront.
  3. Début de la connexion jusqu'à la liaison SSL en vue de la connexion à CloudFront.
  4. Début de la connexion jusqu'à l'envoi de la demande HTTP client vers CloudFront.
  5. Début de la connexion jusqu'au transfert du premier octet vers CloudFront.
  6. Temps total pour la demande et la réponse à l'API.
  7. Traitement de la demande par API Gateway et envoi de la réponse vers l'emplacement périphérique CloudFront.
  8. Réponse du point de terminaison d'intégration à la demande HTTP à partir d'API Gateway.
  9. Temps entre l'envoi de la réponse par API Gateway vers l'emplacement périphérique CLoudFront et la réponse de CloudFront au client.

Utiliser curl for latency

Pour obtenir la durée de plusieurs étapes du processus, utilisez le script curl_for_latency à partir du site Web GitHub Amazon Web Services - Labs.

Remarque : Veillez à mettre à jour l'URL, la méthode HTTP et les paramètres correspondant aux détails de votre API.

Le script renvoie le temps nécessaire à chacune de ces étapes :

  1. Début de la connexion jusqu'à la résolution de nom DNS. Valeur pour « time_namelookup ».
  2. Début de la connexion jusqu'à la liaison TCP en vue de la connexion à CloudFront. Valeur pour « time_connect ».
  3. Début de la connexion jusqu'à la liaison SSL en vue de la connexion à CloudFront. Valeur pour « time_appconnect ».
  4. Début de la connexion jusqu'à l'envoi de la demande HTTP client à CloudFront. Valeur pour « time_appconnect ».
  5. Début de la connexion jusqu'au transfert du premier octet vers CloudFront. Value for « time_starttransfer ».
  6. Temps total pour la demande et la réponse à l'API. Valeur pour « time_total ».

Vérifier le temps de traitement de la demande par API Gateway et l'envoi de la réponse vers l'emplacement périphérique CloudFront

Pour connaître le temps nécessaire à API Gateway pour traiter la demande et répondre à l'emplacement périphérique CloudFront, utilisez la console Amazon CloudWatch pour afficher la métrique Latency à partir d'API Gateway. Cette métrique fournit une vue agrégée sur toutes les demandes transmises à cette étape pendant un temps donné.

Dans la console CloudWatch, configurez le graphique des métriques Latency pour un intervalle d'une minute et Maximum, afin de voir le temps de traitement le plus long sur un laps de temps d'une minute.

Vérifier le temps de réponse du point de terminaison d'intégration à la demande HTTP à partir d'API Gateway

Pour connaître le temps nécessaire au point de terminaison d'intégration pour répondre à la demande HTTP d'API Gateway, utilisez la console CloudWatch pour afficher la métrique IntegrationLatency. Cette métrique fournit une vue agrégée sur toutes les demandes faites au point de terminaison de la demande d'intégration et le temps nécessaire au point de terminaison pour répondre à la demande d'API Gateway. Configurez le graphique des métriques IntegrationLatency pour un intervalle d'une minute et Maximum.

Si CloudWatch Logs est activé, vous pouvez également rechercher un élément de ligne contenant des informations semblables aux suivantes dans vos journaux CloudWatch :

Received response. Integration latency: 325 ms

Remarque : Si vous utilisez AWS Lambda et que vous notez une métrique élevée pour la latence d'intégration, vérifiez les journaux CloudWatch de la fonction Lambda pour résoudre l'augmentation de la durée de la fonction. Les démarrages à froid dans les fonctions Lambda n'étant pas enregistrés dans les métriques de durée, il est possible que vous constatiez que la latence d'intégration est supérieure à la durée de la fonction. Pour connaître la durée de votre fonction avec un démarrage à froid, utilisez AWS X-Ray.

Vérifier le temps entre l'envoi de la réponse par API Gateway vers l'emplacement périphérique CloudFront et la réponse de CloudFront au client

Pour connaître le temps entre l'envoi de la réponse par API Gateway vers l'emplacement périphérique CloudFront et la réponse de CloudFront au client, procédez comme suit :

  1. Prenez le temps total pour la demande et la réponse à l'API.
  2. Soustrayez le temps du début de la connexion jusqu'à l'envoi de la demande HTTP client à CloudFront.
  3. Soustrayez le temps de traitement de la demande par API Gateway et l'envoi de la réponse vers l'emplacement périphérique CloudFront.
  4. Le résultat correspond au temps entre l'envoi de la réponse par API Gateway vers l'emplacement périphérique CloudFront et la réponse de CloudFront au client.

Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 12/12/2018