{"id":14766,"date":"2024-05-20T14:48:52","date_gmt":"2024-05-20T17:48:52","guid":{"rendered":"https:\/\/uds.com.br\/blog\/?p=14766"},"modified":"2024-10-31T14:32:35","modified_gmt":"2024-10-31T17:32:35","slug":"aplicacoes-serveless-como-criar-alertas-monitoramento","status":"publish","type":"post","link":"https:\/\/uds.com.br\/blog\/aplicacoes-serveless-como-criar-alertas-monitoramento\/","title":{"rendered":"Guia pr\u00e1tico de como Monitorar Aplica\u00e7\u00f5es Serverless na AWS"},"content":{"rendered":"\n<p>A explos\u00e3o das arquiteturas serverless est\u00e1 redefinindo as regras do jogo no desenvolvimento e na gest\u00e3o de aplica\u00e7\u00f5es. Mais do que um avan\u00e7o, esse tipo de arquitetura desafia estrat\u00e9gias de <strong>monitoramento<\/strong> e <strong><a href=\"https:\/\/uds.com.br\/blog\/observabilidade-de-software\/\">observabilidade<\/a><\/strong> afinal, manter a estabilidade de solu\u00e7\u00f5es exige um olhar atento e meticuloso sobre os indicadores vitais de suas aplica\u00e7\u00f5es serveless. E entender o que est\u00e1 lento, quebrado ou que precisa de aten\u00e7\u00e3o \u00e9 importante para manter a disponibilidade.&nbsp;<\/p>\n\n\n\n<p>Neste artigo, vamos explorar as m\u00e9tricas obrigat\u00f3rias do CloudWatch para <a href=\"https:\/\/uds.com.br\/blog\/amazon-aws-lambda-o-que-e\/\">Lambda<\/a>, SNS e SQS, que v\u00e3o manter suas aplica\u00e7\u00f5es serverless a todo vapor e tirar o m\u00e1ximo potencial delas.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Monitoramento: o check-up b\u00e1sico<\/strong><\/h2>\n\n\n\n<p>O servi\u00e7o de monitoramento serverless oferece a capacidade de acompanhar, analisar e aperfei\u00e7oar suas aplica\u00e7\u00f5es. Adaptado ao design espec\u00edfico da arquitetura orientada por eventos (EDA), esse tipo de monitoramento \u00e9 <em>tailor-made<\/em> para o contexto serverless. Ele emprega m\u00e9tricas precisas para sinalizar \u00e0s equipes eventuais problemas, o que garante uma opera\u00e7\u00e3o fluida e eficiente.<\/p>\n\n\n\n<p>Imagine o monitoramento da sua aplica\u00e7\u00e3o serverless como um check-up regular com seu m\u00e9dico. Essa \u00e9 a sua linha de defesa inicial, que assegura que os batimentos card\u00edacos de sua infraestrutura, desde a execu\u00e7\u00e3o b\u00e1sica at\u00e9 a opera\u00e7\u00e3o de m\u00f3dulos de software espec\u00edficos, estejam funcionando sem problemas.&nbsp;<\/p>\n\n\n\n<p>Em um <a href=\"https:\/\/uds.com.br\/blog\/arquitetura-serverless-o-que-e-como-usar\/\">ambiente serverless<\/a>, onde voc\u00ea delega a gest\u00e3o da <a href=\"https:\/\/uds.com.br\/blog\/aws-cloudfront-o-que-e-cdn-amazon\/\">infraestrutura \u00e0 AWS<\/a>, o monitoramento torna-se crucial para identificar e remediar rapidamente qualquer disfun\u00e7\u00e3o operacional.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>A import\u00e2ncia da observabilidade<\/strong><\/h3>\n\n\n\n<p>Embora frequentemente usados como sin\u00f4nimos, observabilidade e monitoramento n\u00e3o s\u00e3o conceitos id\u00eanticos. Monitoramento refere-se \u00e0 coleta de m\u00e9tricas e logs predefinidos, fornecendo uma vis\u00e3o superficial da sa\u00fade do sistema. Por outro lado, a observabilidade permite uma introspec\u00e7\u00e3o profunda, o que capacita as equipes a entender e diagnosticar estados desconhecidos do sistema, indo al\u00e9m das m\u00e9tricas predefinidas para explorar o desconhecido.<\/p>\n\n\n\n<p>Dessa forma, se o monitoramento \u00e9 o check-up, a observabilidade \u00e9 seu teste de condicionamento f\u00edsico, e assegura n\u00e3o s\u00f3 que cada parte est\u00e1 funcionando como deveria, mas que est\u00e3o trabalhando juntas de forma eficiente para cumprir tarefas.&nbsp;<\/p>\n\n\n\n<p>Ferramentas como o <strong>AWS CloudWatch<\/strong> s\u00e3o essenciais, pois oferecem <em>insights<\/em> detalhados sobre cada aspecto de sua aplica\u00e7\u00e3o, e permitem uma compreens\u00e3o profunda do &#8220;porqu\u00ea&#8221; por tr\u00e1s do comportamento dos sistemas.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Aqui est\u00e1 uma aplica\u00e7\u00e3o serverless t\u00edpica que processa eventos que disparam outros servi\u00e7os da AWS:<\/strong><\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/ba5-GAzW3xLj4PO2Qw17NKwQ_nqrxulZpZRb_gSoO37MvOeQnQ3Y7MWUPiYmz--B5mlkuTdIPoimBJSiVamWL0twexqPYv3XDe_65wnEYJTkp5ULE_1RVq5tvPmJ401tp_0mmfjt7T4kxdT_ksCgojc\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Reprodu\u00e7\u00e3o: v\u00eddeo &#8220;Back to basics: must-have alerts for serveless aplications&#8221;, Amazon Web Services.<\/figcaption><\/figure><\/div>\n\n\n<p>Tratado como uma opera\u00e7\u00e3o at\u00f4mica, \u00e9 importante rastrear o que est\u00e1 acontecendo entre os servi\u00e7os e identificar quaisquer problemas e por que eles ocorrem. As cinco coisas que voc\u00ea vai querer ficar de olho s\u00e3o:&nbsp;<\/p>\n\n\n\n<ul>\n<li><strong>Limites de Concorr\u00eancia:<\/strong> monitora quantas inst\u00e2ncias executam ao mesmo tempo para evitar ultrapassar limites estabelecidos;<\/li>\n\n\n\n<li><strong>Erros:<\/strong> observa falhas na execu\u00e7\u00e3o das fun\u00e7\u00f5es para corre\u00e7\u00e3o r\u00e1pida e manuten\u00e7\u00e3o da sa\u00fade da aplica\u00e7\u00e3o;<\/li>\n\n\n\n<li><strong>Falhas na DLQ (Dead Letter Queue):<\/strong> identifica mensagens que n\u00e3o foram processadas, sinalizando problemas que necessitam corre\u00e7\u00e3o;<\/li>\n\n\n\n<li><strong>Falhas na entrega de destino:<\/strong> verifica problemas ao enviar dados a outros servi\u00e7os, indicando falhas de conectividade ou configura\u00e7\u00e3o;<\/li>\n\n\n\n<li><strong>Idade das mensagens em stream:<\/strong> mede o tempo de espera das mensagens para processamento, ajudando a evitar atrasos.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Navegando pelos desafios de performance e erros em aplica\u00e7\u00f5es serverless com AWS<\/strong><\/h2>\n\n\n\n<p>As aplica\u00e7\u00f5es serverless, especialmente aquelas constru\u00eddas sobre o AWS Lambda, oferecem uma elasticidade e escalabilidade significativas, o que permite que empresas se adaptem rapidamente a varia\u00e7\u00f5es de demanda sem o \u00f4nus de um planejamento de capacidade pr\u00e9vio.&nbsp;<\/p>\n\n\n\n<p>No entanto, gerenciar e otimizar o desempenho dessas aplica\u00e7\u00f5es requer um olhar atento a certos indicadores-chave e a implementa\u00e7\u00e3o de alertas estrat\u00e9gicos. Vamos explorar como voc\u00ea pode utilizar as m\u00e9tricas e alertas para manter suas aplica\u00e7\u00f5es serverless rodando de forma suave e eficiente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Alertas para picos de desempenho com AWS Lambda<\/strong><\/h2>\n\n\n\n<p>AWS Lambda \u00e9 uma ferramenta formid\u00e1vel que se ajusta automaticamente a picos de demanda, mas \u00e9 vital compreender a frequ\u00eancia e o volume dessas invoca\u00e7\u00f5es. Com limites padr\u00e3o de 1000 invoca\u00e7\u00f5es simult\u00e2neas por regi\u00e3o, um olhar cuidadoso para a m\u00e9trica de execu\u00e7\u00f5es simult\u00e2neas torna-se indispens\u00e1vel.&nbsp;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>\u2192 Um exemplo da medi\u00e7\u00e3o com as m\u00e9tricas de execu\u00e7\u00f5es simult\u00e2neas:&nbsp;<\/strong><\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/dwAF-iFq_UALg_v9I-mp3rcQl4-bZUlEteMRz2L7banABI743VWXSglAExyIY-p25pV8aE7l9fzDGyV3qzka0GEHT49mHE0Cr-QKAj9-g-j4zHcJ2WCCS-c8Uy9zYKTCDOQzuZAIHkHGjwDOldGYOUg\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Reprodu\u00e7\u00e3o: v\u00eddeo &#8220;Back to basics: must-have alerts for serveless aplications&#8221;, Amazon Web Services.<\/figcaption><\/figure><\/div>\n\n\n<p>Pense nisso como a unidade de escala. Configurar um alerta em torno de 80% \u00e9 uma boa maneira de ver quando e com que frequ\u00eancia voc\u00ea est\u00e1 se aproximando do m\u00e1ximo. Dependendo das necessidades de tempo de resposta da sua aplica\u00e7\u00e3o, voc\u00ea pode considerar a m\u00e9trica de limites de rejei\u00e7\u00e3o se n\u00e3o estiver usando limites de concorr\u00eancia reservados.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/qU1r5cm0XO4k2r4eeOWJ1tf3GYd0xuv63mwc1l_ziejsWpV0F-3vU-TDTnmV5jDhf0YJwtZN34X2_F-ecAXAFB7Ar2kIRNBZ5Fog7P-X6whPg_Fx1aYahbMzEmfOjBU0QOIRGMY_yziSoenRoDrBkRU\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Reprodu\u00e7\u00e3o: v\u00eddeo &#8220;Back to basics: must-have alerts for serveless aplications&#8221;, Amazon Web Services.<\/figcaption><\/figure><\/div>\n\n\n<h4 class=\"wp-block-heading\"><strong>O desafio dos falsos positivos<\/strong><\/h4>\n\n\n\n<p>\u00c9 preciso cautela ao configurar esses alertas, j\u00e1 que eles tamb\u00e9m podem levar a falsos positivos. Ajustar seus alertas para refletir as necessidades reais de tempo de resposta da sua aplica\u00e7\u00e3o e as peculiaridades do seu ambiente operacional pode ajudar a mitigar esse risco.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Alertas e c\u00e1lculo de taxas de erro com AWS CloudWatch<\/strong><\/h2>\n\n\n\n<p>Em seguida, vamos dar uma olhada nos alertas de erro. Se suas fun\u00e7\u00f5es Lambda estiverem gerando muitos erros, isso pode causar uma degrada\u00e7\u00e3o real na experi\u00eancia do usu\u00e1rio e deix\u00e1-lo bastante irritado tamb\u00e9m. Compreender a taxa na qual esses erros est\u00e3o ocorrendo \u00e9 realmente importante.<\/p>\n\n\n\n<p>\u00c9 aqui que entra a matem\u00e1tica que o CloudWatch usa para calcular as taxas de erro. A sacada \u00e9 ajustar o limiar de alerta para o seu Acordo de N\u00edvel de Servi\u00e7o. Por exemplo, se o seu SLA estipula que 99% das fun\u00e7\u00f5es devem ter sucesso, ent\u00e3o defina o alerta de taxa de erro para 1%. V\u00e1rios servi\u00e7os da AWS, como SNS e S3, processam seus eventos de forma ass\u00edncrona.<\/p>\n\n\n\n<p>Vale lembrar ainda que o Lambda coloca os eventos em uma fila de mensagens mortas (Dead Letter Queue), e um processo separado realmente os l\u00ea antes de envi\u00e1-los para sua fun\u00e7\u00e3o. Ele tenta execut\u00e1-lo tr\u00eas vezes com esperas de um minuto nas duas primeiras tentativas, depois tr\u00eas na terceira tentativa, antes de retornar um erro. As fun\u00e7\u00f5es podem ter erros de permiss\u00e3o, recursos mal configurados ou atingir limites de tamanho.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/6aBjsO-pf4m1Q3hs9QLli4yGkKmiZMmJqPdPwDBXRG1hpqYLOFQCCQlvEYmgUDPHbKRBl3D6jgTQsRyLSOhJGpb0WocG6s9di6mwnkM5dg4gLrCURrbEwJjWgkvFD-lry6Zs5AH3hULTXUX-qB2Xfsc\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Reprodu\u00e7\u00e3o: v\u00eddeo &#8220;Back to basics: must-have alerts for serveless aplications&#8221;, Amazon Web Services.<\/figcaption><\/figure><\/div>\n\n\n<p>Portanto, configurar uma m\u00e9trica de erro de Dead Letter Queue permite que voc\u00ea acompanhe quantas vezes isso acontece. Semelhante \u00e0s filas de mensagens mortas (DLQ), as fun\u00e7\u00f5es podem enviar um evento para um destino. Estes podem ser uma SQSQ, um t\u00f3pico SNS, uma fun\u00e7\u00e3o Lambda ou um barramento de eventos. Todos podem falhar, ent\u00e3o configurar um alerta contra uma m\u00e9trica de falha na entrega do destino \u00e9 uma boa ideia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Analisando o desempenho e a efici\u00eancia das fun\u00e7\u00f5es<\/strong><\/h2>\n\n\n\n<p>Outro aspecto crucial \u00e9 monitorar a &#8220;idade do iterador&#8221; em servi\u00e7os de streaming como Kinesis ou Kafka. Essa m\u00e9trica indica o tempo de processamento das mensagens, servindo como um indicador de desempenho. Um aumento nessa m\u00e9trica sugere que a aplica\u00e7\u00e3o est\u00e1 atrasada na leitura de novas mensagens, potencialmente levando a perda de dados.<\/p>\n\n\n\n<p>No pior dos casos, voc\u00ea pode experimentar perda de dados, j\u00e1 que os dados nos fluxos s\u00e3o mantidos apenas por 24 horas por padr\u00e3o.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/4xylt_P0EUel_PK4WbNK6p1A7Puk2r1zqbDf1IZ9AncOTqOr3yV9DtN-9KiMp-5alCxaRDiceDMO5HGOrZlHYi3Q9KzRTP6WjH_Um9V6oZt-wKKRDbTKpHzs9hMyGIDkvgW0AX1sGEMpt1M-Tf8qTgQ\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Reprodu\u00e7\u00e3o: v\u00eddeo &#8220;Back to basics: must-have alerts for serveless aplications&#8221;, Amazon Web Services.<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Proatividade como chave para o sucesso<\/strong><\/h2>\n\n\n\n<p>Em conclus\u00e3o, o monitoramento e a observabilidade n\u00e3o s\u00e3o apenas ferramentas reativas; elas s\u00e3o a espinha dorsal de uma estrat\u00e9gia proativa para manter suas aplica\u00e7\u00f5es serverless com bom desempenho. Implementando os alertas sugeridos e mantendo-se vigilante \u00e0s m\u00e9tricas, voc\u00ea garante n\u00e3o apenas a sa\u00fade operacional da sua aplica\u00e7\u00e3o, mas tamb\u00e9m oferece uma experi\u00eancia de usu\u00e1rio impec\u00e1vel.<\/p>\n\n\n\n<p>Lembrando sempre que, em um ambiente serverless, onde muitos aspectos da infraestrutura n\u00e3o s\u00e3o gerenciados para voc\u00ea, a aten\u00e7\u00e3o aos detalhes no monitoramento e na observabilidade permite que voc\u00ea mantenha certo n\u00edvel de&nbsp; controle, otimize recursos e, o mais importante, antecipe-se aos problemas antes que eles impactem seus usu\u00e1rios.<\/p>\n\n\n\n<p>Desfrute dos benef\u00edcios da nuvem com confian\u00e7a e seguran\u00e7a.<\/p>\n\n\n\n<p><strong>Descubra mais nos conte\u00fados a seguir:&nbsp;<\/strong><\/p>\n\n\n\n<ul>\n<li><a href=\"https:\/\/aws.amazon.com\/pt\/blogs\/compute\/managing-aws-lambda-function-concurrency\/#:~:text=In%20AWS%20Lambda%2C%20which%20is,happening%20at%20any%20given%20time\">Managing AWS Lambda Function Concurrency<\/a>;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/lambda\/latest\/dg\/monitoring-metrics.html\">Working with Lambda function metrics<\/a>;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/lambda\/latest\/dg\/invocation-async.html\">Asynchronous invocation<\/a>;<\/li>\n<\/ul>\n\n\n\n<ul>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/lambda\/latest\/dg\/gettingstarted-features.html#gettingstarted-features-destinations\">Additional Lambda features<\/a>.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Gostou desse conte\u00fado e quer saber mais sobre como a Consultoria Cloud da UDS pode te ajudar a ter ainda mais performance? Preencha o formul\u00e1rio para saber mais: <\/p>\n\n\n\n<div role=\"main\" id=\"blog-cloud-formulario-0f247f0c5f2b482e857d\"><\/div><script type=\"text\/javascript\" src=\"https:\/\/d335luupugsy2.cloudfront.net\/js\/rdstation-forms\/stable\/rdstation-forms.min.js\"><\/script><script type=\"text\/javascript\"> new RDStationForms('blog-cloud-formulario-0f247f0c5f2b482e857d', 'UA-92829983-1').createForm();<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Para monitorar aplica\u00e7\u00f5es serverless na AWS, \u00e9 essencial usar m\u00e9tricas do CloudWatch, como limites de concorr\u00eancia, erros, falhas em filas mortas (DLQ), falhas de entrega e idade de mensagens em stream. O monitoramento serverless permite identificar problemas e manter a disponibilidade das fun\u00e7\u00f5es. Al\u00e9m do monitoramento, a observabilidade fornece uma vis\u00e3o profunda e auxilia na detec\u00e7\u00e3o proativa de falhas. <\/p>\n","protected":false},"author":36,"featured_media":14768,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[953,438,986],"tags":[],"yst_prominent_words":[],"_links":{"self":[{"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/posts\/14766"}],"collection":[{"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/comments?post=14766"}],"version-history":[{"count":0,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/posts\/14766\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/media\/14768"}],"wp:attachment":[{"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/media?parent=14766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/categories?post=14766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/tags?post=14766"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/uds.com.br\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=14766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}