Utilisation des métriques de fonction 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 des métriques de fonction Lambda

Lorsque votre AWS Lambda fonction a fini de traiter un événement, Lambda envoie des métriques concernant l'invocation à Amazon. CloudWatch Ces métriques sont gratuites.

Sur la CloudWatch console, vous pouvez créer des graphiques et des tableaux de bord à partir de ces indicateurs. Vous pouvez définir des alarmes pour répondre aux changements d'utilisation, de performances ou de taux d'erreur. Lambda envoie des données métriques à des intervalles d' CloudWatch une minute. Pour obtenir des informations plus immédiates sur votre fonction Lambda, vous pouvez créer des métriques personnalisées à haute résolution comme décrit dans Serverless Land. Des frais s'appliquent pour les mesures personnalisées et les CloudWatch alarmes. Pour en savoir plus, consultez Tarification Amazon CloudWatch.

Cette page décrit les métriques d'invocation, de performance et de simultanéité de la fonction Lambda disponibles sur la console. CloudWatch

Afficher les métriques sur la CloudWatch console

Vous pouvez utiliser la CloudWatch console pour filtrer et trier les métriques des fonctions par nom de fonction, alias ou version.

Pour afficher les métriques sur la CloudWatch console
  1. Ouvrez la page Metrics (espace de AWS/Lambda noms) de la CloudWatch console.

  2. Dans l'onglet Parcourir, sous Métriques, choisissez l'une des dimensions suivantes :

    • By Function Name (Par nom de fonction) (FunctionName) – Affichez les métriques agrégées pour l'ensemble des versions et alias d'une fonction.

    • By Resource (Par ressource) (Resource) – Affichez les métriques pour une version ou un alias d'une fonction.

    • By Executed Version (Par version exécutée) (ExecutedVersion) – Affichez les métriques pour une combinaison d'alias et de version. Utilisez la dimension ExecutedVersion pour comparer les taux d'erreur pour deux versions d'une fonction qui sont les cibles d'un alias pondéré.

    • Dans toutes les fonctions (aucune) : affichez les métriques agrégées pour toutes les fonctions en cours Région AWS.

  3. Choisissez une métrique, puis choisissez Ajouter au graphique ou une autre option de représentation graphique.

Par défaut, les graphiques utilisent la statistique Sum pour toutes les métriques. Pour choisir une autre statistique et personnaliser le graphique, utilisez les options de l'onglet Graphique des métriques.

Note

L'horodatage d'une métrique indique le moment où la fonction a été invoquée. En fonction de la durée de l'invocation, il peut se rapporter à plusieurs minutes avant l'émission de la métrique. Par exemple, si le délai d'expiration de votre fonction est de 10 minutes, effectuez une recherche plus de 10 minutes dans le passé pour obtenir des métriques précises.

Pour plus d'informations CloudWatch, consultez le guide de CloudWatch l'utilisateur Amazon.

Types de métriques

La section suivante décrit les types de métriques Lambda disponibles sur la CloudWatch console.

Métriques d'invocation

Les métriques d'invocation sont des indicateurs binaires du résultat d'une invocation de fonction Lambda. Par exemple, si la fonction renvoie une erreur, Lambda envoie la métrique Errors avec une valeur de 1. Pour obtenir le nombre d'erreurs de fonction qui se sont produites chaque minute, examinez la somme Sum de la métrique Errors avec une période d'une minute.

Note

Affichez les métriques d'invocation suivantes à l'aide de la statistique Sum.

  • Invocations – Nombre de fois où votre code de fonction est invoqué, y compris les invocations réussies et les invocations qui entraînent une erreur de fonction. Les invocations ne sont pas enregistrés si la demande d'invocation est limitée ou si elle entraîne une erreur d'invocation. La valeur de Invocations est égale au nombre de demandes facturées.

  • Errors – Nombre d'invocations entraînant une erreur de fonction. Les erreurs de fonction incluent les exceptions levées par votre code et par l'exécution Lambda. L'environnement d'exécution renvoie des erreurs pour des problèmes tels que les expirations de délai et les erreurs de configuration. Pour calculer le taux d'erreur, divisez la valeur Errors par la valeur Invocations. Notez que l'horodatage d'une métrique d'erreur reflète l'heure d'invocation de la fonction, et non l'heure à laquelle l'erreur s'est produite.

  • DeadLetterErrors : pour un invocation asynchrone, le nombre de fois où Lambda tente sans succès d'envoyer un événement à une file d'attente de lettres mortes (DLQ). Des erreurs de lettre morte peuvent survenir en raison de ressources ou de limites de taille.

  • DestinationDeliveryFailures – Pour l'invocation asynchrone et les mappages des sources d'événements pris en charge, le nombre de fois où Lambda tente d'envoyer un événement à une destination, mais échoue. Pour les mappages des sources d'événements, Lambda prend en charge les destinations des sources de flux (DynamoDB et Kinesis). Des erreurs de remise peuvent se produire en raison d'erreurs d'autorisations, de ressources mal configurées ou de limites de taille. Des erreurs peuvent également se produire si la destination que vous avez configurée est un type non pris en charge, tel qu'une file d'attente FIFO Amazon SQS ou une rubrique FIFO Amazon SNS.

  • Throttles – Nombre de demandes d'invocation limitées. Lorsque toutes les instances de fonction traitent des requêtes et qu'aucune simultanéité n'est disponible pour effectuer une augmentation, Lambda rejette les requêtes supplémentaires avec une erreur TooManyRequestsException. Les demandes limitées et les autres erreurs d'invocation ne comptent pas comme Invocations ou Errors.

  • OversizedRecordCount – Pour les sources d'événements Amazon DocumentDB, le nombre d'événements que votre fonction reçoit de votre flux de modifications et dont la taille est supérieure à 6 Mo. Lambda supprime le message et émet cette métrique.

  • ProvisionedConcurrencyInvocations : le nombre d'invocation de votre code de fonction à l'aide de la simultanéité provisionnée.

  • ProvisionedConcurrencySpilloverInvocations : le nombre d'invocations de votre code de fonction à l'aide d'une simultanéité standard lorsque toutes les simultanéités provisionnées sont utilisées.

  • RecursiveInvocationsDropped— Le nombre de fois où Lambda a arrêté l'invocation de votre fonction parce qu'il a détecté que celle-ci faisait partie d'une boucle récursive infinie. Détection de boucle récursive Lambdasurveille le nombre de fois qu'une fonction est invoquée dans le cadre d'une chaîne de requêtes en suivant les métadonnées ajoutées par les AWS SDK pris en charge. Si votre fonction est invoquée dans le cadre d'une chaîne de requêtes plus de 16 fois, Lambda supprime l'invocation suivante.

Métriques de performances

Les métriques de performance fournissent des détails sur les performances d'un invocation de fonction individuel. Par exemple, la métrique Duration indique la durée en millisecondes que votre fonction consacre au traitement d'un événement. Pour avoir une idée de la rapidité avec laquelle votre fonction traite les événements, affichez ces métriques avec la statistique Average ou Max.

  • Duration – Durée de traitement d'un événement par votre code de fonction. La durée facturée pour une invocation est la valeur de la Duration arrondie à la milliseconde la plus proche. La Duration n'inclut pas le temps de démarrage à froid.

  • PostRuntimeExtensionsDuration – Durée cumulée que l'environnement d'exécution a consacrée à l'exécution de code pour des extensions une fois l'exécution du code de la fonction terminée.

  • IteratorAge – Pour les sources d'événements DynamoDB, Kinesis et Amazon DocumentDB, l'âge du dernier enregistrement dans l'événement. Ce métrique mesure le temps écoulé entre le moment où un flux reçoit l'enregistrement et le moment où le mappage des sources d'événements envoie l'événement à la fonction.

  • OffsetLag : pour les sources d'événements autogérées Apache Kafka et Amazon Managed Streaming for Apache Kafka (Amazon MSK), la différence de décalage entre le dernier enregistrement écrit sur une rubrique et le dernier enregistrement traité par le groupe de consommateurs de votre fonction. Bien qu'une rubrique Kafka puisse comporter plusieurs partitions, cette métrique mesure le décalage de décalage au niveau de la rubrique.

Duration prend également en charge les statistiques de centiles (p). Utilisez les centiles pour exclure les valeurs aberrantes qui faussent les statistiques Average et Maximum. Par exemple, la statistique p95 indique la durée maximale de 95 % des invocations, en excluant les 5 % les plus lentes. Pour plus d'informations, consultez la section Percentiles dans le guide de CloudWatch l'utilisateur Amazon.

Métriques de simultanéité

Lambda signale les métriques de simultanéité sous la forme d'une valeur agrégée du nombre d'instances traitant des événements au sein d'une fonction, d'une version, d'un alias ou d'une Région AWS. Pour voir la distance qui vous sépare des limites de simultanéité, affichez ces métriques à l'aide de la statistique Max.

  • ConcurrentExecutions – Nombre d'instances de fonction qui traitent des événements. Si ce nombre atteint votre quota d'exécutions simultanées pour la région ou la limite de simultanéité réservée sur la fonction, Lambda limite les demandes d'invocation supplémentaires.

  • ProvisionedConcurrentExecutions : le nombre d'instances de fonction qui traitent des événements à l'aide de la simultanéité provisionnée. Pour chaque invocation d'alias ou de version avec une simultanéité approvisionnée, Lambda émet le nombre actuel.

  • ProvisionedConcurrencyUtilization— Pour une version ou un alias, la valeur de ProvisionedConcurrentExecutions divisée par le montant total de simultanéité provisionnée configurée. Par exemple, si vous configurez une simultanéité provisionnée de 10 pour votre fonction et que votre valeur ProvisionedConcurrentExecutions est 7, alors votre valeur ProvisionedConcurrencyUtilization est 0,7.

  • UnreservedConcurrentExecutions – Pour une région, nombre d'événements traités par des fonctions qui n'ont pas de simultanéité réservée.

  • ClaimedAccountConcurrency – Pour une région, le niveau de simultanéité qui n'est pas disponible pour les appels à la demande. ClaimedAccountConcurrency est égal à UnreservedConcurrentExecutions plus le montant de la simultanéité allouée (c'est-à-dire le total de la simultanéité réservée plus le total de la simultanéité provisionnée). Pour plus d’informations, consultez Travailler avec la métrique ClaimedAccountConcurrency.

Métriques d'invocations asynchrones

Les métriques d'invocations asynchrones fournissent des informations détaillées sur les invocations asynchrones à partir des sources d'événements et des invocations directes. Vous pouvez définir des seuils et des alarmes pour vous avertir de certaines modifications. Par exemple, en cas d'augmentation indésirable du nombre d'événements mis en file d'attente pour traitement (AsyncEventsReceived). Ou encore lorsqu'un événement attend depuis longtemps d'être traité (AsyncEventAge).

  • AsyncEventsReceived : le nombre d'événements que Lambda met correctement en file d'attente pour traitement. Cette métrique fournit des informations sur le nombre d'événements qu'une fonction Lambda reçoit. Surveillez cette métrique et définissez des alarmes pour des seuils afin de détecter les problèmes. Par exemple, pour détecter un nombre indésirable d'événements envoyés à Lambda et pour diagnostiquer rapidement les problèmes résultant de configurations de déclencheurs ou de fonctions incorrectes. Les incompatibilités entre AsyncEventsReceived et Invocations peuvent indiquer une disparité de traitement, des événements abandonnés ou un éventuel backlog dans les files d'attente.

  • AsyncEventAge : le temps entre le moment où Lambda met correctement l'événement en file d'attente et le moment où la fonction est invoquée. La valeur de cette métrique augmente lorsque des événements font l'objet d'une nouvelle tentative en raison d'échecs d'invocation ou de limitation. Surveillez cette métrique et définissez des alarmes pour les seuils sur différentes statistiques lorsqu'une accumulation de file d'attente se produit. Pour résoudre le problème d'une augmentation de cette métrique, examinez la métrique Errors pour identifier les erreurs de fonction et la métrique Throttles pour identifier les problèmes de simultanéité.

  • AsyncEventsDropped : le nombre d'événements supprimés sans que la fonction ne soit exécutée correctement. Si vous configurez une file d'attente de lettres mortes (DLQ) ou une destination OnFailure, les événements y sont envoyés avant d'être supprimés. Les événements sont supprimés pour diverses raisons. Par exemple, les événements peuvent dépasser l'âge maximal de l'événement ou atteindre le nombre maximal de nouvelles tentatives, ou la simultanéité réservée peut être définie sur 0. Pour déterminer pourquoi les événements sont supprimés, examinez la métrique Errors pour identifier les erreurs de fonction et la métrique Throttles pour identifier les problèmes de simultanéité.