Passer au contenu principal
TL;DRCe guide vous montre comment surveiller vos fonctions AWS Lambda avec ClickStack grâce à la Rotel Lambda Extension, afin de collecter et d’envoyer directement vers ClickHouse les logs des fonctions, les logs de l’extension et les données OpenTelemetry. Vous apprendrez à :
  • Déployer la couche Rotel Lambda Extension sur vos fonctions Lambda
  • Configurer l’extension pour exporter les logs et les traces vers ClickStack
  • Désactiver CloudWatch Logs de manière facultative pour réduire les coûts
Cette approche peut réduire considérablement vos coûts d’observabilité Lambda en contournant complètement CloudWatch Logs.Temps requis : 5 à 10 minutes

Intégration à des fonctions Lambda existantes

Cette section explique comment configurer vos fonctions AWS Lambda existantes pour envoyer des logs et des traces à ClickStack grâce à Rotel Lambda Extension.

Prérequis

  • Instance ClickStack en fonctionnement
  • Fonctions AWS Lambda à surveiller
  • AWS CLI configuré avec les autorisations appropriées
  • Rôle d’exécution Lambda disposant des autorisations nécessaires pour ajouter des couches
1

Choisissez la couche Rotel Lambda Extension appropriée

Choisissez la couche Lambda correspondant à l’architecture de l’environnement d’exécution de votre fonction Lambda. Le champ {version} dépend de la région AWS dans laquelle vous déployez. Consultez la page des versions pour connaître les derniers numéros de version correspondant à votre région.
ArchitectureARN
x86-64/amd64arn:aws:lambda:{region}:418653438961:layer:rotel-extension-amd64:{version}
arm64arn:aws:lambda:{region}:418653438961:layer:rotel-extension-arm64:{version}
Régions disponibles :
  • us-east-, us-west-
  • eu-central-1, eu-north-1, eu-west-
  • ca-central-1
  • ap-southeast-, ap-northeast-
  • ap-south-1
  • sa-east-1
2

Ajoutez la couche Rotel à votre fonction Lambda

Dans ces exemples, remplacez {arch}, {region} et {version} par les valeurs appropriées ci-dessus.
Option 1 : Console AWS
  1. Ouvrez la console AWS Lambda
  2. Accédez à votre fonction Lambda
  3. Faites défiler la page jusqu’à la section Couches, puis cliquez sur Ajouter une couche
  4. Sélectionnez Spécifier un ARN
  5. Saisissez l’ARN de la couche Rotel :
  6. Cliquez sur Ajouter
Option 2 : AWS CLI
Option 3 : AWS SAM
3

Configurer l’extension pour exporter vers ClickStack

La Rotel Lambda Extension se configure à l’aide de variables d’environnement. Vous devez configurer le point de terminaison de l’exportateur OTLP pour qu’il pointe vers votre instance ClickStack. Les exemples supposent que votre fonction AWS Lambda peut accéder à l’instance ClickStack.
Configuration de base (variables d’environnement)
Ajoutez ces variables d’environnement à votre fonction Lambda :
Configuration avancée (à l’aide d’un fichier .env)
Pour des configurations plus complexes, créez un fichier rotel.env dans le package de votre fonction Lambda :rotel.env:
Ensuite, définissez la variable d’environnement pour qu’elle pointe vers ce fichier :
Utilisation d’AWS Secrets Manager ou de Parameter Store
Pour les déploiements en production, stockez les valeurs sensibles, comme les clés d’API, dans AWS Secrets Manager ou Parameter Store :Exemple AWS Secrets Manager :
Exemple avec AWS Parameter Store :
Autorisations IAM requises :Ajoutez ces autorisations à votre rôle d’exécution Lambda :Pour Secrets Manager :
Pour le Parameter Store :
Les appels à l’API AWS pour récupérer des secrets ajoutent 100 à 150 ms de latence au démarrage à froid. Les secrets sont récupérés par lots (jusqu’à 10) et uniquement lors de l’initialisation, de sorte que les invocations suivantes ne sont pas affectées.
4

Tester l’intégration

Appelez votre fonction Lambda pour vérifier que les logs sont bien envoyés à ClickStack :
Consultez les logs de Lambda pour vérifier s’il y a des erreurs :
5

Vérifier les logs dans HyperDX

Une fois la configuration terminée, connectez-vous à HyperDX (l’UI de ClickStack) et vérifiez que les logs sont bien transmis :Recherchez ces attributs clés dans les logs :
  • service.name: Le nom de votre fonction Lambda
  • faas.name: Le nom de la fonction AWS Lambda
  • faas.invocation_id: ID d’invocation unique
  • cloud.provider: “aws”
  • cloud.platform: “aws_lambda”

Désactiver CloudWatch Logs (optimisation des coûts)

Par défaut, AWS Lambda envoie tous les logs vers CloudWatch Logs, ce qui peut s’avérer coûteux à grande échelle. Une fois que vous avez vérifié que les logs arrivent bien dans ClickStack, vous pouvez désactiver la journalisation dans CloudWatch pour réduire les coûts.
1

Supprimer les autorisations CloudWatch du rôle d’exécution

  1. Ouvrez la Console AWS et accédez à AWS Lambda
  2. Accédez à votre fonction Lambda
  3. Sélectionnez ConfigurationPermissions
  4. Cliquez sur le nom du rôle d’exécution pour ouvrir la console IAM
  5. Modifiez le rôle et supprimez toutes les actions logs:* :
    • Si vous utilisez une policy personnalisée, modifiez-la pour supprimer logs:CreateLogGroup, logs:CreateLogStream et logs:PutLogEvents
    • Si vous utilisez la policy gérée par AWS AWSLambdaBasicExecutionRole, supprimez-la du rôle
  6. Enregistrez le rôle
2

Vérifier que la journalisation CloudWatch est désactivée

Appelez à nouveau votre fonction et vérifiez que :
  1. Aucun nouveau flux de logs CloudWatch n’est créé
  2. Les logs continuent d’apparaître dans ClickStack/HyperDX

Ajout de l’auto-instrumentation OpenTelemetry

Rotel Lambda Extension s’intègre parfaitement aux couches d’auto-instrumentation OpenTelemetry pour collecter des traces distribuées et des métriques, en plus des logs.
1

Choisissez la couche d’instrumentation adaptée à votre langage

AWS fournit des couches d’auto-instrumentation OpenTelemetry pour plusieurs langages :
LangageModèle d’ARN de couche
Node.jsarn:aws:lambda:{region}:901920570463:layer:aws-otel-nodejs-{arch}-ver-{version}
Pythonarn:aws:lambda:{region}:901920570463:layer:aws-otel-python-{arch}-ver-{version}
Javaarn:aws:lambda:{region}:901920570463:layer:aws-otel-java-agent-{arch}-ver-{version}
Consultez les versions les plus récentes dans le dépôt AWS OpenTelemetry Lambda.
2

Ajoutez les deux couches à votre fonction

Ajoutez les deux couches : la couche d’extension Rotel et la couche d’instrumentation :
3

Configurez l’auto-instrumentation

Définissez la variable d’environnement AWS_LAMBDA_EXEC_WRAPPER pour activer l’auto-instrumentation :Pour Node.js :
Pour Python :
Pour Java :
4

Vérifiez les traces dans HyperDX

Après avoir invoqué votre fonction :
  1. Accédez à la vue Traces dans HyperDX
  2. Vous devriez voir des traces contenant des spans issus de votre fonction Lambda
  3. Les traces seront corrélées aux logs via les attributs trace_id et span_id

Exemples d’applications

Découvrez l’application d’exemple Python présentant Rotel Lambda Extension :
  • Python + ClickHouse : application Python avec instrumentation OpenTelemetry manuelle, envoyant directement des traces et des logs à ClickHouse

Rejoignez la communauté Rotel

Si vous avez des questions sur Rotel, rejoignez le serveur Discord de Rotel et partagez vos retours ou vos questions. Consultez la Rotel Lambda Extension pour contribuer à des améliorations.

Ressources supplémentaires

Dernière modification le 2 juillet 2026