Surveillance d'AWS Lambda
Pour consulter les métriques relatives à l' AWS Lambda ation dans l'interface utilisateur d' Instana, vous devez installer et configurer l'agent Instana AWS, qui est l'agent hôte Instana fonctionnant en mode AWS spécialisé.
Pour plus d'informations, consultez la page consacrée à l'agent « AWS ».
Pour afficher les traces Lambda dans l'interface utilisateur d' Instana, vous devez ajouter un traceur Lambda d' Instana à votre fonction AWS Lambda.
Pour surveiller AWS Lambda, il faut installer l'agent Instana AWS dans l'environnement AWS et intégrer les traceurs Lambda Instana aux fonctions AWS Lambda.
L'agent Instana AWS est installé une fois par compte AWS et par région; il surveille toutes les fonctions AWS Lambda de ce compte et de cette région, ainsi que d'autres services AWS. Pour plus d'informations, consultez la section « Surveillance d' Amazon Web Services ( AWS ) à l'aide de l'agent Amazon Web Services ( AWS ) ». Ce capteur recueille des métriques d'infrastructure pour vos fonctions d' AWS Lambda. Vous devez également ajouter un traceur Lambda d' Instana s à votre fonction AWS Lambda afin de collecter les traces de cette fonction. Selon le moteur d'exécution de la fonction Lambda, le traceur est installé sous forme de couche dans la fonction « AWS Lambda » ou mis en place manuellement.
Environnements d'exécution pris en charge
AWS agent
L'agent AWS pour la surveillance Lambda collecte des détails de version et des métriques pour toutes vos fonctions Lambda, quel que soit l'environnement d'exécution.
AWS Lambda tracé natif
Configuration de la surveillance d'AWS Lambda
Pour surveiller les fonctions d' AWS Lambda s à l'aide d' Instana, procédez comme suit :
Configuration de l'agent « AWS » pour la surveillance de Lambda
Pour configurer l'agent AWS , procédez comme suit:
- Configurez l'agent d' AWS s pour la surveillance d' AWS Lambda.
- Si nécessaire, utilisez la configuration de proxy.
Pour plus d'informations, consultez la section « Configuration de l'agent d' AWS s pour la surveillance Lambda ».
Installation des traceurs Lambda d' Instana dans les fonctions d' AWS Lambda
Pour collecter des données de traçage (données au niveau des requêtes) et les envoyer au backend d' Instana, vous devez installer des traceurs Lambda spécifiques à l'environnement d'exécution Instana dans vos fonctions AWS Lambda. Pour installer les traceurs Lambda d' Instana dans les fonctions d' AWS Lambda, consultez les instructions d'installation pour les environnements d'exécution suivants :
Facultatif : configuration de paramètres supplémentaires pour les traceurs Lambda d' Instana
Vous pouvez configurer les variables d'environnement facultatives qui sont généralement prises en charge dans le traçage Lambda natif, comme indiqué dans le tableau suivant:
INSTANA_DISABLE_CA_CHECK variable sur true à moins que vous n'utilisiez Instana en mode local et que vous ne puissiez pas faire fonctionner le backend Instana avec un certificat dont l'autorité de certification (CA) racine est connue. Si vous activez cette variable, votre fonction Lambda est exposée à des attaques de type « Man in the Middle » ( MITM ) pour cette connexion.| Variables d'environnement | Description |
|---|---|
INSTANA_TIMEOUT |
Définir le délai d'expiration pour les requêtes HTTP qui transmettent des données au backend Instana. |
INSTANA_ENDPOINT_PROXY |
Définissez cette variable sur http://my-proxy.tld ou http://user:password@my-proxy.tld pour acheminer la transmission des données vers le backend Instana via un proxy HTTP ou HTTPS (fonctionnalité prise en charge dans Node.js, mais pas dans Python ). |
INSTANA_EXTRA_HTTP_HEADERS |
Définissez cette variable sur une liste, séparée par des points-virgules, de noms d'en-têtes d' HTTP s (pour les types de déclencheurs « passerelle d' API avec intégration de proxy Lambda » ou « équilibreur de charge d'application ») afin de capturer les en-têtes d' HTTP s. |
INSTANA_SERVICE_NAME |
Définissez le nom du service personnalisé. |
INSTANA_LOG_LEVEL |
Définissez le niveau de journalisation pour le package « Instana ». Les valeurs possibles sont debug, info, warnet error (par défaut: info). |
INSTANA_DEBUG |
Définissez cette variable sur n'importe quelle valeur pour définir le niveau de journalisation sur debug. |
INSTANA_DISABLE_CA_CHECK |
Définissez cette variable sur true pour désactiver la vérification du certificat du serveur par rapport à la liste des autorités de certification (CA) incluse dans le runtime Lambda lors de la connexion au backend Instana. (Disponible pour la @instana/aws-lambda@1.93.0/version de couche 25 et ultérieure) |
Affichage des configurations, des métriques, des versions et des déclencheurs des fonctions Lambda
Vous pouvez consulter toutes les informations relatives à vos fonctions Lambda sur Instana.
Pour consulter les attributs, les déclencheurs, les métriques et les informations de version d' HTTP s pour les fonctions Lambda, procédez comme suit :
- Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ».
- Cliquez sur une fonction Lambda surveillée spécifique.
Vous pouvez voir un tableau de bord hôte avec toutes les métriques et versions Lambda collectées. Pour plus d'informations, consultez la section « Configurations, métriques, versions et déclencheurs Lambda ».
Activer les alertes en cas de démarrage à froid ou de délai d'expiration
Vous pouvez configurer des alertes intelligentes en cas de démarrages à froid trop fréquents ou de délais d'expiration sur vos fonctions Lambda.
| Environnement d'exécution | Démarrage à froid | Dépassements du délai d'attente | Commentaire |
|---|---|---|---|
| Go | ✅ | ✅ | |
| Node.js | ✅ | ✅ | La détection du délai d'attente est désactivée par défaut. Pour activer la détection des délais, voir Variables d'environnement supplémentaires. |
| .NET ou .NET Core | ✅ | ❌ | |
| Java | ❌ | ❌ | |
| Python | ❌ | ❌ | |
| Ruby | ❌ | ❌ |
Pour configurer une alerte intelligente, accédez à la documentation de la perspective « Application » qui contient les fonctions Lambda pour lesquelles vous souhaitez recevoir une alerte, puis ajoutez une alerte intelligente :
- Dans le panneau de navigation de l'interface utilisateur d' Instana, cliquez sur Applications.
- Sélectionnez votre application.
- Cliquez sur Ajouter une alerte intelligente.
- Cliquez sur Passer en mode avancé.
- Dans la zone Sélectionner des services / noeuds finaux de la section Portée , ajoutez l'un des filtres suivants:
Cloud Function As A Service > Cold Start is trueCloud Function As A Service > Suspected Timeout is true
- Dans la zone Plan directeur sélectionné de la section Déclencheur , sélectionnez Débit.
- Dans la section seuil , sélectionnez une valeur seuil adaptée à votre cas d'utilisation. Utilisez 1 pour inclure chaque occurrence ou une valeur supérieure pour que la règle soit violée sur un nombre particulier de démarrages à froid ou de délais d'attente.
- Utilisez les paramètres Seuil de temps pour optimiser le comportement d'alerte.

Utilisation de l'extension Lambda
NodeJS La version 71 et les versions ultérieures de Layer intègrent une extension Lambda.
Cette extension permet d'améliorer les performances des fonctions Lambda surveillées en séparant le processus d'envoi des données vers le backend d' Instana e des autres processus de la fonction Lambda. Pour profiter de ces améliorations de performance, mettez à niveau la couche Instana vers une version qui inclut l'extension.
En interne, l'extension utilise la bibliothèque de langage pour mettre en mémoire tampon et rediriger toutes les requêtes vers le serveur Instana. En fonctionnement normal, l'extension ne prolonge pas la durée de vie de la fonction Lambda. La durée de vie est prolongée uniquement dans les cas suivants:
- Une demande d'arrêt pour s'assurer que toutes les données contenues dans la mémoire tampon du système dorsal sont effacées.
- Situation où la fonction Lambda échoue et arrête l'envoi de plages. Attendez 3 secondes pour voir si la plage racine est envoyée avant d'attendre le prochain appel.
Pour désactiver l'extension, définissez la INSTANA_DISABLE_LAMBDA_EXTENSION variable sur TRUE dans l'environnement de votre fonction.
Considérations relatives aux performances et à la durée d'exécution pour la surveillance de Lambda
Taille d'artefact
L'ajout de la surveillance Lambda d' Instana augmente la taille de votre fonction Lambda déployée. La taille supplémentaire dépend de la couche ou de la bibliothèque spécifique à la langue. Pour connaître la taille d'une version spécifique de la couche Lambda d' Instana, utilisez les commandes shell suivantes :
aws lambda get-layer-version --layer-name <layer_arn> --version-number <target_version> | jq .Content.Location | xargs -L 1 curl --output layer.zip
unzip -l layer.zip
Impact sur les performances
Lorsque vous surveillez une fonction Lambda à l'aide d' Instana, l'impact sur les performances dépend principalement du temps nécessaire à la fonction Lambda pour communiquer avec le backend d' Instana. À la fin de chaque exécution, la bibliothèque fournie par Instana effectue un appel bloquant vers l'extension Instana AWS Lambda ou vers votre tenant Instana afin de signaler le résultat de l'exécution.
Pour les fonctions qui utilisent l'extension Lambda, ce processus a lieu en arrière-plan et permet à la fonction surveillée de renvoyer sa réponse dès que le code surveillé est prêt.
Pour les fonctions qui n'utilisent pas l'extension Lambda, ce processus permet de signaler le résultat de l'exécution uniquement si les données sont envoyées à votre unité de locataire.