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.
Surveillance de la simultanéité
Lambda émet des métriques CloudWatch Amazon pour vous aider à surveiller la simultanéité de vos fonctions d'événement Lambda. Cette rubrique explique ces métriques et comment les interpréter.
Sections
Métriques de simultanéité générales
Utilisez les mesures suivantes pour surveiller la simultanéité de vos fonctions d'événement Lambda. La granularité de chaque métrique est d'une minute.
-
ConcurrentExecutions: le nombre d'invocations simultanées actives à un moment donné. Lambda émet cette métrique pour toutes les fonctions d'événement, toutes les versions et tous les alias. Pour toute fonction d'événement de la console Lambda, Lambda affiche le graphique deConcurrentExecutionsmanière native dans l'onglet Monitoring, sous Metrics. Consultez cette métrique en utilisant MAX. -
UnreservedConcurrentExecutions: le nombre d'invocations simultanées actives qui utilisent la simultanéité non réservée. Lambda émet cette métrique pour toutes les fonctions d'événement d'une région. Consultez cette métrique en utilisant MAX. -
ClaimedAccountConcurrency– Le niveau de simultanéité qui n'est pas disponible pour les appels à la demande.ClaimedAccountConcurrencyest égal àUnreservedConcurrentExecutionsplus 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). SiClaimedAccountConcurrencydépasse la limite de simultanéité de votre compte, vous pouvez demander une limite de simultanéité de compte plus élevée. Consultez cette métrique en utilisant MAX. Pour plus d’informations, consultez Travailler avec la métrique ClaimedAccountConcurrency.
Métriques de simultanéité provisionnée
Utilisez les métriques suivantes pour surveiller les fonctions d'événement Lambda à l'aide de la simultanéité provisionnée. La granularité de chaque métrique est d'une minute.
-
ProvisionedConcurrentExecutions: le nombre d'instances d'environnement d'exécution qui traitent activement une invocation sur une simultanéité allouée. Lambda émet cette métrique pour chaque version de fonction d'événement et chaque alias avec configuration de la simultanéité provisionnée. Consultez cette métrique en utilisant MAX.
ProvisionedConcurrentExecutions n'est pas le même que le nombre total de simultanéités provisionnées que vous allouez. Supposons, par exemple, que vous allouiez 100 unités de simultanéité provisionnée à une version de Event Function. Au cours d'une minute donnée, si au maximum 50 de ces 100 environnements d'exécution traitent des invocations simultanément, la valeur de MAX (ProvisionedConcurrentExecutions) est de 50.
-
ProvisionedConcurrencyInvocations— Le nombre de fois que Lambda invoque votre code de fonction d'événement en utilisant la simultanéité provisionnée. Lambda émet cette métrique pour chaque version de fonction d'événement et chaque alias avec configuration de la simultanéité provisionnée. Consultez cette métrique en utilisant SUM.
ProvisionedConcurrencyInvocations diffère de ProvisionedConcurrentExecutions, car ProvisionedConcurrencyInvocations compte le nombre total d'invocations, tandis que ProvisionedConcurrentExecutions compte le nombre d'environnements actifs. Pour comprendre cette distinction, examinons le scénario suivant :
Dans cet exemple, supposons que vous receviez une invocation par minute et que chaque invocation dure deux minutes. Chaque barre horizontale orange représente une demande unique. Supposons que vous allouiez 10 unités de simultanéité provisionnée à cette fonction d'événement, de telle sorte que chaque demande s'exécute en cas de simultanéité provisionnée.
Entre les minutes 0 et 1, Request 1 entre en jeu. À la minute 1, la valeur de MAX (ProvisionedConcurrentExecutions) est de un, puisqu'au maximum un environnement d'exécution a été actif au cours de la dernière minute. La valeur de SUM (ProvisionedConcurrencyInvocations) est également de un, puisqu'une nouvelle demande a été reçue au cours de la dernière minute.
Entre les minutes 1 et 2, Request 2 entre en jeu et Request 1 continue de fonctionner. À la minute 2, la valeur de MAX (ProvisionedConcurrentExecutions) est de deux, puisqu'au maximum deux environnements d'exécution ont été actifs au cours de la dernière minute. Toutefois, la valeur de SUM (ProvisionedConcurrencyInvocations) est de un, car une seule nouvelle demande a été reçue au cours de la dernière minute. Ce comportement métrique se poursuit jusqu'à la fin de l'exemple.
-
ProvisionedConcurrencySpilloverInvocations— Le nombre de fois que Lambda invoque votre fonction d'événement en mode simultané standard (réservé ou non réservé) lorsque toute la simultanéité provisionnée est utilisée. Lambda émet cette métrique pour chaque version de fonction d'événement et chaque alias avec configuration de la simultanéité provisionnée. Consultez cette métrique en utilisant SUM. La valeur deProvisionedConcurrencyInvocations+ProvisionedConcurrencySpilloverInvocationsdoit être égale au nombre total d'invocations de fonctions d'événement (c'est-à-dire laInvocationsmétrique).ProvisionedConcurrencyUtilization: le pourcentage de la simultanéité provisionnée utilisée (c'est à dire la valeur deProvisionedConcurrentExecutionsdivisée par la quantité totale de la simultanéité provisionnée allouée). Lambda émet cette métrique pour chaque version de fonction d'événement et chaque alias avec configuration de la simultanéité provisionnée. Consultez cette métrique en utilisant MAX.
Supposons, par exemple, que vous fournissiez 100 unités de simultanéité provisionnée à une version de Event Function. Au cours d'une minute donnée, si au maximum 60 de ces 100 environnements d'exécution traitent des invocations simultanément, la valeur de MAX (ProvisionedConcurrentExecutions) est de 60 et la valeur de MAX (ProvisionedConcurrencyUtilization) est de 0,6.
Une valeur élevée pour ProvisionedConcurrencySpilloverInvocations peut indiquer que vous devez allouer une simultanéité provisionnée supplémentaire pour votre fonction événementielle. Vous pouvez également configurer Application Auto Scaling pour gérer la mise à l'échelle automatique de la simultanéité provisionnée en fonction de seuils prédéfinis.
À l'inverse, des valeurs constamment faibles pour ProvisionedConcurrencyUtilization peuvent indiquer que vous avez suralloué la simultanéité allouée à votre fonction événementielle.
Travailler avec la métrique ClaimedAccountConcurrency
Lambda utilise la métrique ClaimedAccountConcurrency pour déterminer le niveau de simultanéité disponible sur votre compte pour les appels à la demande. Lambda calcule ClaimedAccountConcurrency à l'aide de la formule suivante :
ClaimedAccountConcurrency = UnreservedConcurrentExecutions + (allocated concurrency)
UnreservedConcurrentExecutions correspond au nombre d'invocations simultanées actives qui utilisent la simultanéité non réservée. La simultanéité allouée est la somme des deux parties suivantes (en les remplaçant RC en tant que « simultanéité réservée » et PC en tant que « simultanéité provisionnée ») :
-
Le total de
RCtoutes les fonctions événementielles d'une région. -
Le total de
PCtoutes les fonctions événementielles d'une région qui les utilisentPC, à l'exception des fonctions événementielles qui les utilisentRC.
Note
Vous ne pouvez pas allouer PC plus que RC pour une fonction événementielle. Ainsi, celui d'une fonction événementielle RC est toujours supérieur ou égal à sonPC. Pour calculer la contribution à la simultanéité allouée pour de telles fonctions événementielles avec les deux PC etRC, Lambda RC ne prend en compte que le maximum des deux.
Lambda utilise la métrique ClaimedAccountConcurrency plutôt que ConcurrentExecutions pour déterminer le niveau de simultanéité disponible pour les appels à la demande. Bien que la métrique ConcurrentExecutions soit utile pour suivre le nombre d'appels simultanés actifs, elle ne reflète pas toujours votre véritable disponibilité simultanée. En effet, Lambda prend également en compte la simultanéité réservée et la simultanéité provisionnée pour déterminer la disponibilité.
À titre d'exempleClaimedAccountConcurrency, imaginez un scénario dans lequel vous configurez une grande partie de la simultanéité réservée et de la simultanéité provisionnée entre vos fonctions événementielles qui restent largement inutilisées. Dans l'exemple suivant, supposons que la limite de simultanéité de votre compte est de 1 000 et que vous avez deux fonctions d'événement principales dans votre compte : function-orange etfunction-blue. Vous allouez 600 unités de simultanéité réservée pour function-orange. Vous allouez 200 unités de simultanéité provisionnée pour function-blue. Supposons qu'au fil du temps, vous déployez des fonctions d'événement supplémentaires et que vous observiez le schéma de trafic suivant :
Dans le schéma précédent, les lignes noires indiquent l'utilisation simultanée réelle au fil du temps, et la ligne rouge indique la valeur de ClaimedAccountConcurrency au fil du temps. Dans ce scénario, ClaimedAccountConcurrency c'est 800 au minimum, malgré une faible utilisation réelle de la simultanéité entre vos fonctions événementielles. Cela est dû au fait que vous avez alloué 800 unités de simultanéité au total pour function-orange et function-blue. Du point de vue de Lambda, vous avez « revendiqué » cette simultanéité pour l'utiliser, il ne vous reste donc que 200 unités de simultanéité pour les autres fonctions événementielles.
Pour ce scénario, la simultanéité allouée est de 800 dans la formule ClaimedAccountConcurrency. Nous pouvons ensuite déduire la valeur de ClaimedAccountConcurrency en différents points du diagramme :
-
Au niveau de
t1,ClaimedAccountConcurrencyest égal à 800 (800 + 0UnreservedConcurrentExecutions). -
Au niveau de
t2,ClaimedAccountConcurrencyest égal à 900 (800 + 100UnreservedConcurrentExecutions). -
Au niveau de
t3,ClaimedAccountConcurrencyest à nouveau égal à 900 (800 + 100UnreservedConcurrentExecutions).
Configuration de la ClaimedAccountConcurrencymétrique dans CloudWatch
Lambda émet la métrique en entrée. ClaimedAccountConcurrency CloudWatch Utilisez cette métrique avec la valeur de SERVICE_QUOTA(ConcurrentExecutions) pour obtenir le pourcentage d'utilisation de la simultanéité sur votre compte, comme indiqué dans la formule suivante :
Utilization = (ClaimedAccountConcurrency/SERVICE_QUOTA(ConcurrentExecutions)) * 100%
La capture d'écran suivante montre comment vous pouvez représenter graphiquement cette formule CloudWatch. La ligne verte claim_utilization représente l'utilisation simultanée de ce compte, qui est d'environ 40 % :
La capture d'écran précédente inclut également une CloudWatch alarme qui s'ALARMactive lorsque l'utilisation simultanée dépasse 70 %. Vous pouvez utiliser la métrique ClaimedAccountConcurrency ainsi que des alarmes similaires pour déterminer de manière proactive le moment où vous pourriez avoir besoin de demander une limite de simultanéité de comptes plus élevée.