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. Cette rubrique explique ces métriques et comment les interpréter.
Sections
Métriques de simultanéité générales
Utilisez les métriques suivantes pour surveiller la simultanéité de vos fonctions 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, versions et alias. Pour toute fonction de la console Lambda, Lambda affiche le graphique pourConcurrentExecutions
nativement native dans l'onglet Surveillance, sous Métriques. Affichez cette métrique à l'aide de 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'une région. Affichez cette métrique à l'aide de MAX. -
ClaimedAccountConcurrency
– 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). SiClaimedAccountConcurrency
dépasse la limite de simultanéité de votre compte, vous pouvez demander une limite de simultanéité de compte plus élevée. Affichez cette métrique à l'aide de MAX. Pour de plus amples informations, veuillez consulter Travailler avec la métrique ClaimedAccountConcurrency.
Métriques de simultanéité provisionnée
Utilisez les métriques suivantes pour surveiller les fonctions Lambda utilisant 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 et alias avec simultanéité provisionnée configurée. Affichez cette métrique à l'aide de MAX.
ProvisionedConcurrentExecutions
n'est pas le même que le nombre total de simultanéités provisionnées que vous allouez. Par exemple, supposons que vous allouiez 100 unités de simultanéité provisionnée à une version de fonction. Au cours d'une minute donnée, si au plus 50 de ces 100 environnements d'exécution géraient les invocations simultanément, la valeur de MAX(ProvisionedConcurrentExecutions
) est 50.
-
ProvisionedConcurrencyInvocations
– Le nombre de fois où Lambda invoque votre code de fonction en utilisant la simultanéité provisionnée. Lambda émet cette métrique pour chaque version de fonction et alias avec simultanéité provisionnée configurée. Affichez cette métrique à l'aide de 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 dix unités de simultanéité provisionnée à cette fonction, de sorte que chaque demande s'exécute sur la simultanéité provisionnée.
Entre les minutes 0 et 1, Request 1
entre en jeu. À la minute 1, la valeur de MAX(ProvisionedConcurrentExecutions
) est 1, car au plus un environnement d'exécution était actif au cours de la dernière minute. La valeur de SUM(ProvisionedConcurrencyInvocations
) est également 1, puisqu'une nouvelle demande est arrivée 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 2, car au plus 2 environnements d'exécution étaient actifs au cours de la dernière minute. Cependant, la valeur de SUM(ProvisionedConcurrencyInvocations
) est 1, car une seule nouvelle demande est arrivée au cours de la dernière minute. Ce comportement métrique se poursuit jusqu'à la fin de l'exemple.
-
ProvisionedConcurrencySpilloverInvocations
: le nombre de fois où Lambda invoque votre fonction sur la simultanéité standard (réservée ou non) lorsque toute la simultanéité provisionnée est utilisée. Lambda émet cette métrique pour chaque version de fonction et alias avec simultanéité provisionnée configurée. Affichez cette métrique à l'aide de SUM. La valeur deProvisionedConcurrencyInvocations
+ProvisionedConcurrencySpilloverInvocations
doit être égale au nombre total d'invocations de fonctions (c'est-à-dire à la métriqueInvocations
).ProvisionedConcurrencyUtilization
: le pourcentage de la simultanéité provisionnée utilisée (c'est à dire la valeur deProvisionedConcurrentExecutions
divisée par la quantité totale de la simultanéité provisionnée allouée). Lambda émet cette métrique pour chaque version de fonction et alias avec simultanéité provisionnée configurée. Affichez cette métrique à l'aide de MAX.
Par exemple, supposons que vous provisionniez 100 unités de simultanéité provisionnée à une version de fonction. Au cours d'une minute donnée, si au plus 60 de ces 100 environnements d'exécution géraient des invocations simultanément, la valeur de MAX(ProvisionedConcurrentExecutions
) est 60 et la valeur de MAX(ProvisionedConcurrencyUtilization
) est 0,6.
Une valeur élevée pour ProvisionedConcurrencySpilloverInvocations
peut indiquer que vous devez allouer un accès simultané supplémentaire à votre fonction. 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 trop alloué de simultanéité provisionnée pour votre fonction.
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 ») :
-
Total pour
RC
entre toutes les fonctions d'une région. -
Total de
PC
entre toutes les fonctions d'une région qui utilisentPC
, à l'exception des fonctions qui utilisentRC
.
Note
Vous ne pouvez pas allouer plus de PC
que ce RC
pour une fonction. Ainsi, le RC
d’une fonction est toujours supérieur ou égal à son PC
. Pour calculer la contribution à la simultanéité allouée pour de telles fonctions avec PC
et RC
, Lambda ne prend en compte que RC
, qui est 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é.
Pour illustrer ClaimedAccountConcurrency
, 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 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 votre compte comporte deux fonctions principales : function-orange
et function-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éployiez des fonctions supplémentaires et 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
est égal à 800 au minimum malgré une faible utilisation réelle de la simultanéité entre vos fonctions. 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.
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
,ClaimedAccountConcurrency
est égal à 800 (800 + 0UnreservedConcurrentExecutions
). -
Au niveau de
t2
,ClaimedAccountConcurrency
est égal à 900 (800 + 100UnreservedConcurrentExecutions
). -
Au niveau de
t3
,ClaimedAccountConcurrency
est à nouveau égal à 900 (800 + 100UnreservedConcurrentExecutions
).
Configuration de la ClaimedAccountConcurrency
mé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'ALARM
active 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.