¿Cómo soluciono los errores de limitación en mis registros de CloudWatch?

5 minutos de lectura
0

Recibo el error «RequestLimitExceeded» o «ThrottlingException» cuando uso registros de Amazon CloudWatch y mi llamada a la API está limitada.

Descripción corta

Cuando use registros de CloudWatch, es posible que supere la cuota de velocidad de la API. Cuando esto ocurre, la llamada a la API se limita y recibe un error de RequestLimitExceeded o ThrottlingException Para resolver estos errores, identifique dónde y cuándo se producen los errores de limitación. Luego, realice solicitudes informadas de aumento de cuotas de velocidad.

Resolución

Errores de limitación intermitente en los registros de CloudWatch al acceder a los registros

Para ver los eventos de registro o secuencias de registro, use las llamadas a la API FilterLogEvents o GetLogEvents. Estas llamadas a la API no reúnen los requisitos para un aumento de cuota. Sin embargo, cuando usa la API FilterLogEvents para buscar eventos de registro de un grupo de registros específico, hay una cuota. La cuota es de cinco transacciones por segundo (TPS) por cuenta o región de AWS. Si alcanza este cuota, recibirá el error RateExceeded.

Para evitar estos errores de limitación, utilice un filtro de suscripción para recuperar inmediatamente los datos de registro de los registros de CloudWatch en tiempo real. Para obtener más información, consulte Log group-level subscription filters y Real-time processing of log data with subscriptions.

También se recomienda usar Información de registros de CloudWatch para obtener rápidamente los datos de registro de los registros de CloudWatch. Para ver grupos de registros específicos, use consultas para filtrar los registros. Asegúrese de exportar datos de registro a Amazon Simple Storage Service (Amazon S3) para casos de uso por lotes

Nota: Los datos de registro pueden tardar hasta 12 horas en procesarse antes de poder exportarlos de Registros de CloudWatch. No recomendamos utilizar este método para el análisis y el procesamiento en tiempo real.

Errores de ThrottlingException al usar un script para recuperar los datos de registros de CloudWatch

Para recopilar los registros de CloudWatch, puede crear un script de recopilación. Para extraer datos de diferentes flujos de registro o diferentes períodos de tiempo en el mismo grupo de registros, cree un script que realice una llamada a la API DescribeLogStreams o GetLogEvents. Sin embargo, 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. Si usa estas API en su script, la llamada a la API se limitará y recibirá un error.

Para evitar errores de limitación en este caso de uso, utilice el retroceso exponencial y los reintentos cuando realice una llamada a la API. Para obtener más información, consulte Exponential backoff and jitter y Retry behavior. Asegúrese de distribuir las llamadas a la API a lo largo del tiempo. Programe las acciones de forma aleatoria para que se distribuyan en un período de tiempo.

Puede provocar un error de velocidad si envía llamadas a la API en rápida sucesión. Para evitar este problema, agregue intervalos de reposo entre llamadas a la API consecutivas. Añada también un retraso entre las llamadas a la API que envía el mismo script o aplicación.

Cuando use una solución SIEM (Security Information and Event Management, Administración de Eventos e Información de Seguridad), como Splunk, para recuperar los registros de CloudWatch, el complemento de Splunk puede provocar errores de limitación de la API. Para evitar este problema, cree un filtro de suscripción de registros de CloudWatch con Amazon Data Firehose. A continuación, entregue los datos de registro a Splunk. Para obtener más información, consulte Introduction to the Splunk Add-on for Amazon Web Services en el sitio web de Splunk.

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

Al integrar la llamada a la API PutLogEvents con la función de AWS Lambda, PutLogEvents carga los registros en una secuencia de registros especificada en lotes de 1 MB. Esta API tiene una cuota de velocidad de 5000 transacciones por segundo, por cuenta y por región.

Para obtener más información y solicitar un aumento de la cuota, consulte ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html)CloudWatch Logs quotas[.

Administración de las 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 a la API y notificaciones de alarma por correo electrónico. Para ver sus cuotas de servicio y configurar alarmas si alcanza el umbral, siga estos pasos:

  1. Abra la consola de Service Quotas.
  2. En el panel de navegación, seleccione Servicios de AWS.
  3. En la lista Servicios de AWS, busque Registros de Amazon CloudWatch.
  4. La lista Service Quotas muestra varios atributos u opciones: el nombre de la cuota de servicio, el valor aplicado (si lo hay), 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, elija el nombre de la cuota. Por ejemplo, si elige limitar la cuota de transacciones por segundo de GetLogEvents, verá los siguientes elementos:
    Descripción
    **Código de la cuota **
    ARN de la cuota
    **Utilización: % **
    Valor de cuota aplicado
    Valor predeterminado de la cuota de AWS
    Ajustable: SÍ/NO
  6. En la sección Alarmas de Amazon CloudWatch, elija Crear alarma e introduzca un Umbral de alarma y un Nombre de alarma.

Información relacionada

¿Cómo evito la limitación controlada cuando llamo a PutMetricData en la API de CloudWatch?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 meses