Ir para o conteúdo

Como soluciono erros de controle de utilização nos meus logs do CloudWatch?

5 minuto de leitura
0

Eu recebo um erro “RequestLimitExceeded” ou “ThrottlingException” quando trabalho com Amazon CloudWatch Logs e minha chamada de API é limitada.

Breve descrição

Ao trabalhar com os logs do CloudWatch, você pode exceder a cota de taxa da API. Quando isso acontece, sua chamada de API é limitada e você recebe um erro RequestLimitExceeded ou ThrottlingException. Para resolver esses erros, identifique onde e quando os erros de controle de utilização ocorrem. Em seguida, faça solicitações informadas de aumento da cota tarifária.

Resolução

Erros intermitentes de controle de utilização no CloudWatch Logs quando você acessa os logs

Para listar seus eventos de logs ou fluxos de logs, use as chamadas de API FilterLogEvents ou GetLogEvents. Essas chamadas de API não se qualificam para um aumento de cota. No entanto, quando você usa a API FilterLogEvents para pesquisar eventos de logs de um grupo de logs especificado, há uma cota. 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 de controle de utilização, use um filtro de assinatura para recuperar imediatamente os dados dos logs do CloudWatch em tempo real. Para obter mais informações, consulte os filtros de assinatura no nível do grupo de logs e processamento em tempo real dos dados de log com assinaturas.

Também é uma prática recomendada usar o CloudWatch Logs Insights para obter rapidamente dados dos logs do CloudWatch. Para visualizar grupos de logs específicos, use consultas para filtrar seus logs. Certifique-se de exportar os dados de log para o Amazon Simple Storage Service (Amazon S3) para casos de uso em lote.

Observação: Os dados de log podem levar até 12 horas para serem processados antes que você possa exportar os dados do CloudWatch Logs. Não é uma prática recomendada usar esse método para análise e processamento em tempo real.

Erros de ThrottlingException ao usar um script para recuperar dados de log do CloudWatch

Para coletar logs do CloudWatch, você pode desenvolver um script de coletor. Para extrair dados de diferentes fluxos de logs ou períodos de tempo diferentes no mesmo grupo de logs, crie o script que faz uma chamada de API DescribeLogStreams ou GetLogEvents. No entanto, as chamadas de API, como FilterLogEvents, GetLogEvents e DescribeLogStreams, são projetadas para interação humana e não para automação. Se você usar essas APIs em seu script, a chamada de API será limitada e você receberá um erro.

Para evitar erros de controle de utilização nesse caso de uso, use o recuo exponencial e tente novamente ao fazer uma chamada de API. Para obter mais informações, consulte Recuo exponencial e instabilidade e Comportamento de repetição. Certifique-se de distribuir suas chamadas de API ao longo do tempo. Agende ações com randomização para que elas sejam distribuídas por um período de tempo.

Você pode causar um erro de taxa se enviar chamadas de API em rápida sucessão. Para evitar esse problema, adicione intervalos de sono entre chamadas de API consecutivas. Além disso, adicione um atraso entre as chamadas de API enviadas pelo mesmo script ou aplicação.

Quando você usa uma solução de gerenciamento de informações e eventos de segurança (SIEM), como o Splunk, para recuperar logs do CloudWatch, o plugin 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 de logs ao Splunk. Para obter mais informações, consulte Introdução ao complemento Splunk para Amazon Web Services no site da Splunk.

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

Quando você integra a chamada de API PutLogEvents à sua função do AWS Lambda, a PutLogEvents carrega logs em um stream de logs especificado em lotes de 1 MB. Essa API tem uma cota de taxa de 5.000 transações por segundo, por conta, por região.

Para obter mais informações e solicitar um aumento de cota, consulte Cotas do CloudWatch Logs.

Gerencie suas Service Quotas do CloudWatch Logs

A AWS define cotas de serviços para proteger o desempenho e garantir a disponibilidade. O CloudWatch tem cotas para métricas, alarmes, solicitações de API e notificações por e-mail de alarmes. Para ver suas Service Quotas e definir alarmes se você atingir o limite, conclua as seguintes etapas:

  1. Abra o console do Service Quotas.
  2. No painel de navegação, escolha serviços da AWS.
  3. Na lista de serviços da AWS, pesquise os Amazon CloudWatch Logs.
  4. A lista de Service Quotas mostra vários atributos ou opções: o nome da cota de serviço, o valor aplicado (se estiver disponível), a cota padrão da AWS e se o valor da cota é ajustável.
  5. Para consultar mais informações sobre uma cota de serviço, escolha o nome da cota. Por exemplo, se você escolher o limite do GetLogEvents em transações por segundo, verá os seguintes itens:
    Descrição
    Código de cota
    Cota ARN
    Utilização: %
    Valor da cota aplicada
    Valor da cota padrão da AWS
    Ajustável: S/N
  6. Na seção de alarmes do Amazon CloudWatch, escolha Criar alarme e insira um limite de alarme e um nome de alarme.

Informações relacionadas

Como evito a controle de utilização ao chamar PutMetricData na API do CloudWatch?