From 191b4805bf90d73b9817843928daef1a29598fec Mon Sep 17 00:00:00 2001 From: Laurence de Bruxelles Date: Wed, 26 Nov 2025 12:41:44 +0200 Subject: [PATCH 1/3] Rename submission_email_sent event to submission_sent In future the send submission job could send submissions by methods other than email, so the name of this event should be more generic. --- app/jobs/send_submission_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jobs/send_submission_job.rb b/app/jobs/send_submission_job.rb index 5e8dd0020..ac378b85a 100644 --- a/app/jobs/send_submission_job.rb +++ b/app/jobs/send_submission_job.rb @@ -18,7 +18,7 @@ def perform(submission) ) milliseconds_since_scheduled = (Time.current - scheduled_at_or_enqueued_at).in_milliseconds.round - EventLogger.log_form_event("submission_email_sent", { milliseconds_since_scheduled: }) + EventLogger.log_form_event("submission_sent", { milliseconds_since_scheduled: }) CloudWatchService.record_submission_sent_metric(milliseconds_since_scheduled) rescue StandardError CloudWatchService.record_job_failure_metric(self.class.name) From 28ce3ef56141ba69be28fd83d6590bc82ca27f3a Mon Sep 17 00:00:00 2001 From: Laurence de Bruxelles Date: Wed, 26 Nov 2025 12:44:24 +0200 Subject: [PATCH 2/3] Use same time for delivery attempt in submission record and metrics --- app/jobs/send_submission_job.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/jobs/send_submission_job.rb b/app/jobs/send_submission_job.rb index ac378b85a..1bf5ad823 100644 --- a/app/jobs/send_submission_job.rb +++ b/app/jobs/send_submission_job.rb @@ -10,14 +10,15 @@ def perform(submission) set_submission_logging_attributes(submission) message_id = AwsSesSubmissionService.new(submission:).submit + sent_at = Time.zone.now submission.update!( mail_message_id: message_id, delivery_status: :pending, - last_delivery_attempt: Time.zone.now, + last_delivery_attempt: sent_at, ) - milliseconds_since_scheduled = (Time.current - scheduled_at_or_enqueued_at).in_milliseconds.round + milliseconds_since_scheduled = (sent_at - scheduled_at_or_enqueued_at).in_milliseconds.round EventLogger.log_form_event("submission_sent", { milliseconds_since_scheduled: }) CloudWatchService.record_submission_sent_metric(milliseconds_since_scheduled) rescue StandardError From d64caba1d8b1f873f40b882ec96e5ad9604e5b2b Mon Sep 17 00:00:00 2001 From: Laurence de Bruxelles Date: Thu, 27 Nov 2025 09:59:28 +0200 Subject: [PATCH 3/3] Change logging of sent submission to be more like logging of submit Refactor the `submission_sent` event logging so that it is similar to the logging of the `submit` event; add a method for it to the LogEventService, change the event name depending on whether the submission is for a form preview or not, and log the submission type and format. --- app/jobs/send_submission_job.rb | 2 +- app/services/log_event_service.rb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/jobs/send_submission_job.rb b/app/jobs/send_submission_job.rb index 1bf5ad823..60bf0a932 100644 --- a/app/jobs/send_submission_job.rb +++ b/app/jobs/send_submission_job.rb @@ -19,7 +19,7 @@ def perform(submission) ) milliseconds_since_scheduled = (sent_at - scheduled_at_or_enqueued_at).in_milliseconds.round - EventLogger.log_form_event("submission_sent", { milliseconds_since_scheduled: }) + LogEventService.log_submission_sent(submission, milliseconds_since_scheduled:) CloudWatchService.record_submission_sent_metric(milliseconds_since_scheduled) rescue StandardError CloudWatchService.record_job_failure_metric(self.class.name) diff --git a/app/services/log_event_service.rb b/app/services/log_event_service.rb index 70851a767..e38e6ecf5 100644 --- a/app/services/log_event_service.rb +++ b/app/services/log_event_service.rb @@ -29,6 +29,19 @@ def self.log_submit(context, requested_email_confirmation:, preview:, submission end end + def self.log_submission_sent(submission, **kwargs) + additional_context = { + submission_type: submission.form.submission_type, + submission_format: submission.form.submission_format, + }.merge(kwargs) + + if submission.preview? + EventLogger.log_form_event("preview_submission_sent", additional_context) + else + EventLogger.log_form_event("submission_sent", additional_context) + end + end + def log_page_save EventLogger.log_page_event(log_event, @step.question.question_text, skipped_question?) if is_starting_form?