View a markdown version of this page

Utilisation de CloudWatch métriques avec les fonctions Web Lambda - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de CloudWatch métriques avec les fonctions Web Lambda

AWS Lambda publie les métriques des fonctions Web sur Amazon CloudWatch dans deux espaces de noms :

  • AWS/Lambda/Web— Mesures de demande et de réponse pour chaque point de terminaison, et mesures d'utilisation des ressources pour les environnements d'exécution qui desservent chaque fonction Web. Lambda centralise ces mesures dans la région d'origine de la fonction Web, de sorte que les valeurs de cette région incluent le trafic provenant de chaque région desservie par le point de terminaison.

  • AWS/Lambda/Web/Usage— Indicateurs régionaux d'utilisation et de limitation qui montrent la consommation par rapport aux quotas régionaux et aux limites des terminaux. Ces indicateurs ne sont pas centralisés. Ils restent dans la région où la demande a été envoyée.

Lambda publie les métriques de demande, d'utilisation et de limitation uniquement lorsqu'une requête produit une valeur pour celles-ci. Les métriques de l'environnement d'exécution sont différentes : Lambda les publie toutes les minutes pour chaque environnement d'exécution actif. Certaines mesures sont rares : Lambda ne publie pas de point de données égal à 0 pour une période au cours de laquelle l'événement ne s'est pas produit. Par exemple, si aucune demande ne renvoie de réponse 5xx au cours d'une période, HTTPResponseStatusClass5XX elle n'a aucun point de données pour cette période. Les tableaux suivants décrivent à quel moment Lambda émet chaque métrique. Lorsque vous créez des alarmes sur des métriques éparses, configurez la façon dont l'alarme traite les données manquantes. Pour plus d'informations, consultez la section Configuration de la manière dont les CloudWatch alarmes traitent les données manquantes dans le guide de CloudWatch l'utilisateur Amazon.

Métriques des demandes

Les métriques de demande sont publiées dans l'espace de AWS/Lambda/Web noms avec les EndpointName dimensions FunctionName et. Ils utilisent l'Countunité. Utilisez les Sum statistiques.

Métrique Statistique Quand Lambda l'émet Description
ExecutedRequests Sum Uniquement pour les périodes au cours desquelles au moins une demande a atteint un environnement d'exécution. Le nombre de demandes qui ont atteint un environnement d'exécution. Les demandes que Lambda limite ou rejette avant d'atteindre un environnement d'exécution ne sont pas prises en compte.
HTTPResponseStatusClass4XX Sum clairsemé. Uniquement pour les périodes avec au moins une réponse 4xx. Le nombre de réponses renvoyées aux appelants avec un code d'état compris entre 400 et 499. La réponse peut provenir de votre application ou de Lambda, y compris les requêtes limitées qui reçoivent le protocole HTTP 429. Les demandes rejetées par Lambda avant d'identifier le point de terminaison, telles que les demandes mal formées, ne sont pas prises en compte.
HTTPResponseStatusClass5XX Sum clairsemé. Uniquement pour les périodes avec au moins une réponse 5xx. Le nombre de réponses renvoyées aux appelants avec un code d'état compris entre 500 et 599. La réponse peut provenir de votre application ou de Lambda. Lors d'une interruption de service, cette métrique peut sous-estimer le nombre d'erreurs.

Les métriques de classe d'état comptent le code d'état reçu par l'appelant. Ils ne font pas la distinction entre les réponses écrites par votre application et les réponses renvoyées par Lambda. Si votre application a déjà envoyé l'état de la réponse et les en-têtes, un échec ultérieur, tel qu'un flux interrompu ou un délai d'expiration de la demande, est compté dans le code de statut d'origine. Pour identifier la source d'une erreur, utilisez l'en-tête de lambda-web-error-type réponse et vos journaux. Pour comptabiliser les erreurs d'application séparément, publiez vos propres statistiques. Pour plus d’informations, consultez Publication de métriques personnalisées avec le format de métrique intégré.

Pour estimer le taux d'erreur d'un serveur, divisez-le HTTPResponseStatusClass5XX par ExecutedRequests sur la même période à l'aide de calculs CloudWatch métriques. Par exemple, utilisezFILL(m5xx, 0) / m_executed, where m5xx et m_executed are les identifiants des deux métriques. Comme il HTTPResponseStatusClass5XX est peu dense, utilisez-le de FILL telle sorte que les périodes sans erreur soient évaluées à 0 au lieu de n'avoir aucune valeur. HTTPResponseStatusClass5XXcompte également 5xx réponses renvoyées par Lambda avant qu'une demande n'atteigne un environnement d'exécution. ExecutedRequestsne prend pas en compte ces réponses, de sorte que le ratio peut surestimer le taux en cas d'interruption de service.

Les métriques des demandes dans la région d'origine regroupent le trafic provenant de chaque région desservie par le point de terminaison, de sorte qu'une alarme dans la région d'origine couvre l'ensemble du point de terminaison. Créez des alarmes et des tableaux de bord à partir des valeurs de la région d'origine. Ne vous fiez pas à ces indicateurs dans d'autres régions ; voirTélémétrie dans chaque région.

Lambda émet des métriques de demande lorsqu'une demande est terminée. Dans le cas d'une demande de longue durée, le point de données peut apparaître jusqu'au délai imparti après le début de la demande, de sorte que les erreurs causées par de longues demandes peuvent atteindre vos alarmes en retard. Pour le délai d'expiration de la demande, voirDélai d'expiration de la demande.

Métriques de l'environnement d'exécution

Les métriques de l'environnement d'exécution décrivent les ressources utilisées par les environnements d'exécution desservant votre fonction Web. Lambda les publie dans l'espace de AWS/Lambda/Web noms avec la FunctionName dimension et les centralise dans la région d'accueil de la fonction Web.

Lambda émet ces métriques une fois par minute pour chaque environnement d'exécution actif. Elles peuvent donc être rares en l'absence d'environnements d'exécution actifs. La valeur peut être 0. Un environnement d'exécution peut publier plusieurs points de données par minute, par exemple lors de son initialisation et de son arrêt. N'utilisez donc pas les SampleCount statistiques pour compter les environnements actifs. Pour les compter comme point de terminaison, utilisezEndpointActiveEnvironments.

Métrique Unit Statistique Description
EnvironmentActiveTime Milliseconds Sum Horloge murale pendant laquelle les environnements d'exécution de la fonction étaient actifs, y compris l'initialisation. Chaque point de données représente le temps d'activité d'un environnement depuis son point de données précédent, de sorte que la somme sur une période correspond au temps total consommé par l'environnement.
EnvironmentCPUTime Milliseconds Sum Temps de vCPU consommé par les environnements d'exécution de la fonction, initialisation comprise.
EnvironmentMaxMemoryUsage Megabytes Maximum Mémoire maximale utilisée par un environnement d'exécution jusqu'à présent au cours de sa durée de vie.
EnvironmentConcurrentRequests Count Maximum Le plus grand nombre de demandes traitées simultanément par un environnement d'exécution au cours de la période.
ResponseBytes Bytes Sum Nombre d'octets de réponse envoyés par les environnements d'exécution de la fonction.

Les métriques de l'environnement d'exécution n'incluent pas EndpointName cette dimension. Ils couvrent tous les points de terminaison de la fonction Web.

Indicateurs régionaux d'utilisation et de limitation

Les statistiques d'utilisation et de limitation indiquent dans quelle mesure votre compte et vos terminaux sont proches de leurs limites régionales, ainsi que la limite qui a limité une demande. Le quota de taux de demandes de compte et le quota de vCPU Arm64 du compte s'appliquent séparément dans chacun Région AWS d'eux. Lambda publie donc ces métriques dans chaque région et ne les centralise pas. Pour connaître l'utilisation d'une région, consultez les statistiques de cette région. Pour les quotas, voirFonctions Web Lambda.

Ces métriques sont publiées dans l'espace de AWS/Lambda/Web/Usage noms avec les ExecutionRegion dimensions FunctionNameEndpointName, et. Ils utilisent l'Countunité.

Métrique Statistique Quand Lambda l'émet Description
ExecutedRequests Sum Uniquement pour les périodes au cours desquelles au moins une demande a atteint un environnement d'exécution dans la Région. Le nombre de demandes qui ont atteint un environnement d'exécution dans la région.
EndpointActiveEnvironments Maximum Avec des demandes adressées au point de terminaison. La valeur peut être 0. Il n'y a aucun point de données tant que le terminal ne reçoit aucune demande. Le nombre d'environnements d'exécution actifs du point de terminaison dans la région. Comparez cette valeur avecmaxEnvironments.
AccountRequestThrottles Sum clairsemé. Uniquement pendant les périodes avec au moins un tel accélérateur. Le nombre de demandes adressées au point de terminaison qui ont été limitées parce que le compte a atteint son quota de taux de demandes dans la région.
EndpointRequestThrottles Sum clairsemé. Uniquement pendant les périodes avec au moins un tel accélérateur. Le nombre de demandes qui ont été limitées parce que le point de terminaison a atteint sa limite de taux de demandes (). rateLimit
AccountActiveVCPUArm64Throttles Sum clairsemé. Uniquement pendant les périodes avec au moins un tel accélérateur. Le nombre de demandes adressées au point de terminaison qui ont été limitées parce que leur traitement aurait dépassé le quota de vCPU Arm64 du compte dans la région. Comme les autres indicateurs d'accélération, il ne compte que les accélérateurs de ce point de terminaison. Pour voir le total du compte, additionnez-le entre les points de terminaison.
EndpointActiveEnvironmentThrottles Sum clairsemé. Uniquement pendant les périodes avec au moins un tel accélérateur. Le nombre de demandes qui ont été limitées parce que leur traitement aurait dépassé les paramètres du point de maxEnvironments terminaison.

Lambda attribue chaque demande limitée à une limite, de sorte qu'une demande limitée incrémente au plus une métrique d'accélération. Les requêtes que Lambda limite parce qu'un trop grand nombre d'environnements d'exécution s'initialisent en même temps renvoient le protocole HTTP 429 avec le type Platform.EndpointConcurrentInitThrottle d'erreur, mais n'incrémentent aucune métrique d'accélération. Les demandes limitées sont également prises en compte HTTPResponseStatusClass4XX dans l'espace de noms. AWS/Lambda/Web

Pour surveiller un PerRegion terminal MultiRegion ou un point de terminaison, consultez ou alertez sur les indicateurs d'utilisation dans chaque région, ou combinez-les dans un tableau de bord CloudWatch interrégional.

Utilisation des métriques avec d'autres CloudWatch fonctionnalités

Les AWS/Lambda/Web métriques étant centralisées dans la région d'origine, vous pouvez les utiliser avec les CloudWatch fonctionnalités standard de cette région, notamment :

  • Amazon CloudWatch Observability Access Manager — Partagez les métriques des fonctions Web avec un compte de surveillance central afin qu'un compte puisse observer de nombreux comptes d'applications.

  • Tableaux de bord et alarmes : créez des tableaux de bord et des alarmes sur les indicateurs de la région d'origine afin de couvrir l'ensemble du déploiement multirégional.

Régler une alarme sur les réponses 5xx

Créez des CloudWatch alarmes pour détecter des problèmes tels que des taux d'erreur élevés ou des ralentissements.

La commande suivante crée une alarme qui se déclenche lorsque les appelants reçoivent plus de cinq réponses 5xx du terminal sur une période de cinq minutes.

aws cloudwatch put-metric-alarm \ --alarm-name my-web-app-prod-5xx \ --namespace AWS/Lambda/Web \ --metric-name HTTPResponseStatusClass5XX \ --statistic Sum \ --period 300 \ --threshold 5 \ --comparison-operator GreaterThanThreshold \ --evaluation-periods 1 \ --treat-missing-data notBreaching \ --dimensions Name=FunctionName,Value=my-web-app Name=EndpointName,Value=prod \ --alarm-actions arn:aws:sns:us-east-1:111122223333:my-alerts

Remplacez les valeurs suivantes :

  • my-web-app-prod-5xx— Le nom de l'alarme.

  • my-web-app— Le nom de votre fonction Web.

  • prod : nom du point de terminaison.

  • arn:aws:sns:us-east-1:111122223333:my-alerts— L'ARN de la rubrique Amazon SNS qui reçoit les notifications d'alarme.

--treat-missing-data notBreachingest important ici. HTTPResponseStatusClass5XXest une métrique éparse, de sorte que les périodes sans réponses 5xx ne produisent aucun point de données. Sans ce réglage, l'alarme passerait à l'INSUFFICIENT_DATAétat pendant ces périodes.

Note

Les métriques des fonctions Web n'incluent pas de dimension de révision. Pour attribuer des erreurs à une révision lors d'un déploiement de Canary, définissez une variable d'environnement qui identifie la version, par exemple dans chaque révision, et incluez sa valeur dans vos journaux structurés ou en tant que dimension dans les métriques que vous publiez avec le format de métrique intégré. APP_VERSION Les événements du journal système, tels revisionId que l'enregistrement de chaque environnement d'exécution, sont platform.initStart également enregistrés, et l'en-tête de lambda-web-logstream réponse identifie le flux de journal de l'environnement d'exécution qui a répondu à une demande. Pour la procédure de restauration, voirFaire marche arrière.