Amazon Lambda

Amazon Lambda

Crawler Crawler
Cette documentation aborde uniquement l'ingestion de métriques AWS Lambda depuis Amazon CloudWatch. Consultez la documentation mise à jour sur la solution sans serveur de Datadog.

Présentation

Amazon Lambda est un service de calcul qui exécute du code en réponse à des événements et qui gère automatiquement les ressources de calcul requises par ce code.

Activez cette intégration pour commencer à recueillir des métriques CloudWatch. Cette page décrit également la marche à suivre pour configurer l’envoi de métriques custom, le logging et le tracing pour vos fonctions Lambda.

Configuration

Installation

Si vous ne l’avez pas déjà fait, configurez d’abord l’intégration Amazon Web Services.

Collecte de métriques

Métriques AWS Lambda

  1. Dans le carré d’intégration AWS, assurez-vous que l’option Lambda est cochée dans la section concernant la collecte des métriques.

  2. Ajoutez les autorisations suivantes à votre stratégie IAM Datadog afin de recueillir des métriques Amazon Lambda. Pour en savoir plus sur les stratégies Lambda, consultez la documentation du site Web d’AWS.

    Autorisation AWSDescription
    lambda:List*Énumère les tags, les métadonnées et les fonctions Lambda.
    tag:GetResourcesRécupère des tags personnalisés appliqués aux fonctions Lambda.
    cloudtrail:LookupEventsUtilise l’historique CloudTrail pour détecter les modifications des fonctions Lambda
  3. Installez l'intégration Datadog/AWS Lambda.

Une fois l’installation terminée, vous pouvez consulter l’ensemble de vos fonctions Lambda depuis l'interface Serverless de Datadog. Cette page regroupe en une vue unique les métriques, les traces et les logs de vos fonctions Lambda AWS qui exécutent des applications sans serveur. Pour en savoir plus sur cette fonctionnalité, consultez la documentation relative aux fonctions sans serveur de Datadog.

Données collectées

Métriques

aws.lambda.duration
(gauge)
Measures the average elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.maximum
(gauge)
Measures the maximum elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.minimum
(gauge)
Measures the minimum elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.sum
(gauge)
Measures the total execution time of the lambda function executing.
Shown as millisecond
aws.lambda.duration.p50
(gauge)
Measures the p50 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p80
(gauge)
Measures the p80 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p95
(gauge)
Measures the p95 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p99
(gauge)
Measures the p99 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.duration.p99.9
(gauge)
Measures the p99.9 elapsed wall clock time from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as millisecond
aws.lambda.timeout
(gauge)
Measures the amount of allowed execution time for the function before the Lambda runtime stops it.
Shown as second
aws.lambda.memorysize
(gauge)
Measures the amount of allocated memory available to the function during execution.
Shown as mebibyte
aws.lambda.errors
(count)
Measures the number of invocations that failed due to errors in the function.
Shown as error
aws.lambda.invocations
(count)
Measures the number of times a function is invoked in response to an event or invocation API call.
Shown as invocation
aws.lambda.throttles
(count)
Measures the number of Lambda function invocation attempts that were throttled due to invocation rates exceeding the customer's concurrent limits (error code 429). Failed invocations may trigger a retry attempt that succeeds.
Shown as throttle
aws.lambda.iterator_age
(gauge)
Measures the age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.minimum
(gauge)
Measures the minimum age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.maximum
(gauge)
Measures the maximum age of the last record for each batch of records processed
Shown as millisecond
aws.lambda.iterator_age.sum
(gauge)
Measures the sum of the ages of the last record for each batch of records processed
Shown as millisecond
aws.lambda.dead_letter_errors
(count)
Measures the sum of times Lambda is unable to write the failed event payload to your configured Dead Letter Queues.
Shown as error
aws.lambda.concurrent_executions
(gauge)
Measures the average of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.minimum
(gauge)
Measures the minimum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.maximum
(gauge)
Measures the maximum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions.sum
(gauge)
Measures the sum of concurrent executions for a given function at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global
(gauge)
Measures the average of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.minimum
(gauge)
Measures the minimum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.maximum
(gauge)
Measures the maximum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.concurrent_executions_global.sum
(gauge)
Measures the sum of concurrent executions for all functions in an account at a given point in time.
Shown as execution
aws.lambda.unreserved_concurrent_executions
(gauge)
Measures the sum of the concurrency of the functions that don't have a custom concurrency limit specified.
Shown as execution
aws.lambda.post_runtime_extensions_duration
(gauge)
Measures the average amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.maximum
(gauge)
Measures the maximum amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.minimum
(gauge)
Measures the minimum amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.sum
(gauge)
Measures the cumulative amount of time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.p50
(gauge)
Measures the p50 elapsed wall time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.post_runtime_extensions_duration.p99
(gauge)
Measures the p90 elapsed wall time that the runtime spends running code for extensions after the function code has completed.
Shown as millisecond
aws.lambda.provisioned_concurrent_executions
(gauge)
Measures the average number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrent_executions.minimum
(gauge)
Measures the minimum number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrent_executions.maximum
(gauge)
Measures the maximum number of events that are being processed on provisioned concurrency
Shown as execution
aws.lambda.provisioned_concurrency_invocations
(count)
Measures the number of invocations that are run on provisioned concurrency
Shown as invocation
aws.lambda.provisioned_concurrency_spillover_invocations
(count)
Measures the number of invocations that are run on non-provisioned concurrency when all provisioned concurrency is in use
Shown as invocation
aws.lambda.provisioned_concurrency_utilization
(gauge)
Measures the average fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.provisioned_concurrency_utilization.minimum
(gauge)
Measures the minimum fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.provisioned_concurrency_utilization.maximum
(gauge)
Measures the maximum fraction of provisioned concurrency in use for a given function at a given point in time
Shown as percent
aws.lambda.signature_validation_errors
(count)
Measures the number of times a function is successfully deployed but fails a signature check
Shown as error
aws.lambda.enhanced.invocations
(count)
Measures the number of times a function is invoked in response to an event or invocation API call.
Shown as invocation
aws.lambda.enhanced.errors
(count)
Measures the number of invocations that failed due to errors in the function.
Shown as error
aws.lambda.enhanced.max_memory_used
(gauge)
Measures the maximum amount of memory (mb) used by the function.
Shown as mebibyte
aws.lambda.enhanced.duration
(gauge)
Measures the elapsed seconds from when the function code starts executing as a result of an invocation to when it stops executing.
Shown as second
aws.lambda.enhanced.billed_duration
(gauge)
Measures the billed amount of time the function ran for (100ms increments).
Shown as second
aws.lambda.enhanced.init_duration
(gauge)
Measures the initialization time (second) of a function during a cold start.
Shown as second
aws.lambda.enhanced.estimated_cost
(gauge)
Measures the total estimated cost of the function invocation (US dollars).
Shown as dollar
aws.lambda.enhanced.timeouts
(count)
Measures the number of times a function times out.
Shown as timeout
aws.lambda.enhanced.out_of_memory
(count)
Measures the number of times a function runs out of memory.
Shown as error

Chacune des métriques récupérées à partir d’AWS se voit assigner les mêmes tags que ceux qui apparaissent dans la console AWS, y compris, mais sans s’y limiter, le nom de la fonction et les groupes de sécurité.

Les métriques custom sont uniquement taguées avec le nom de la fonction.

Événements

L’intégration AWS Lambda n’inclut aucun événement.

Checks de service

L’intégration AWS Lambda n’inclut aucun check de service.

Sans serveur

Métriques Lambda optimisées transmises en temps réel

Datadog génère en temps réel des métriques runtime Lambda par défaut pour les runtimes Node.js, Python et Ruby. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Activation des métriques Lambda optimisées transmises en temps réel

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Collecte de logs

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Collecte de traces

Datadog prend en charge le tracing distribué pour vos fonctions AWS Lambda, via l'APM Datadog ou AWS X-Ray. Vous pouvez utiliser l’un de ces ensembles de bibliothèques client pour générer des traces. L'APM Datadog associe ensuite automatiquement les traces des applications s’exécutant sur des hosts, des conteneurs et des fonctions sans serveur. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Tracing avec l’APM Datadog

Les bibliothèques de tracing Node.js, Python et Ruby Datadog prennent en charge le tracing distribué pour AWS Lambda. D’autres runtimes seront prochainement compatibles. La meilleure façon d’ajouter des fonctionnalités de tracing à votre application consiste à utiliser la bibliothèque Lambda Datadog, qui comprend la bibliothèque de tracing Datadog en tant que dépendance. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Configurer le tracing de fonctions AWS Lambda et de hosts

Lorsque cela est approprié, Datadog associe les traces AWS X-Ray aux traces de l’APM Datadog natives. Vos traces peuvent ainsi dresser un tableau complet des requêtes qui franchissent les limites de votre infrastructure, qu’il s’agisse de fonctions Lambda AWS, de conteneurs, de hosts sur site ou de services gérés. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Organiser votre infrastructure avec les tags

Tout tag appliqué à votre fonction Lambda devient automatiquement une nouvelle dimension que vous pouvez utiliser pour filtrer vos traces. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Intégrations sans serveur

Les intégrations de fonctions Lambda suivantes fournissent des fonctionnalités supplémentaires pour la surveillance d’applications sans serveur. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Métriques custom

Installez la bibliothèque Lambda de Datadog pour recueillir et envoyer des métriques custom. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Passer aux métriques de distribution

Les métriques de distribution vous permettent de sélectionner l’agrégation souhaitée au moment de créer votre graphique ou de formuler votre requête, et non au moment d’envoyer la métrique. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Tagging de métriques custom

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Métriques custom synchrones et asynchrones

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Activer les métriques custom asynchrones

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Exemple de code pour l’envoi de métriques custom

Dans le code de votre fonction, vous devez importer les méthodes nécessaires à partir de la couche Lambda et ajouter un wrapper autour du gestionnaire de votre fonction. Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Exécution dans un VPC

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Bibliothèques tierces

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

[OBSOLÈTE] CloudWatch Logs

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Couche Lambda Datadog

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Installer et utiliser la couche Lambda Datadog

Pour en savoir plus, consultez la documentation mise à jour relative au sans serveur.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin