Ir para o conteúdo

Como soluciono erros de controle de utilização de chamadas de API do CloudWatch Logs?

5 minuto de leitura
0

Quando chamo a API do CloudWatch Logs, recebo um erro "RequestLimitExceeded" ou "ThrottlingException".

Breve descrição

Os erros "RequestLimitExceeded" e "ThrottlingException" ocorrem quando suas chamadas de API excedem a cota da taxa do CloudWatch Logs. Para resolver esses erros, identifique onde e quando o controle de utilização ocorre. Em seguida, solicite um aumento da cota da taxa com base em suas descobertas.

Resolução

Resolva erros de controle de utilização intermitente ao acessar seus logs

Se você usar as chamadas de API FilterLogEvents ou GetLogEvents para listar eventos de log ou fluxos de log, suas chamadas de API podem ser limitadas. Essas chamadas de API não se qualificam para um aumento de cota. Quando você usa a API FilterLogEvents para pesquisar eventos de log de um grupo de logs especificado, a cota é de cinco transações por segundo (TPS) por conta da AWS ou região da AWS. Se você atingir essa cota, receberá o erro "RateExceeded".

Para evitar esses erros "RateExceeded", use um filtro de assinatura para recuperar imediatamente os dados de log do CloudWatch Logs em tempo real. Para obter mais informações, consulte os Filtros de assinatura ao nível do grupo de logs e Real-time processamento de dados de registro com assinaturas.

É uma prática recomendada usar o CloudWatch Logs Insights para recuperar dados de log rapidamente. Para visualizar grupos de logs específicos, use consultas para filtrar seus logs. Em casos de uso de lotes, exporte dados de log para o Amazon Simple Storage Service (Amazon S3).

Observação: o CloudWatch Logs leva até 12 horas para processar os dados de log antes que seja possível exportá-los. Não use esse método para análise e processamento em tempo real.

Erros "ThrottlingException" ao usar um script para recuperar dados de log

Se você usar chamadas da API FilterLogEvents, GetLogEvents ou DescribeLogStreams em um script de coletor para recuperar dados de diferentes fluxos de logs ou períodos de tempo, suas chamadas de API podem ser limitadas. Essas chamadas de API são projetadas para interação humana, não automação. Se você usar essas APIs em seu script, pode receber o erro "ThrottlingException".

Para evitar erros de controle de utilização, realize as seguintes ações.

Use recuo exponencial e novas tentativas quando uma chamada de API falhar para evitar o controle de utilização repetido. Para obter mais informações, consulte Tempos limite, novas tentativas e recuo com jitter e Comportamento de repetição.

Use randomização para distribuir suas chamadas de API ao longo do tempo, em vez de enviá-las em rápida sucessão. Além disso, adicione um atraso entre chamadas de API consecutivas no mesmo script ou aplicação.

Quando você usa uma solução de gerenciamento de informações e eventos de segurança (security information and event management, SIEM), como o Splunk, para recuperar logs do CloudWatch, o plug-in do Splunk pode causar erros de controle de utilização da API. Para evitar esse problema, crie um filtro de assinatura de logs do CloudWatch com o Amazon Data Firehose. Em seguida, entregue os dados do log ao Splunk. Para obter mais informações, consulte About the Splunk add-on for Amazon Web Services (Introdução ao complemento Splunk para Amazon Web Services) no site da Splunk.

Solucione erros de controle de utilização ao integrar chamadas da API PutLogEvents com uma função do Lambda

Quando você integra PutLogEvents a uma função do AWS Lambda, a API PutLogEvents carrega logs em um fluxo de logs especificado em lotes de até 1 MB. A API PutLogEvents tem uma cota de taxa de 5.000 transações por segundo (TPS) por conta por região. Se sua função do Lambda exceder essa cota, suas chamadas de API serão limitadas.

Para resolver esse problema, solicite um aumento de cota.

Defina alarmes para as Service Quotas do CloudWatch Logs

A AWS define Service Quotas para proteger o desempenho e manter a disponibilidade. Para visualizar suas Service Quotas do CloudWatch Logs e definir alarmes quando você atingir o limite, conclua as seguintes etapas:

  1. Abra o console do Service Quotas.
  2. No painel de navegação, clique em AWS services (Serviços da AWS).
  3. Na lista de serviços da AWS, pesquise Amazon CloudWatch Logs.
  4. Selecione um nome de cota para ver os detalhes.
    Observação: é possível ver detalhes como o nome do recurso da Amazon (ARN), porcentagem de utilização, valor da cota aplicada, valor da cota padrão e se a cota é ajustável. Por exemplo, selecione GetLogEvents throttle limit in transactions per second (Limite de controle de GetLogEvents em transações por segundo) para ver seus detalhes.
  5. Na seção Amazon CloudWatch alarms (Alarmes do Amazon CloudWatch), clique em Create alarm (Criar alarme) e, em seguida, insira um valor limite e um nome para o alarme.

Informações relacionadas

How do I avoid throttling when I call PutMetricData in the CloudWatch API? (Como evito o controle de utilização ao chamar PutMetricData na API do CloudWatch?)

AWS OFICIALAtualizada há 6 meses