mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-16 10:12:32 -05:00
We current do this as part of send-daily-performance-platform-stats but now this moves it into its own separate task. This is for two reasons - we will shortly get rid of the send-daily-performance-platform-stats task as we no longer will need to send anything to performance platform - even if we did decide to keep the task send-daily-performance-platform-stats and remove the specific bits that relate to the performance platform, it's probably nicer to rewrite the new task from scratch to make sure it's all clear and easy to understand
42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
from datetime import timedelta
|
|
|
|
from flask import current_app
|
|
|
|
from app import performance_platform_client
|
|
from app.dao.notifications_dao import (
|
|
dao_get_total_notifications_sent_per_day_for_performance_platform,
|
|
)
|
|
from app.utils import get_london_midnight_in_utc
|
|
|
|
|
|
def send_processing_time_to_performance_platform(bst_date):
|
|
start_time = get_london_midnight_in_utc(bst_date)
|
|
end_time = get_london_midnight_in_utc(bst_date + timedelta(days=1))
|
|
|
|
send_processing_time_for_start_and_end(start_time, end_time, bst_date)
|
|
|
|
|
|
def send_processing_time_for_start_and_end(start_time, end_time, bst_date):
|
|
result = dao_get_total_notifications_sent_per_day_for_performance_platform(start_time, end_time)
|
|
|
|
current_app.logger.info(
|
|
'Sending processing-time to performance platform for date {}. Total: {}, under 10 secs {}'.format(
|
|
start_time, result.messages_total, result.messages_within_10_secs
|
|
)
|
|
)
|
|
|
|
send_processing_time_data(start_time, 'messages-total', result.messages_total)
|
|
send_processing_time_data(start_time, 'messages-within-10-secs', result.messages_within_10_secs)
|
|
|
|
|
|
def send_processing_time_data(start_time, status, count):
|
|
payload = performance_platform_client.format_payload(
|
|
dataset='processing-time',
|
|
start_time=start_time,
|
|
group_name='status',
|
|
group_value=status,
|
|
count=count
|
|
)
|
|
|
|
performance_platform_client.send_stats_to_performance_platform(payload)
|