DEV Community

Railander Marques
Railander Marques

Posted on • Edited on

4

Monitoramento de Eventos no AWS SES com Filtros no CloudWatch Logs

Introdução:

No cenário da gestão de e-mails, a eficiência na monitorização e análise de eventos críticos é fundamental. Para aprimorar esse processo no AWS SES, foram desenvolvidos filtros específicos, utilizando registros do CloudWatch Logs em /aws/ses/monitoring (nome usado no vídeo deste tutorial).

Esses filtros são projetados para fornecer insights técnicos em três áreas-chave: entregas bem-sucedidas, reclamações de destinatários e bounces. Cada filtro extrai dados essenciais, como timestamp, tipo de notificação, remetente, destinatários e assunto do e-mail. Este enfoque técnico facilita a compreensão e administração direta do serviço SES.

A seguir, detalharemos cada filtro, destacando sua finalidade específica e as métricas técnicas fornecidas. Esses filtros não apenas simplificam a interpretação de eventos críticos, mas também capacitam administradores com controle técnico preciso no ambiente AWS SES.


Diagrama - Como funciona a rastreabilidade?
Image description

Link da Implementação: https://youtu.be/G5UDOBfEBZg


Filtro de Entrega:
Este filtro visa identificar eventos relacionados à entrega de e-mails.
Campos selecionados para exibição: timestamp, tipo de notificação, remetente (mail.source), destinatário principal (Recepient1), destinatário secundário (Recepient2) e assunto do e-mail (Subject).
A filtragem é realizada para selecionar apenas eventos do tipo "Delivery".
Os resultados são ordenados de forma descendente com base no timestamp.

fields @timestamp, notificationType, mail.source as Sender, mail.destination.0 as Recepient1, mail.destination.1 as Recepient2, mail.commonHeaders.subject as Subject
| filter notificationType = "Delivery"
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Filtro de Reclamação (Complaint):
Este filtro tem como objetivo identificar eventos relacionados a reclamações de e-mails por parte dos destinatários.
Campos selecionados para exibição: timestamp, tipo de notificação, remetente (mail.source), destinatário principal (Recepient1), destinatário secundário (Recepient2) e assunto do e-mail (Subject).
A filtragem é realizada para selecionar apenas eventos do tipo "Complaint".
Os resultados são ordenados de forma descendente com base no timestamp.

fields @timestamp, notificationType, mail.source as Sender, mail.destination.0 as Recepient1, mail.destination.1 as Recepient2, mail.commonHeaders.subject as Subject
| filter notificationType = "Complaint"
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Filtro de Bounce:
Este filtro visa identificar eventos relacionados a e-mails que não foram entregues corretamente e foram devolvidos (bounced).
Campos selecionados para exibição: timestamp, tipo de notificação, remetente (mail.source), destinatário principal (Recepient1), destinatário secundário (Recepient2) e assunto do e-mail (Subject).
A filtragem é realizada para selecionar apenas eventos do tipo "Bounce".
Os resultados são ordenados de forma descendente com base no timestamp.

fields @timestamp, notificationType, mail.source as Sender, mail.destination.0 as Recepient1, mail.destination.1 as Recepient2, mail.commonHeaders.subject as Subject
| filter notificationType = "Bounce"
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Filtro mais Abrangente:

fields @timestamp,
       notificationType,
       mail.timestamp as mail_timestamp,
       bounce.bouncedRecipients.0.status as code_status,
       mail.source as Remetente,
       mail.destination.0 as Destinatario_1,
       mail.destination.1 as Destinatario_2,
       mail.destination.2 as Destinatario_3,
       mail.commonHeaders.subject as Assunto,
       mail.commonHeaders.date as Data,
       bounce.bounceType as bounce_type,
       bounce.bounceSubType as bounce_sub_type,
       complaint.complaintFeedbackType as complaint_feedback,
       complaint.complaintSubType as complaint_sub_type,
       delivery.processingTimeMillis as delivery_time,
       delivery.smtpResponse as smtp_response,
       coalesce(bounce.bouncedRecipients[0].emailAddress, '') as bounced_email,
       coalesce(complaint.complainedRecipients[0].emailAddress, '') as complained_email,
       mail.messageId
| filter notificationType in ['Bounce', 'Complaint', 'Delivery']
| sort @timestamp desc
Enter fullscreen mode Exit fullscreen mode

Extra:
Meta Redirect usado no Vídeo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="refresh" content="0;url=https://cloudwatch.amazonaws.com/dashboard.html?dashboard=ses-monitoring&context=XXXXXXXXX---TROQUE-SUA-URL---XXXXXXXXX">
    <meta name="robots" content="noindex, nofollow">
    <title></title>
</head>
<body>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Screenshots:

Image description

Image description

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more