Tipos de métricas de funciones de Lambda - AWS Lambda

Tipos de métricas de funciones de Lambda

En esta sección, se describen los tipos de métricas de Lambda disponibles en la consola de CloudWatch.

Métricas de invocación

Las métricas de invocación son indicadores binarios del resultado de la invocación de una función de Lambda. Visualice estas métricas con la estadística Sum. Por ejemplo, si la función devuelve un error, Lambda envía la métrica Errors con un valor de 1. Para obtener un recuento del número de errores de la función que se hayan producido cada minuto, consulte el valor de Sum de la métrica Errors con un período de 1 minuto.

  • Invocations: número de veces que se invoca el código de la función, incluidas las invocaciones correctas y las invocaciones que dan lugar a un error de la función. Las invocaciones no se registran si la solicitud de invocación se limita o da lugar a un error de invocación. El valor de Invocations equivale al número de solicitudes facturadas.

  • Errors: el número de invocaciones que dan lugar a un error de función. Los errores de la función incluyen las excepciones lanzadas por el código y las excepciones lanzadas por el tiempo de ejecución de Lambda. El motor de ejecución devuelve errores para problemas como tiempos de espera y errores de configuración. Para calcular la tasa de error, divida el valor de Errors por el valor de Invocations. Tenga en cuenta que la marca de hora de una métrica de error refleja cuándo se invocó la función, no cuando se produjo el error.

  • DeadLetterErrors: en el caso de la invocación asíncrona, el número de veces que Lambda intenta enviar un evento a una cola de mensajes fallidos (DLQ) sin conseguirlo. Pueden producirse errores de mensaje fallido debido a recursos mal configurados o límites de tamaño.

  • DestinationDeliveryFailures: en el caso de la invocación asíncrona y la asignación de orígenes de eventos admitida, es el número de veces que Lambda intenta enviar un evento a un destino sin conseguirlo. Para la asignación de orígenes de eventos, Lambda admite los destinos de orígenes de secuencias (DynamoDB y Kinesis). Pueden producirse errores de entrega debido a errores de permisos, recursos mal configurados o límites de tamaño. También pueden producirse errores si el destino que ha configurado es de un tipo no admitido, como una cola FIFO de Amazon SQS o un tema FIFO de Amazon SNS.

  • Throttles: el número de solicitudes de invocación que se han limitado. Cuando todas las instancias de función están procesando solicitudes y no hay simultaneidad disponible para escalar verticalmente, Lambda rechaza las solicitudes adicionales y muestra el error TooManyRequestsException. Las solicitudes limitadas y otros errores de invocación no cuentan como Invocations ni Errors.

  • OversizedRecordCount: en el caso de los orígenes de eventos de Amazon DocumentDB, la cantidad de eventos que su función recibe de su flujo de cambios que tienen un tamaño superior a 6 MB. Lambda elimina el mensaje y emite esta métrica.

  • ProvisionedConcurrencyInvocations: el número de veces que se invoca el código de la función con simultaneidad aprovisionada.

  • ProvisionedConcurrencySpilloverInvocations: el número de veces que se invoca el código de la función con simultaneidad estándar cuando ya se usa toda la simultaneidad aprovisionada.

  • RecursiveInvocationsDropped: número de veces que Lambda ha detenido la invocación de la función porque se detecta que la función forma parte de un bucle recursivo infinito. La detección de bucles recursivos supervisa la cantidad de veces que se invoca una función como parte de una cadena de solicitudes mediante el seguimiento de los metadatos agregados por los SDK de AWS compatibles. De forma predeterminada, si la función se invoca como parte de una cadena de solicitudes aproximadamente 16 veces, Lambda descarta la siguiente invocación. Si deshabilita la detección de bucles recursivos, esta métrica no se emite. Para obtener más información acerca de esta característica, consulte Utilice la detección de bucles recursivos de Lambda para evitar bucles infinitos.

Métricas de desempeño

Las métricas de rendimiento proporcionan detalles de rendimiento sobre una única invocación de función. Por ejemplo, la métrica Duration indica la cantidad de tiempo en milisegundos que la función gasta procesando un evento. Para obtener una idea de la rapidez con la que su función procesa eventos, consulte estas métricas con la estadística Average o Max.

  • Duration: la cantidad de tiempo que el código de función pasa procesando un evento. La duración facturada de una invocación es el valor de Duration redondeado hacia arriba a los milisegundos más cercanos. Duration no incluye el tiempo de arranque en frío.

  • PostRuntimeExtensionsDuration: cantidad acumulativa de tiempo que el tiempo de ejecución dedica a ejecutar código para extensiones después de que se haya completado el código de función.

  • IteratorAge: en el caso de los orígenes de eventos de DynamoDB, Kinesis y Amazon DocumentDB, la antigüedad del último registro del evento. Esta métrica mide el tiempo transcurrido desde que una secuencia recibe el registro hasta que la asignación de origen de eventos envía el evento a la función.

  • OffsetLag: en el caso de los orígenes de eventos autoadministrados de Apache Kafka y Amazon Managed Streaming para Apache Kafka (Amazon MSK), la diferencia de desplazamiento entre el último registro escrito en un tema y el último registro que procesó el grupo de consumidores de la función. Aunque un tema de Kafka puede tener varias particiones, esta métrica mide el retraso de desplazamiento en el nivel del tema.

Duration también admite estadísticas percentiles (p). Utilice percentiles para excluir valores atípicos que sesgan las estadísticas Average y Maximum. Por ejemplo, la estadística p95 muestra la duración máxima del 95 % de las invocaciones, sin incluir el 5 % más lento. Para obtener más información, consulte Percentiles en la Guía del usuario de Amazon CloudWatch.

Métricas de simultaneidad

Lambda informa de las métricas de simultaneidad como un recuento agregado del número de instancias que procesan eventos en una función, versión, alias o Región de AWS. Para ver lo cerca que está de alcanzar los límites de simultaneidad, consulte estas métricas con la estadística Max.

  • ConcurrentExecutions: número de instancias de función que están procesando eventos. Si este número alcanza la cuota de ejecuciones simultáneas de la región o el límite de simultaneidad reservada de la función, Lambda limita las solicitudes de invocación adicionales.

  • ProvisionedConcurrentExecutions: el número de instancias de función que están procesando eventos con simultaneidad aprovisionada. Para cada invocación de un alias o versión con simultaneidad aprovisionada, Lambda emite el recuento actual.

  • ProvisionedConcurrencyUtilization: para una versión o alias, el valor de ProvisionedConcurrentExecutions dividido entre la cantidad total de simultaneidad aprovisionada asignada. Por ejemplo, si configura una simultaneidad aprovisionada de 10 para su función y su ProvisionedConcurrentExecutions es 7, entonces su ProvisionedConcurrencyUtilization es 0,7.

  • UnreservedConcurrentExecutions: en el caso de región, número de eventos que están procesando las funciones que no tienen simultaneidad reservada.

  • ClaimedAccountConcurrency: para una región, es la cantidad de simultaneidad que no está disponible para las invocaciones bajo demanda. ClaimedAccountConcurrency es igual a UnreservedConcurrentExecutions más la cantidad de simultaneidad asignada (es decir, la simultaneidad reservada total más la simultaneidad total aprovisionada). Para obtener más información, consulte Cómo trabajar con la métrica ClaimedAccountConcurrency.

Métricas de invocación asíncrona

Las métricas de invocación asíncrona proporcionan detalles sobre las invocaciones asíncronas desde los orígenes de eventos y las invocaciones directas. Puede establecer umbrales y alarmas para recibir notificaciones sobre ciertos cambios. Por ejemplo, cuando hay un aumento no deseado en el número de eventos en cola para su procesamiento (AsyncEventsReceived). O bien, cuando un evento ha estado esperando mucho tiempo para que se procese (AsyncEventAge).

  • AsyncEventsReceived: el número de eventos que Lambda pone correctamente en cola para su procesamiento. Esta métrica proporciona información sobre la cantidad de eventos que recibe una función de Lambda. Supervise esta métrica y establezca alarmas para establecer umbrales para comprobar si hay problemas. Por ejemplo, para detectar un número no deseado de eventos enviados a Lambda y para diagnosticar rápidamente los problemas derivados de configuraciones incorrectas de desencadenadores o funciones. Los desajustes entre AsyncEventsReceived y Invocations pueden indicar una disparidad en el procesamiento, eventos que se descartan o un posible retraso en las colas.

  • AsyncEventAge: el tiempo transcurrido entre el momento en que Lambda pone correctamente en cola el evento y el momento en que se invoca la función. El valor de esta métrica aumenta cuando se vuelven a intentar los eventos debido a errores de invocación o a limitaciones. Supervise esta métrica y establezca alarmas para conocer los umbrales de las diferentes estadísticas cuando se produzca una acumulación de colas. Para solucionar problemas de aumento en esta métrica, consulte la métrica Errors para identificar los errores de función y la métrica Throttles para identificar los problemas de simultaneidad.

  • AsyncEventsDropped: el número de eventos que se descartan sin ejecutar correctamente la función. Si configura una cola de mensajes fallidos (DLQ) o un destino OnFailure, los eventos se enviarán allí antes de que se descarten. Los eventos se descartan por varias razones. Por ejemplo, los eventos pueden superar la antigüedad máxima del evento o agotar el número máximo de reintentos, o bien la simultaneidad reservada puede estar establecida en 0. Para solucionar problemas por los que se descartan los eventos, consulte la métrica Errors para identificar los errores de función y la métrica Throttles para identificar los problemas de simultaneidad.

Métricas de asignación de orígenes de eventos

Las métricas de asignación de orígenes de eventos ofrecen información sobre el comportamiento de procesamiento de su asignación de orígenes de eventos. Estas métricas lo ayudan a supervisar el flujo y el estado de los eventos, incluidos los eventos que su asignación de orígenes de eventos procesó, filtró o descartó correctamente.

Debe registrarse para recibir las métricas relacionadas con los recuentos (PolledEventCount, FilteredOutEventCount, InvokedEventCount, FailedInvokeEventCount, DroppedEventCount, OnFailureDestinationDeliveredEventCount y DeletedEventCount). Para suscribirse, puede usar la consola o la API de Lambda.

Cómo habilitar métricas o una asignación de orígenes de eventos (consola)
  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija la función para la que desea habilitar las métricas.

  3. Elija Configuración y, a continuación, seleccione Desencadenadores.

  4. Elija la asignación de orígenes de eventos para el que desee habilitar las métricas y, a continuación, elija Editar.

  5. En Configuración de la asignación de orígenes de eventos, seleccione Habilitar métricas.

  6. Seleccione Save (Guardar).

Como alternativa, puede habilitar las métricas para la asignación de orígenes de eventos por programación mediante el objeto EventSourceMappingMetricsConfig en su EventSourceMappingConfiguration. Por ejemplo, el siguiente comando de la CLI UpdateEventSourceMapping habilita las métricas para una asignación de orígenes de eventos:

aws lambda update-event-source-mapping \ --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --metrics-config Metrics=EventCount

Vea las métricas relacionadas con los recuentos de eventos con la estadística Sum.

aviso

Las asignaciones de orígenes de eventos de Lambda procesan cada evento al menos una vez, y puede producirse un procesamiento duplicado de registros. Por este motivo, los eventos pueden contarse varias veces en las métricas que incluyen recuentos de eventos.

  • PolledEventCount: el número de eventos que Lambda lee correctamente del origen de eventos. Si Lambda sondea los eventos, pero recibe un sondeo vacío (no hay registros nuevos), Lambda emite un valor 0 para esta métrica. Utilice esta métrica para detectar si la asignación de orígenes de eventos sondea correctamente los nuevos eventos.

  • FilteredOutEventCount: para la asignación de orígenes de eventos con un criterio de filtro, el número de eventos filtrados según ese criterio de filtro. Utilice esta métrica para detectar si la asignación de orígenes de eventos filtra correctamente los eventos. Para los eventos que coinciden con los criterios del filtro, Lambda emite una métrica 0.

  • InvokedEventCount: el número de eventos que invocaron la función de Lambda. Utilice esta métrica para comprobar que los eventos que invocan correctamente la función. Si un evento provoca un error de función o una limitación, InvokedEventCount podría contar varias veces el mismo evento sondeado debido a los reintentos automáticos.

  • FailedInvokeEventCount: el número de eventos que invocaron la función de Lambda, pero fallaron. Las invocaciones pueden fallar debido a problemas de configuración de la red, permisos incorrectos o la eliminación de una función de Lambda, versión o alias. Si la asignación de orígenes de eventos tiene habilitadas las respuestas por lotes parciales, FailedInvokeEventCount incluye cualquier evento BatchItemFailures que no esté vacío en la respuesta.

    nota

    La marca temporal de la métrica FailedInvokeEventCount representa el final de la invocación de la función. Este comportamiento difiere de otras métricas de errores de invocación de Lambda, que tienen una marca temporal al inicio de la invocación de la función.

  • DroppedEventCount: el número de eventos que Lambda descartó debido a la caducidad de o al agotamiento de los reintentos. En concreto, se trata del número de registros que superan los valores configurados para MaximumRecordAgeInSeconds o MaximumRetryAttempts. Es importante destacar que esto no incluye la cantidad de registros que caducan por superar la configuración de retención del origen de eventos. Los eventos descartados también excluyen los eventos que envíe a un destino en caso de fallo. Utilice esta métrica para detectar una acumulación creciente de eventos.

  • OnFailureDestinationDeliveredEventCount: en el caso de las asignaciones de orígenes de eventos con un destino en caso de fallo configurado, el número de eventos enviados a ese destino. Utilice esta métrica para supervisar los errores de función relacionados con las invocaciones desde este origen de eventos. Si se produce un error en la entrega al destino, Lambda gestiona las métricas de la siguiente manera:

    • Lambda no emite la métrica OnFailureDestinationDeliveredEventCount.

    • Para la métrica DestinationDeliveryFailures, Lambda emite un 1.

    • Para la métrica DroppedEventCount, Lambda emite un número igual al número de eventos en los que no se pudo entregar.

  • DeletedEventCount: el número de eventos que Lambda elimina con éxito después de procesarlos. Si Lambda intenta eliminar un evento pero no lo consigue, Lambda emite una métrica 0. Utilice esta métrica para asegurarse de que los eventos procesados correctamente se eliminen de su origen de eventos.

Si la asignación de orígenes de eventos está deshabilitada, no recibirá las métricas de asignación de orígenes de eventos. También es posible que falten métricas si CloudWatch o Lambda están experimentando una disminución de la disponibilidad.

No todas las métricas de asignación de orígenes de eventos están disponibles para cada origen de eventos. Actualmente, las métricas de asignación de orígenes de eventos están disponibles para los orígenes de eventos de flujos de Amazon SQS, Kinesis y DynamoDB. La siguiente matriz de disponibilidad resume las métricas compatibles para cada tipo de origen de eventos.

Métrica de asignación de orígenes de eventos Compatibilidad con Amazon SQS Compatibilidad con flujos de Kinesis y DynamoDB

PolledEventCount

FilteredOutEventCount

InvokedEventCount

FailedInvokeEventCount

DroppedEventCount

No

OnFailureDestinationDeliveredEventCount

No

DeletedEventCount

No

Además, si la asignación de orígenes de eventos está en modo aprovisionado, Lambda proporciona la siguiente métrica:

  • ProvisionedPollers: en el caso de las asignaciones de orígenes de eventos en modo aprovisionado, el número de sondeos de eventos que se ejecuta activamente. Consulta esta métrica mediante la métrica MAX.