Amazon Lambda

Cette documentation aborde uniquement l'ingestion de métriques AWS Lambda depuis Amazon CloudWatch. Consultez la documentation relative à l'Informatique sans serveur Datadog pour recueillir en temps réel des données de télémétrie depuis vos fonctions Lambda.

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.

Implémentation

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. Sur la page de l’intégration AWS, vérifiez que Lambda est activé dans l’onglet Metric Collection.

  2. Ajoutez les autorisations suivantes à votre stratégie IAM Datadog afin de recueillir des métriques Amazon Lambda. Pour en savoir plus, consultez la section relative aux stratégies Lambda de la documentation 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:LookupEventsUse CloudTrail History to detect changes to lambda functions
  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

Si vous utilisez des extensions AWS Lambda, la métrique duration transmise par AWS inclut la durée post_runtime_extensions_duration utilisée par les extensions Lambda effectuant des activités après l'envoi de la réponse de la fonction. Pour surveiller les performances réelles de la fonction, utilisez le calcul durée - post_runtime_extensions_duration ou la métrique optimisée Datadog aws.lambda.enhanced.runtime_duration.

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é.

Métriques

aws.lambda.async_event_age
(gauge)
Measures the average age of the difference between the time that an event is first enqueued in the internal queue and the time the Lambda service invokes the function.
Shown as millisecond
aws.lambda.async_event_age.maximum
(gauge)
Measures the maximum ageof the difference between the time that an event is first enqueued in the internal queue and the time the Lambda service invokes the function.
Shown as millisecond
aws.lambda.async_event_age.minimum
(gauge)
Measures the minimum age of the difference between the time that an event is first enqueued in the internal queue and the time the Lambda service invokes the function.
Shown as millisecond
aws.lambda.async_event_age.sum
(gauge)
Measures the sum of the ages of the differences between the time that an event is first enqueued in the internal queue and the time the Lambda service invokes the function.
Shown as millisecond
aws.lambda.async_events_dropped
(count)
Measures the number of events dropped without successfully executing the function.
Shown as event
aws.lambda.async_events_received
(count)
Measures the number of events that Lambda successfully queues for processing.
Shown as event
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.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.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.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.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.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.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.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.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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
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 - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
Shown as millisecond
aws.lambda.duration.sum
(gauge)
Measures the total execution time of the lambda function executing - including post_runtime_extensions_duration consumed by Lambda extensions performing activities after the function response is returned.
Shown as millisecond
aws.lambda.enhanced.billed_duration
(gauge)
Measures the billed amount of time the function ran for.
Shown as second
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 - including post_runtime_duration consumed by Lambda extensions performing activities after the function response is returned.
Shown as second
aws.lambda.enhanced.errors
(count)
Measures the number of invocations that failed due to errors in the function.
Shown as error
aws.lambda.enhanced.estimated_cost
(gauge)
Measures the total estimated cost of the function invocation (US dollars).
Shown as dollar
aws.lambda.enhanced.init_duration
(gauge)
Measures the initialization time (second) of a function during a cold start.
Shown as second
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.max_memory_used
(gauge)
Measures the maximum amount of memory (mb) used by the function.
Shown as mebibyte
aws.lambda.enhanced.memorysize
(gauge)
Measures the amount of allocated memory (mb) available to the function during execution.
Shown as mebibyte
aws.lambda.enhanced.out_of_memory
(count)
Measures the number of times a function runs out of memory.
Shown as error
aws.lambda.enhanced.post_runtime_duration
(gauge)
Measures the elapsed milliseconds from when the function returns the response to when the extensions finish performing activities like sending telemetry data to a preferred destination after the function’s response is returned.
Shown as millisecond
aws.lambda.enhanced.produced_bytes
(gauge)
Measures the number of bytes returned by a function.
Shown as byte
aws.lambda.enhanced.response_duration
(gauge)
Measures the elapsed time in milliseconds from when the first byte of response to the last byte of response is sent to the client.
Shown as millisecond
aws.lambda.enhanced.response_latency
(gauge)
Measures the elapsed time in milliseconds from when the invocation request is received to when the first byte of response is sent to the client.
Shown as millisecond
aws.lambda.enhanced.runtime_duration
(gauge)
Measures the elapsed milliseconds from when the function code starts to when it returns the response.
Shown as millisecond
aws.lambda.enhanced.time_to_first_byte
(gauge)
Measures the elapsed time in milliseconds from when the function code starts to when it returns the first byte.
Shown as millisecond
aws.lambda.enhanced.timeouts
(count)
Measures the number of times a function times out.
Shown as timeout
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.iterator_age
(gauge)
Measures the 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.minimum
(gauge)
Measures the minimum 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.memorysize
(gauge)
Measures the amount of allocated memory available to the function during execution.
Shown as mebibyte
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.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.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.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.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.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_concurrent_executions
(gauge)
Measures the average 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_concurrent_executions.minimum
(gauge)
Measures the minimum number of events that are being processed on provisioned concurrency
Shown as execution
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.streamed_outbound_bytes
(gauge)
Measures the number of outbound bytes returned by a streaming response function.
Shown as byte
aws.lambda.streamed_outbound_throughput
(rate)
Measures the number of bytes returned per second by a streaming response function.
Shown as byte
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.timeout
(gauge)
Measures the amount of allowed execution time for the function before the Lambda runtime stops it.
Shown as second
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.url_4xx_count
(count)
The number of requests that returned a 4xx HTTP status code.
Shown as error
aws.lambda.url_5xx_count
(count)
The number of requests that returned a 5xx HTTP status code.
Shown as error
aws.lambda.url_latency
(gauge)
The time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.maximum
(gauge)
The maximum time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.minimum
(gauge)
The minimum time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.p50
(gauge)
The 50th percentile time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_latency.p99
(gauge)
The 99th percentile time between when a request was received by the Function URL and when it receives a response from the function
Shown as millisecond
aws.lambda.url_request_count
(count)
The number of requests hit this Function URL.
Shown as request

Événements

L’intégration Lambda AWS recueille les événements de déploiement Lambda à partir d’AWS CloudTrail si le suivi des déploiements sans serveur Datadog est activé.

Checks de service

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

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

Pour en savoir plus, consultez la documentation relative à l’informatique sans serveur.

Métriques custom

Pour en savoir plus, consultez la documentation relative à l’informatique sans serveur.

Collecte de logs

Pour en savoir plus, consultez la documentation relative à l’informatique sans serveur.

Collecte de traces

Pour en savoir plus, consultez la documentation relative à l’informatique sans serveur.

Lambda@Edge

Datadog ajoute automatiquement les tags at_edge, edge_master_name et edge_master_arn sur vos métriques Lambda afin d’obtenir une vue agrégée de vos métriques et logs de fonctions Lambda lorsqu’elles sont exécutées dans des emplacements Edge.

Le tracing distribué n’est pas pris en charge pour les fonctions Lambda@Edge.

Fonctionnalités de surveillance prêtes à l’emploi

L’intégration AWS Lambda propose des fonctionnalités de surveillance prêtes à l’emploi vous permettant de surveiller et d’optimiser vos performances.

  • Dashboard AWS Lambda : bénéficiez d’une vue d’ensemble détaillée de vos fonctions Lambda grâce au dashboard AWS Lambda prête à l’emploi.
  • Monitors recommandés : activez les monitors AWS Lambda recommandés pour détecter des problèmes de façon proactive et recevoir des alertes en temps opportun.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin