SIENTIAPDE-1174

feat: integrate metrics tracking for sent emails in Email activity

- Added metrics tracking for the number of emails sent, incorporating pod ID, model name, pipeline name, and email group for better monitoring.
- Enhanced logging to provide detailed information on email sending status for each receiver group.
This commit is contained in:
vitor-aignosi
2025-08-01 12:27:59 -03:00
parent 7bb24b42f6
commit ae0fa2fc8a

View File

@@ -2,6 +2,8 @@
from smtplib import SMTPServerDisconnected from smtplib import SMTPServerDisconnected
from temporalio import workflow, activity from temporalio import workflow, activity
from orchestrator import metrics
with workflow.unsafe.imports_passed_through(): with workflow.unsafe.imports_passed_through():
import traceback import traceback
import smtplib import smtplib
@@ -147,7 +149,6 @@ class Email(BaseActivity):
for group_name, group_config in receiver_groups.items(): for group_name, group_config in receiver_groups.items():
try: try:
receivers = ", ".join(group_config['members']) receivers = ", ".join(group_config['members'])
self.info(f"Sending email to {group_name}: {receivers}", self.info(f"Sending email to {group_name}: {receivers}",
@@ -177,6 +178,12 @@ class Email(BaseActivity):
group_config['status'] = 'failed' group_config['status'] = 'failed'
else: else:
group_config['status'] = 'sent' group_config['status'] = 'sent'
metrics.EMAIL_SENT_COUNT.labels(
pod_id=self.pod_id,
model_name=metadata['model_name'],
pipeline_name=metadata['workflow_name'],
email_group=group_name
).inc()
self.info(f"Email sent to {group_name}: {receivers}", self.info(f"Email sent to {group_name}: {receivers}",
metadata=metadata) metadata=metadata)