Registro e métricas paraAWS Lambda - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registro e métricas paraAWS Lambda

Lambdaelimina a necessidade de gerenciar e monitorar servidores para suas cargas de trabalho e trabalha automaticamente com CloudWatchMétricas e CloudWatch Registra sem configuração ou instrumentação adicional do código do seu aplicativo. Esta seção ajuda você a entender as características de desempenho dos sistemas usados pelo Lambda e como suas escolhas de configuração influenciam o desempenho. Ele também ajuda você a registrar e monitorar suas funções do Lambda para otimizar o desempenho e diagnosticar problemas no nível do aplicativo.

Registro de funções Lambda

O Lambda transmite automaticamente a saída padrão e as mensagens de erro padrão de uma função do Lambda para CloudWatch Registros, sem a necessidade de drivers de registro. O Lambda também provisiona automaticamente contêineres que executam sua função Lambda e os configura para gerar mensagens de log em fluxos de log separados.

As invocações subsequentes da sua função do Lambda podem reutilizar o mesmo contêiner e a saída para o mesmo fluxo de log. O Lambda também pode provisionar um novo contêiner e enviar a invocação para um novo fluxo de log.

O Lambda cria automaticamente um grupo de registros quando sua função do Lambda é invocada pela primeira vez. As funções do Lambda podem ter várias versões e você pode escolher a versão que deseja executar. Todos os registros das invocações da função Lambda são armazenados no mesmo grupo de registros. O nome não pode ser alterado e está no/aws/lambda/<YourLambdaFunctionName>formato. Um fluxo de log separado é criado no grupo de logs para cada instância da função Lambda. O Lambda tem uma convenção de nomenclatura padrão para fluxos de log que usa umYYYY/MM/DD/[<FunctionVersion>]<InstanceId>formato. OInstanceIdé gerado porAWSpara identificar a instância da função Lambda.

Recomendamos que você formate suas mensagens de log no formato JSON, pois você pode consultá-las mais facilmente com CloudWatch Informações sobre registros. Eles também podem ser filtrados e exportados com mais facilidade. Você pode usar uma biblioteca de registros para simplificar esse processo ou escrever suas próprias funções de manipulação de registros. Recomendamos que você use uma biblioteca de registros para ajudar a formatar e classificar as mensagens de registro. Por exemplo, se sua função Lambda estiver escrita em Python, você poderá usar oMódulo de registro em Pythonpara registrar mensagens e controlar o formato de saída. O Lambda usa nativamente a biblioteca de registro do Python para funções do Lambda escritas em Python, e você pode recuperar e personalizar o registrador na sua função do Lambda.AWS O Labs criou oAWSLambda Powertools para Pythonkit de ferramentas para desenvolvedores para facilitar o enriquecimento de mensagens de log com dados importantes, como partidas a frio. O kit de ferramentas está disponível para Python, Java, Typescript e .NET.

Outra prática recomendada é definir o nível de saída do log usando uma variável e ajustá-la com base no ambiente e nos seus requisitos. O código da função do Lambda, além das bibliotecas usadas, pode gerar uma grande quantidade de dados de log, dependendo do nível de saída do log. Isso pode afetar seus custos de registro e afetar o desempenho.

O Lambda permite que você defina variáveis de ambiente para o ambiente de execução da função Lambda sem atualizar seu código. Por exemplo, você pode criar umLAMBDA_LOG_LEVELvariável de ambiente que define o nível de saída do log que você pode recuperar do seu código. O exemplo a seguir tenta recuperar umLAMBDA_LOG_LEVELvariável de ambiente e use o valor para definir a saída de registro. Se a variável de ambiente não estiver definida, o padrão será oINFOnível.

import logging from os import getenv logger = logging.getLogger() log_level = getenv("LAMBDA_LOG_LEVEL", "INFO") level = logging.getLevelName(log_level) logger.setLevel(level)

Enviando registros para outros destinos de CloudWatch

Você pode enviar registros para outros destinos (por exemplo, Amazon). OpenSearch Serviço (ou função Lambda) usando filtros de assinatura. Se você não usa a Amazon OpenSearch Serviço, você pode usar uma função Lambda para processar os registros e enviá-los para umAWSserviço de sua escolha usando oAWSSDKs.

Você também pode usar SDKs para destinos de log fora doAWSUse a nuvem em sua função Lambda para enviar diretamente declarações de log para um destino de sua escolha. Se você escolher essa opção, recomendamos que considere o impacto da latência, do tempo adicional de processamento, do tratamento de erros e novas tentativas e do acoplamento da lógica operacional à sua função Lambda.

Métricas de função do Lambda

O Lambda permite que você execute seu código sem gerenciar ou escalar servidores, e isso quase elimina a carga de auditoria e diagnóstico em nível de sistema. No entanto, ainda é importante entender as métricas de desempenho e invocação no nível do sistema para suas funções do Lambda. Isso ajuda você a otimizar a configuração dos recursos e melhorar o desempenho do código. Monitorar e medir o desempenho de forma eficaz pode melhorar a experiência do usuário e reduzir seus custos ao dimensionar adequadamente suas funções do Lambda. Normalmente, as cargas de trabalho executadas como funções do Lambda também têm métricas em nível de aplicativo que precisam ser capturadas e analisadas. O Lambda suporta diretamente o formato métrico incorporado para tornar a captura em nível de aplicativo CloudWatch métricas mais fáceis.

Métricas em nível de sistema

O Lambda se integra automaticamente com CloudWatch Métricas e fornece um conjunto demétricas padrão para suas funções do Lambda. O Lambda também fornece um painel de monitoramento separado para cada função do Lambda com essas métricas. Duas métricas importantes que você precisa monitorar são erros e erros de invocação. Entender as diferenças entre erros de invocação e outros tipos de erro ajuda você a diagnosticar e oferecer suporte às implantações do Lambda.

Erros de invocaçãoevite que sua função Lambda seja executada. Esses erros ocorrem antes da execução do código, portanto, você não pode implementar o tratamento de erros no código para identificá-los. Em vez disso, você deve configurar alarmes para suas funções do Lambda que detectem esses erros e notifiquem as operações e os proprietários da carga de trabalho. Esses erros geralmente estão relacionados a um erro de configuração ou permissão e podem ocorrer devido a uma alteração na configuração ou nas permissões. Os erros de invocação podem iniciar uma nova tentativa, o que causa várias invocações da sua função.

Uma função Lambda invocada com sucesso retorna uma resposta HTTP 200 mesmo que uma exceção seja lançada pela função. Suas funções do Lambda devem implementar o tratamento de erros e gerar exceções para que oErrorsa métrica captura e identifica execuções com falha da sua função Lambda. Você deve retornar uma resposta formatada de suas invocações de função do Lambda que inclua informações para determinar se a execução falhou completamente, parcialmente ou foi bem-sucedida.

CloudWatch forneceCloudWatch Insights do Lambdaque você pode ativar para funções individuais do Lambda. O Lambda Insights coleta, agrega e resume métricas em nível de sistema (por exemplo, tempo de CPU, memória, disco e uso da rede). O Lambda Insights também coleta, agrega e resume informações de diagnóstico (por exemplo, partidas a frio e desligamentos de funcionários do Lambda) para ajudá-lo a isolar e resolver problemas rapidamente.

O Lambda Insights usa o formato métrico incorporado para emitir automaticamente informações de desempenho para o/aws/lambda-insights/grupo de registros com um prefixo de nome de fluxo de registros baseado no nome da sua função do Lambda. Esses eventos de registro de desempenho criam CloudWatch métricas que são a base da automação CloudWatch painéis. Recomendamos que você habilite o Lambda Insights para testes de desempenho e ambientes de produção. Métricas adicionais criadas pelo Lambda Insights incluemmemory_utilizationisso ajuda a dimensionar corretamente as funções do Lambda para que você evite pagar por capacidade não necessária.

Métricas da aplicação

Você também pode criar e capturar suas próprias métricas de aplicativo no CloudWatch usando o formato métrico incorporado. Você pode aproveitarBibliotecas fornecidas pela AWS para formato métrico incorporadopara criar e emitir declarações de formato métrico incorporado para CloudWatch. O Lambda integrado CloudWatch o recurso de registro está configurado para processar e extrair instruções de formato métrico incorporado formatadas adequadamente.