Trabalhar com métricas de função do AWS Lambda - AWS Lambda

Trabalhar com métricas de função do AWS Lambda

Quando a função terminar de processar um evento, o Lambda enviará métricas sobre a invocação para o Amazon CloudWatch. É possível criar gráficos e painéis com essas métricas no console do CloudWatch e definir alarmes para responder a alterações na utilização, desempenho ou taxas de erro. Use dimensões para filtrar e classificar métricas de função por nome, alias ou versão da função.

Para visualizar métricas no console do CloudWatch

  1. Abra a página de métricas do console do Amazon CloudWatch (namespace AWS/Lambda).

  2. Escolha uma dimensão.

    • Por nome da função (FunctionName) – visualize métricas agregadas para todas as versões e aliases de uma função.

    • Por recurso (Resource) – visualize métricas para uma versão ou um alias de uma função.

    • Por versão executada (ExecutedVersion) – visualize métricas para uma combinação de alias e versão. Use a dimensão ExecutedVersion para comparar taxas de erro para duas versões de uma função que são ambas destinos de um alias ponderado.

    • Em todas as funções (nenhum) – visualize métricas agregadas para todas as funções na região atual da AWS.

  3. Escolha métricas para adicioná-las ao gráfico.

Por padrão, os gráficos usam a estatística Sum para todas as métricas. Para escolher uma estatística diferente e personalizar o gráfico, use as opções na guia Graphed métricas (Métricas no gráfico).

O timestamp em uma métrica reflete quando a função foi invocada. Dependendo da duração da execução, isso pode representar vários minutos antes de quando a métrica é emitida. Se, por exemplo, a função tiver um tempo-limite de 10 minutos, para obter métricas precisas, procure mais de 10 minutos no passado.

Para obter mais informações sobre o CloudWatch, consulte o Guia do usuário do Amazon CloudWatch.

Usar métricas de invocação

As métricas de invocação são indicadores binários do resultado de uma invocação. Por exemplo, se a função retornar um erro, o Lambda enviará a métrica Errors com um valor de 1. Para obter uma contagem do número de erros da função que ocorrem a cada minuto, visualize Sum da métrica Errors com um período de um minuto.

Você deve visualizar as métricas a seguir com a estatística Sum.

Métricas de invocação

  • Invocations – o número de vezes que o código da função foi executado, incluindo execuções bem-sucedidas e execuções que resultam em um erro de função. As invocações não serão registradas se a solicitação de invocação for limitada ou se resultar em um erro de invocação. Isso é igual ao número de solicitações faturadas.

  • Errors – o número de invocações que resultam em um erro de função. Os erros de função incluem exceções lançadas pelo código e exceções lançadas pelo tempo de execução do Lambda. O tempo de execução retorna um erro para problemas como tempos limite e erros de configuração. Para calcular a taxa de erro, divida o valor de Errors pelo valor de Invocations.

  • DeadLetterErrors – para invocação assíncrona, o número de vezes que o Lambda tenta enviar um evento para uma fila de mensagens mortas, mas falha. Os erros de mensagens mortas podem ocorrer devido a erros de permissões, recursos configurados incorretamente ou limites de tamanho.

  • DestinationDeliveryFailures – para invocação assíncrona, o número de vezes que o Lambda tenta enviar um evento para um destino, mas falha. Os erros de entrega podem ocorrer devido a erros de permissão, recursos configurados incorretamente ou limites de tamanho.

  • Throttles – o número de solicitações de invocação que são limitadas. Quando todas as instâncias da função estão processando solicitações e nenhuma simultaneidade está disponível para expansão, o Lambda rejeita solicitações adicionais com TooManyRequestsException. As solicitações limitadas e outros erros de invocação não contam como Invocations ou Errors.

  • ProvisionedConcurrencyInvocations – o número de vezes que o código da função é executado em simultaneidade provisionada.

  • ProvisionedConcurrencySpilloverInvocations – o número de vezes que o código da função é executado em simultaneidade padrão quando toda a simultaneidade provisionada está em uso.

Usar métricas de desempenho

As métricas de desempenho fornecem detalhes de desempenho sobre uma única invocação. Por exemplo, a métrica Duration indica a quantidade de tempo, em milissegundos, que a função gasta processando um evento. Para ter uma ideia da velocidade de processamento de eventos da função, visualize essas métricas com a estatística Average ou Max.

Métricas de desempenho

  • Duration – quantidade de tempo que o código da função gasta processando um evento. Para o primeiro evento processado por uma instância da função, isso inclui o tempo de inicialização. A duração faturada de uma invocação é o valor de Duration arredondado para os 100 milissegundos mais próximos.

  • IteratorAge – para os mapeamentos da origem do evento que faz a leitura de fluxos, a idade do último registro do evento. A idade é a quantidade de tempo entre quando o fluxo recebe o registro e quando o mapeamento da origem do evento envia o evento à função.

Duration também oferece suporte a estatísticas de percentil. Use os percentis para excluir valores de ponto fora da curva que distorcem as estatísticas média e máxima. Por exemplo, a estatística P95 mostra a duração máxima de 95% das execuções, excluindo os 5% mais lentos.

Usar métricas de simultaneidade

O Lambda relata métricas de simultaneidade como uma contagem agregada do número de instâncias que estão processando eventos em uma função, uma versão, um alias ou uma região da AWS. Para ver se você está próximo de atingir os limites de simultaneidade, visualize essas métricas com a estatística Max.

Métricas de simultaneidade

  • ConcurrentExecutions – o número de instâncias da função que estão processando eventos. Se esse número atingir o limite de execuções simultâneas para a região, ou o limite de simultaneidade reservada, configurado na função, as solicitações de invocação adicionais serão limitadas.

  • ProvisionedConcurrentExecutions – o número de instâncias da função que estão processando eventos na simultaneidade provisionada. Para cada invocação de um alias ou versão com simultaneidade provisionada, o Lambda emite a contagem atual.

  • ProvisionedConcurrencyUtilization – para uma versão ou um alias, o valor de ProvisionedConcurrentExecutions dividido pela quantidade total de simultaneidade provisionada alocada. Por exemplo, .5 indica que 50% da simultaneidade provisionada alocada estão em uso.

  • UnreservedConcurrentExecutions – para uma região da AWS, o número de eventos que estão sendo processados por funções que não têm simultaneidade reservada.