¿Cómo determino la limitación en mis registros de CloudWatch?

Última actualización: 09/01/2023

Recibo un error “RequestLimitExceeded” o “ThrottlingException” al trabajar con registros de Amazon CloudWatch y se limita mi llamada a la API.

Descripción breve

Al trabajar con registros de CloudWatch, es posible que supere el límite de frecuencia de la API. Cuando esto sucede, recibe un error RequestLimitExceeded o ThrottlingException y se limita la llamada a la API. Debe identificar dónde y cuándo se produce la limitación para poder resolver estos errores y realizar solicitudes informadas de aumento del límite de frecuencia.

Resolución

Limitación intermitente en los registros de CloudWatch al acceder a los registros

Puede utilizar las llamadas a la API FilterLogEvents o GetLogEvents para enumerar los eventos de registro o los flujos de registro. Estas llamadas a la API tienen un límite estricto y no cumplen los requisitos para un aumento del límite. Esto significa que si utiliza la API FilterLogEvents para buscar eventos de registro de un grupo de registros específico, el valor predeterminado de quaAPI tiene una cuota predeterminada. Esta cuota es de 5 transacciones por segundo (TPS) por cuenta o región de AWS. Si alcanza ese límite, recibirá el error RateExceeded.

Siga estas prácticas recomendadas para evitar errores de limitación en este caso de uso:

Errores ThrottlingException al utilizar una aplicación o script para obtener datos de registro de CloudWatch

Para recopilar registros de CloudWatch, puede desarrollar un script recopilador. Este script intenta realizar una llamada a la API DescribeLogStream o GetLogEvents para extraer datos de diferentes flujos de registro o diferentes marcos de tiempo en el mismo grupo de registros. Las llamadas a la API, como FilterLogEvents, GetLogEvents y DescribeLogStreams, están diseñadas para la interacción humana y no para la automatización. Esto significa que recibe un error y se limita la llamada a la API.

Siga estas prácticas recomendadas para evitar la limitación en este caso de uso:

  • Usa el retroceso exponencial y los reintentos cuando realice una llamada a la API. Para obtener más información, consulte Exponential backoff and jitter (Retroceso exponencial y fluctuación) y Error retries and exponential backoff in AWS (Reintentos de error y retroceso exponencial en AWS).
  • Distribuya sus llamadas a la API en el tiempo. Programe acciones con cierta aleatorización para que se distribuyan durante un periodo de tiempo.
  • Agregue intervalos de inactividad entre llamadas a la API consecutivas. Agregue cierto retardo entre las llamadas a la API que se envían desde el mismo script o aplicación. Si envía llamadas a la API de forma muy seguida, es muy probable que esto cause errores de frecuencia.
  • En algunos casos, puede utilizar una solución SIEM como Splunk para obtener registros de CloudWatch. Las soluciones SIEM se utilizan para recopilar datos de múltiples sistemas y analizarlos para detectar comportamientos inusuales. Es posible que experimente una limitación de API cuando use el complemento Splunk. Para evitar este problema, cree un filtro de suscripción de registros de CloudWatch con Amazon Kinesis Data Firehose y entregue los datos de registro a Splunk. Para obtener más información, consulte la documentación de Splunk para Configure Kinesis inputs for the Splunk Add-on for AWS (Configurar entradas de Kinesis para el complemento de Splunk para AWS).

Errores de limitación al integrar llamadas a la API PutLogEvents con la función de Lambda

La llamada a la API PutLogEvents se utiliza para cargar registros en un flujo de registros especificado en lotes de 1 MB. Esta API tiene un límite de frecuencia de 800 TPS por cuenta y región. Esto se aplica a excepción de las siguientes regiones, donde la cuota es de 1500 TPS por cuenta y región: Este de EE. UU. (Norte de Virginia), Oeste de EE. UU. (Oregón) y Europa (Irlanda). Puede solicitar un aumento de cuota.

Para obtener más información al respecto y solicitar un aumento de cuota, consulte Cuotas de CloudWatch Logs.

Administrar cuotas de servicio de Registros de CloudWatch

AWS define las cuotas de los servicios para proteger el rendimiento y garantizar la disponibilidad. CloudWatch tiene cuotas para métricas, alarmas, solicitudes de API y notificaciones por correo electrónico de alarmas. Siga estos pasos para visualizar sus cuotas de servicio y configurar alarmas si alcanza el umbral:

1.    Abra la consola de Service Quotas.

2.    En el panel de navegación, elija AWS services (servicios de AWS).

3.    En la lista AWS services (Servicios de AWS), busque Amazon CloudWatch logs (Registros de Amazon CloudWatch).

4.    La lista Service quotas (Cuotas de servicio) muestra varios atributos u opciones: el nombre de la cuota de servicio, el valor aplicado (si está disponible), la cuota predeterminada de AWS y si el valor de la cuota es ajustable.

5.    Para ver más información sobre una cuota de servicio, como la descripción, elija el nombre de la cuota.

6.    Después de elegir el nombre de la cuota, podrá ver más información sobre ella. Por ejemplo, si elige GetLogEvents throttle limit in transactions per second (Límite de GetLogEvents para transacciones por segundo), verá los siguientes elementos:

Description (Descripción)

Quota code (Código de la cuota)

Quota ARN (ARN de la cuota)

Utilization: % (Utilización: %)

Applied quota value (Valor de cuota aplicado)

AWS default quota value (Valor de cuota predeterminada de AWS)

Adjustable: Y/N (Ajustable: S/N)

7.    En la sección Amazon CloudWatch alarms (Alarmas de Amazon CloudWatch), elija Create alarm (Crear alarma) e ingrese un valor para Alarm threshold (Umbral de alarma) y Alarm name (Nombre de alarma).


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?