Configuration du traçage pour les fonctions Lambda d' Ruby
Activez le traçage d' Instana AWS Lambda pour surveiller les performances, détecter les problèmes et obtenir une visibilité sur les exécutions d' AWS Lambda basées sur Ruby.
Pour plus d'informations, consultez la page AWS Lambda tracing.
Environnements d'exécution pris en charge
- Ruby 3.3
- Ruby 3.2
- Ruby 3.1
Prérequis
Configurez l 'agent AWS pour la surveillance Lambda afin de garantir la collecte des informations nécessaires concernant les versions et certaines métriques d'exécution qu' Instana ne peut pas collecter depuis l'environnement d'exécution AWS Lambda.
Configuration des fonctions d' AWS Lambda
Vous pouvez activer le traçage des fonctions Lambda en utilisant l'une des options de configuration suivantes :
- Utilisation de la couche Lambda d' Instana : il s'agit de la méthode recommandée pour activer le traçage.
- Installation manuelle du
instanagem : Dans les environnements soumis à des restrictions, tels que les environnements de type « FedRAMP-compliant », vous pouvez installer manuellement le gem Tracer disponible à l'adresse Instana Ruby.
Activation du traçage pour les fonctions Lambda d' Ruby
Vous pouvez activer le traçage des fonctions Lambda via la console Web d' AWS ou l'un des outils de gestion d' AWS suivants :
- AWS interface en ligne de commande (CLI)
- AWS Kit de développement pour le cloud (CDK)
- AWS CloudFormation modèles
- Terraform ou d'autres outils d'infrastructure en tant que code
Activer le traçage à l'aide de la console Web d' AWS
Pour activer le traçage des fonctions Lambda d' Ruby s via la console Web d' AWS, procédez comme suit :
Ajoutez la couche Lambda « Instana » à votre fonction :
Sur la page de configuration de votre fonction Lambda, cliquez sur « Layers ».
Figure 1. Couches Lambda Dans la zone « Calques », cliquez sur « Ajouter un calque ».
Figure 2. Ajouter une couche Sur la page « Ajouter un calque », sélectionnez l'option « Spécifier un ARN » comme source du calque.
Dans le champ « Spécifier un ARN », copiez-collez l'ARN de la couche Lambda « Instana » correspondant à votre région. Vous trouverez l'ARN correspondant à la couche Lambda « Instana » dans la section « Couches Lambda » du site Instana.
Cliquez sur Ajouter.
Figure 3 Ajouter une couche « Instana » Ruby
Implémentez la fonction de gestion :
Enveloppez votre fonction lambda « Ruby » dans un
Instana.serverless.wrap_awsbloc, en transmettant l'événement et le contexte en tant qu'arguments, comme le montre l'exemple suivant. Cet wrapper crée automatiquement des balises `span` pour votre invocation Lambda et gère le contexte de traçage.require 'bundler/setup' require 'json' require 'instana' def lambda_handler(event:, context:) Instana.serverless.wrap_aws(event, context) do # Your original Lambda function code goes here { statusCode: 200, body: { message: "Hello World!", }.to_json } end endGrâce à l'approche par wrapper, vous pouvez conserver le nom de votre fonction de gestionnaire existante tout en ajoutant des fonctionnalités de traçage d' Instana. Vous n'avez pas besoin de modifier la configuration de votre gestionnaire Lambda dans la console d' AWS.
Définissez les variables d'environnement :
Ajoutez les variables d'environnement suivantes :
INSTANA_ENDPOINT_URL: Votre point de terminaison de surveillance sans serveur. Veillez à utiliser la valeur correcte pour votre région qui commence parhttps://serverless-.INSTANA_AGENT_KEY: Votre clé d'agent.LAMBDA_HANDLER: Votre gestionnaire personnalisé, si vous n'utilisez pas le gestionnaire par défautlambda_function.lambda_handler.
Vous pouvez également obtenir les valeurs correctes de ces variables d'environnement depuis l'interface utilisateur d' Instana. Pour obtenir les valeurs correctes de ces variables d'environnement, cliquez sur Sources de données > Installer des agents > AWS Lambda.
Activer le traçage à l'aide de l'interface CLI d' AWS
L'exemple suivant présente une commande CLI d' AWS qui peut servir de point de départ si vous souhaitez automatiser l'intégration d' Instana à vos fonctions AWS Lambda :
# Do not copy and paste this verbatim!
# It will overwrite any previously defined collection of layers and
# environment variables.
aws --region $YOUR_REGION lambda update-function-configuration \
--function-name $YOUR_LAMBDA_FUNCTION_NAME \
--layers $INSTANA_LAYER_ARN \
--environment ""Variables={INSTANA_ENDPOINT_URL=... , INSTANA_AGENT_KEY=... , LAMBDA_HANDLER=...}""
Installation manuelle du instana gem
Au lieu d'utiliser la couche Lambda de Instana, vous pouvez également choisir d'installer manuellement le gem Tracer disponible à l'adresse InstanaRuby. Cette option est préférable dans les environnements soumis à des restrictions, tels que les environnements « FedRAMP-compliant ».
Pour activer le traçage des fonctions Lambda d' Ruby, procédez comme suit :
- Ajoutez le gem Tracer de Instana Ruby en tant que dépendance à votre projet de fonction. [1]
- Enveloppez votre fonction lambda Ruby dans le
Instana.serverless.wrap_awsbloc, en lui transmettant l'événement et le contexte en tant qu'arguments. - Configurez les variables d'environnement suivantes pour la fonction Lambda :
INSTANA_ENDPOINT_URL: Votre point de terminaison de surveillance sans serveur. Veillez à utiliser la valeur correcte pour votre région qui commence parhttps://serverless-.INSTANA_AGENT_KEY: Votre clé d'agent.LAMBDA_HANDLER: Votre gestionnaire personnalisé, si vous n'utilisez pas le gestionnaire par défautlambda_function.lambda_handler.
Traitement des incidents
Si vous rencontrez des problèmes avec l'intégration Lambda d' Ruby, procédez au dépannage comme suit :
- Vérifiez que l'ARN de la couche appropriée est bien utilisé pour votre région.
- Assurez-vous que toutes les variables d'environnement requises sont correctement définies.
- Vérifiez les journaux d' CloudWatch s pour voir s'il y a des messages d'erreur liés à l'intégration d' Instana.
- Vérifiez que votre fonction Lambda dispose d'un accès à Internet pour pouvoir communiquer avec le backend d' Instana.
Pour obtenir de l'aide supplémentaire, consultez le guide de dépannage de l' AWS Lambda ou contactez le service d'assistance d' Instana.
Couches Instana Lambda
Les ARN de la dernière version des couches « AWS Lambda » pour Ruby sont les suivants, par région :
| Région | ARN |
|---|---|
af-south-1 |
arn:aws:lambda:af-south-1:410797082306:layer:instana-ruby:8 |
ap-east-1 |
arn:aws:lambda:ap-east-1:410797082306:layer:instana-ruby:8 |
ap-northeast-1 |
arn:aws:lambda:ap-northeast-1:410797082306:layer:instana-ruby:8 |
ap-northeast-2 |
arn:aws:lambda:ap-northeast-2:410797082306:layer:instana-ruby:8 |
ap-northeast-3 |
arn:aws:lambda:ap-northeast-3:410797082306:layer:instana-ruby:8 |
ap-south-1 |
arn:aws:lambda:ap-south-1:410797082306:layer:instana-ruby:8 |
ap-south-2 |
arn:aws:lambda:ap-south-2:410797082306:layer:instana-ruby:8 |
ap-southeast-1 |
arn:aws:lambda:ap-southeast-1:410797082306:layer:instana-ruby:8 |
ap-southeast-2 |
arn:aws:lambda:ap-southeast-2:410797082306:layer:instana-ruby:8 |
ap-southeast-3 |
arn:aws:lambda:ap-southeast-3:410797082306:layer:instana-ruby:8 |
ap-southeast-4 |
arn:aws:lambda:ap-southeast-4:410797082306:layer:instana-ruby:8 |
ap-southeast-5 |
arn:aws:lambda:ap-southeast-5:410797082306:layer:instana-ruby:8 |
ap-southeast-7 |
arn:aws:lambda:ap-southeast-7:410797082306:layer:instana-ruby:8 |
ca-central-1 |
arn:aws:lambda:ca-central-1:410797082306:layer:instana-ruby:8 |
ca-west-1 |
arn:aws:lambda:ca-west-1:410797082306:layer:instana-ruby:8 |
cn-north-1 |
arn:aws-cn:lambda:cn-north-1:107998019096:layer:instana-ruby:8 |
cn-northwest-1 |
arn:aws-cn:lambda:cn-northwest-1:107998019096:layer:instana-ruby:8 |
eu-central-1 |
arn:aws:lambda:eu-central-1:410797082306:layer:instana-ruby:8 |
eu-central-2 |
arn:aws:lambda:eu-central-2:410797082306:layer:instana-ruby:8 |
eu-north-1 |
arn:aws:lambda:eu-north-1:410797082306:layer:instana-ruby:8 |
eu-south-1 |
arn:aws:lambda:eu-south-1:410797082306:layer:instana-ruby:8 |
eu-south-2 |
arn:aws:lambda:eu-south-2:410797082306:layer:instana-ruby:8 |
eu-west-1 |
arn:aws:lambda:eu-west-1:410797082306:layer:instana-ruby:8 |
eu-west-2 |
arn:aws:lambda:eu-west-2:410797082306:layer:instana-ruby:8 |
eu-west-3 |
arn:aws:lambda:eu-west-3:410797082306:layer:instana-ruby:8 |
il-central-1 |
arn:aws:lambda:il-central-1:410797082306:layer:instana-ruby:8 |
me-central-1 |
arn:aws:lambda:me-central-1:410797082306:layer:instana-ruby:null |
me-south-1 |
arn:aws:lambda:me-south-1:410797082306:layer:instana-ruby:null |
sa-east-1 |
arn:aws:lambda:sa-east-1:410797082306:layer:instana-ruby:8 |
us-east-1 |
arn:aws:lambda:us-east-1:410797082306:layer:instana-ruby:8 |
us-east-2 |
arn:aws:lambda:us-east-2:410797082306:layer:instana-ruby:8 |
us-west-1 |
arn:aws:lambda:us-west-1:410797082306:layer:instana-ruby:8 |
us-west-2 |
arn:aws:lambda:us-west-2:410797082306:layer:instana-ruby:8 |
La configuration pour les régions chinoises est arn:aws-cn:lambda:${region}:107998019096:layer:instana-ruby:${layer-version} et pour les autres régions, c'est arn:aws:lambda:${region}:410797082306:layer:instana-ruby:${layer-version}.
Veillez à toujours utiliser les dernières versions et à mettre à jour régulièrement la version du calque que vous utilisez afin de bénéficier des nouvelles fonctionnalités et des corrections apportées par la nouvelle version du calque.
Suivez la documentation officielle d' AWS Lambda pour créer un package de déploiement.zip contenant les dépendances. ↩︎