Guía para la resolución de problemas de recopilación de logs de la función Lambda

Si no ves logs reenviados desde una función Lambda del Datadog Forwarder en el Explorador de logs, sigue los pasos para solucionar problemas que se indican a continuación. Si sigues teniendo problemas después de seguir estos pasos, ponte en contacto con el servicio de asistencia de Datadog para obtener más ayuda.

¿Se envían tus logs a Datadog?

  1. Ve a la vista de Live Tail del Explorador de logs.
  2. En la barra de búsqueda, utiliza un filtro para limitar la vista de Live Tail sólo a la logs procedentes de tu función Lambda. Algunas consultas comunes de búsqueda son:
    • Por fuente: la fuente suele estar configurada comosource:lambda, source:aws o source:cloudwatch, pero puedes encontrar otras fuentes posibles en la funciónparse_event_source en la función Lambda.
    • Por nombre de Forwarder: la función Lambda añade una etiqueta (tag) forwardername a todos los logs que reenvía. Puedes filtrar a través de esta etiqueta buscando forwardername:* o forwardername:<Forwarder_FUNCTION_NAME>.
  3. Si ves logs en Live Tail, pero no en el Explorador de logs, significa que tu índice de logs tiene configurados algunos filtros de exclusión. Estos filtros están filtrando tus logs.
  4. Si no ves logs en Live Tail, los logs no están llegando a Datadog.

Comprobar la pestaña Monitoring (Monitorización) de la función Lambda

Desde la consola AWS

  1. Abre la función Lambda de tu Forwarder.

  2. Haz clic en la pestaña Monitoring (Monitorización).

    Pestaña de monitorización
  3. La pestaña Monitoring (Monitorización) muestra una serie de gráficos que indican la siguiente información sobre tu función Lambda:

    • invocaciones
    • errores
    • logs
  4. Si no ves ningún punto de datos en el gráfico Invocations (Invocaciones), puede que haya un problema con los activadores que has configurado para tu función. Consulte Gestionar los activadores de tu función. Para obtener más información sobre las invocaciones de tu Lambda sin utilizar la pestaña de monitorización, consulta Visualización de métricas Lambda en Datadog.

  5. Si ves puntos de datos en el gráfico “Error count and success rate” (Recuento de errores y tasa de éxito), comprueba los logs de la función Lambda para ver de qué mensajes de error se están informando.

Visualización de métricas Lambda en Datadog

Si has habilitado métricas AWS Lambda, puedes ver métricas relacionadas con invocaciones de Lambda y errores en Datadog. Todas las siguientes métricas tienen la etiqueta functionname:

MétricaDescripción
aws.lambda.invocationsNúmero de veces que se ha activado/invocado la función Lambda
aws.lambda.errorsNúmero de errores que se han producido al invocar la función
aws.lambda.durationTiempo promedio (en milisegundos) que ha tardado en terminar de ejecutarse la función Lambda
aws.lambda.duration.maximumTiempo máximo (en milisegundos) que ha tardado en terminar de ejecutarse la función Lambda
aws.lambda.throttlesNúmero de intentos de invocación que se limitaron debido a que los índices de invocación excedían los límites del cliente

Para obtener más información sobre éstas y otras métricas de AWS Lambda, consulta las métricas AWS Lambda.

Gestionar los activadores de tu función

Para que los logs se reenvíen, la función Lambda del Forwarder debe tener configurados los activadores (CloudWatch Logs o S3). Sigue los pasos que se indican a continuación para asegurarte de que los activadores están configurados correctamente.

  1. ¿Aparece la fuente de tu log (bucket S3 o grupo de logs de CloudWatch) en la lista de “Activadores” en la consola Lambda del Forwarder? Si aparece, asegúrate de que está habilitada. De lo contrario, sigue los pasos que se indican a continuación para buscar en el bucket S3 o en la consola de grupos de logs de CloudWatch, ya que se sabe que la lista de “Activadores” en la consola Lambda es incomprensible.

  2. Para el bucket S3, ve a la pestaña “Properties” (Propiedades) y desplázate hasta “Advanced settings” (Configuración avanzada) y el mosaico “Events” (Eventos), o realiza una consulta utilizando la interfaz de línea de comandos (CLI) de AWS que se indica a continuación. ¿Ves alguna notificación de eventos configurada para activar la función Lambda del Forwarder? Si no es así, necesitas configurar un activador.

    aws s3api get-bucket-notification-configuration --bucket <BUCKET_NAME>
    
  3. Para el grupo de logs de CloudWatch, ve al campo “Subscriptions” (Suscripciones) de la consola del grupo de logs, en la sección “Log group details” (Detalles del grupo de logs). También puedes realizar una consulta utilizando la interfaz de línea de comandos (CLI) de AWS que se indica a continuación. Si el grupo de logs no está suscrito por la función Lambda del Forwarder, necesitas configurar un activador.

    aws logs describe-subscription-filters --log-group-name <LOG_GROUP_NAME>
    
  4. Ajusta los activadores automáticamente o manualmente.

Para el grupo de logs de CloudWatch, puedes utilizar las siguientes métricas de la plataforma Datadog, para confirmar si los logs se envían desde el grupo de logs a la función Lambda del Forwarder. Utiliza la etiqueta log_group para filtrar los datos al visualizar las métricas.

MétricaDescripción
aws.logs.incoming_log_eventsNúmero de eventos de logs cargados en CloudWatch Logs
aws.logs.forwarded_log_eventsNúmero de eventos de logs reenviados al destino de la suscripción
aws.logs.delivery_errorsNúmero de eventos de logs que no se han podido enviar al destino de la suscripción
aws.logs.delivery_throttlingNúmero de eventos de logs con límites para el envío al destino de suscripción

Comprobar logs de la función Lambda

  1. En la pestaña de monitorización, haz clic en View logs in Cloudwatch (Ver logs en CloudWatch).
Logs de Lambda en Cloudwatch
  1. Encuentra el flujo (stream) de logs más reciente.

  2. ¿Ves algún error? Intenta buscar “?ERROR ?Error ?error”.

  3. Configura la variable de entorno “DD_LOG_LEVEL” para “debug” (depurar), en la función Lambda del Forwarder, para habilitar la posterior depuración de logs. Los logs depurados son bastante verbosos, así que recuerda deshabilitar la función después de la depuración.

Leer más