Surveillance des performances de fonctions avec Amazon CloudWatch Lambda Insights
Amazon CloudWatch Lambda Insights collecte et agrège les métriques et journaux de performances de runtime de fonction Lambda pour vos applications sans serveur. Cette page explique comment activer et utiliser Lambda Insights pour diagnostiquer des problèmes liés à vos fonctions Lambda.
Sections
Comment Lambda Insights surveille les applications sans serveur
CloudWatch Lambda Insights est une solution de surveillance et de dépannage pour les applications sans serveur s'exécutant sur AWS Lambda. La solution collecte, agrège et résume les métriques de niveau système, notamment l'utilisation de temps d'UC, de mémoire, de disque et de réseau. Elle collecte, agrège et résume également des informations de diagnostic telles que des démarrages à froid et des arrêts de rôle de travail Lambda pour vous aider à circonscrire des problèmes liés à vos fonctions Lambda, ainsi qu'à les résoudre rapidement.
Lambda Insights utilise une nouvelle extension CloudWatch Lambda Insights, fournie sous la forme d'une couche Lambda. Lorsque vous activez cette extension sur une fonction Lambda pour une exécution prise en charge, elle collecte des métriques au niveau du système et émet un événement du journal des performances unique pour chaque invocation de cette fonction Lambda. CloudWatch utilise une mise en forme de métrique intégrée pour extraire les métriques des événements de journal. Pour de plus amples informations, veuillez consulter la section relative à l'utilisation des extensions AWS Lambda.
La couche Lambda Insights étend CreateLogStream et PutLogEvents pour le groupe de journaux /aws/lambda-insights/.
Tarification
Lorsque vous activez Lambda Insights pour votre fonction Lambda, Lambda Insights signale 8 métriques par fonction et chaque invocation de fonction envoie environ 1 Ko de données de journal à CloudWatch. Vous payez uniquement les métriques et les journaux signalés pour votre fonction par Lambda Insights. Aucun frais minimum ni aucune politique d'utilisation obligatoire des services ne sont appliqués. Vous ne payez pas pour Lambda Insights si la fonction n'est pas appelée. Pour un exemple de tarification, consultez Tarification Amazon CloudWatch
Environnements d'exécution pris en charge
Vous pouvez utiliser Lambda Insights avec n'importe quel runtime prenant en charge les extensions Lambda.
Activation de Lambda Insights dans la console Lambda
Vous pouvez activer la surveillance améliorée de Lambda Insights sur des fonctions Lambda nouvelles et existantes. Lorsque vous activez Lambda Insights sur une fonction dans la console Lambda pour un runtime pris en charge, Lambda ajoute l'extension Lambda Insights en tant que couche à votre fonction, et vérifie ou tente d'attacher la stratégie CloudWatchLambdaInsightsExecutionRolePolicy
Pour activer Lambda Insights dans la console Lambda
Ouvrez la page Functions
(Fonctions) de la console Lambda. -
Choisissez votre fonction.
-
Choisissez l'onglet Configuration.
-
Dans le menu de gauche, sélectionnez Outils de surveillance et d’exploitation.
-
Dans le volet Outils de surveillance supplémentaires, choisissez Modifier.
-
Sous CloudWatch Lambda Insights, activez Surveillance améliorée.
-
Choisissez Enregistrer.
Activation de Lambda Insights par programme
Vous pouvez également activer Lambda Insights à l'aide de l'AWS Command Line Interface (AWS CLI), de l'interface de ligne de commande AWS Serverless Application Model (SAM), d'CloudFormation ou de l'AWS Cloud Development Kit (AWS CDK). Lorsque vous activez Lambda Insights par programmation sur une fonction pour un runtime pris en charge, CloudWatch attache la stratégie CloudWatchLambdaInsightsExecutionRolePolicy
Pour plus d'informations, consultez Mise en route avec Lambda Insights dans le Guide de l'utilisateur Amazon CloudWatch.
Utilisation du tableau de bord Lambda Insights
Le tableau de bord Lambda Insights a deux modes d'affichage dans la console CloudWatch : la vue d'ensemble multifonction et la vue de fonction unique. La vue d'ensemble multifonction regroupe les métriques de runtime pour les fonctions Lambda dans le compte AWS et la région actuels. La vue de fonction unique affiche les métriques de runtime disponibles pour une seule fonction Lambda.
Vous pouvez utiliser la vue d'ensemble multifonction du tableau de bord Lambda Insights dans la console CloudWatch pour identifier les fonctions Lambda sur-utilisées et sous-utilisées. Vous pouvez utiliser la vue de fonction unique du tableau de bord Lambda Insights dans la console CloudWatch pour résoudre des demandes individuelles.
Pour afficher les métriques d'environnement d'exécution pour toutes les fonctions
-
Ouvrez la page Multi-function (Multifonction)
dans la console CloudWatch. -
Choisissez parmi les plages de temps prédéfinies ou choisissez une plage de temps personnalisée.
-
(Facultatif) Choisissez Add to dashboard (Ajouter au tableau de bord) pour ajouter les widgets à votre tableau de bord CloudWatch.
Pour afficher les métriques d'environnement d'exécution d'une fonction unique
-
Ouvrez la page Single-function (Fonction unique)
dans la console CloudWatch. -
Choisissez parmi les plages de temps prédéfinies ou choisissez une plage de temps personnalisée.
-
(Facultatif) Choisissez Add to dashboard (Ajouter au tableau de bord) pour ajouter les widgets à votre tableau de bord CloudWatch.
Pour amples d'informations, consultez Création et utilisation de widgets sur des tableaux de bord CloudWatch.
Exemple de flux de travail permettant de détecter les anomalies de fonction
Vous pouvez utiliser la vue d'ensemble multifonction sur le tableau de bord Lambda Insights pour identifier et détecter des anomalies de mémoire de calcul liées à votre fonction. Par exemple, si la vue d'ensemble multifonction indique qu'une fonction utilise une grande quantité de mémoire, vous pouvez afficher les métriques détaillées d'utilisation de la mémoire dans le volet Memory Usage (Utilisation de la mémoire). Vous pouvez ensuite accéder au tableau de bord des métriques pour activer la détection d'anomalies ou créer une alarme.
Pour activer la détection d'anomalies pour une fonction
-
Ouvrez la page Multi-function (Multifonction)
dans la console CloudWatch. -
Sous Function summary (Récapitulatif de fonction), choisissez le nom de votre fonction.
La vue de fonction unique s'ouvre avec les métriques d'environnement d'exécution de la fonction.
-
Dans le volet Memory Usage (Utilisation de la mémoire) sélectionnez les trois points verticaux, puis choisissez View in metrics (Afficher dans les métriques) pour ouvrir le tableau de bord Metrics (Métriques).
-
Dans l'onglet Graphique des métriques, dans la colonne Actions, choisissez la première icône pour activer la détection d'anomalies pour la fonction.
Pour plus d'informations, consultez Utilisation de la détection d'anomalies CloudWatch.
Exemple de flux de travail utilisant des demandes pour dépanner une fonction
Vous pouvez utiliser la vue de fonction unique sur le tableau de bord Lambda Insights pour identifier la cause première d'un pic de durée de fonction. Par exemple, si la vue d'ensemble multifonction indique une augmentation importante de la durée de la fonction, vous pouvez suspendre ou choisir chaque fonction dans le volet Durée afin de déterminer la fonction à l'origine de l'augmentation. Vous pouvez ensuite accéder à la vue de fonction unique et consulter les journaux d'application pour déterminer la cause principale.
Pour exécuter des requêtes sur une fonction
-
Ouvrez la page Multi-function (Multifonction)
dans la console CloudWatch. -
Dans le volet Durée choisissez votre fonction pour filtrer les métriques de durée.
-
Ouvrez la page Fonction unique
. -
Choisissez la liste déroulante Filter metrics by function name (Filtrer les métriques par nom de fonction), puis choisissez votre fonction.
-
Pour afficher les 1000 journaux d'application les plus récents, choisissez l'onglet Application logs (Journaux d'application).
-
Examinez l'horodatage et le message pour identifier la demande d'invocation que vous souhaitez résoudre.
-
Pour afficher les Most recent 1000 invocations (1000 appels les plus récents), choisissez l'onglet Appels.
-
Sélectionnez l'horodatage ou le message pour la demande d'invocation que vous souhaitez résoudre.
-
Choisissez la liste déroulante Afficher les journaux, puis Afficher les journaux de performance.
Une requête générée automatiquement pour votre fonction s'ouvre dans le tableau de bord Logs Insights.
-
Choisissez Exécuter la requête pour générer un message Journaux pour la demande d'invocation.
Quelle est la prochaine étape ?
-
Découvrez comment créer un tableau de bord CloudWatch Logs dans la section Créer un tableau de bord du Guide de l'utilisateur Amazon CloudWatch.
-
Découvrez comment ajouter des requêtes à un tableau de bord CloudWatch Logs dans la section Ajouter une requête au tableau de bord ou exporter les résultats de requête du Manuel du développeur Amazon CloudWatch.