From abe01c0bc057c3764a450d3b368bec507e1ebcf5 Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Tue, 11 Dec 2018 15:14:08 +0000 Subject: [PATCH 1/2] Revert "Switch providers on slow delivery only produces logs" This reverts commit 6938600ab89c5c058a77e4411fd067daebd64685. --- app/celery/scheduled_tasks.py | 4 ++-- tests/app/celery/test_scheduled_tasks.py | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/celery/scheduled_tasks.py b/app/celery/scheduled_tasks.py index 1c8d561c7..148749994 100644 --- a/app/celery/scheduled_tasks.py +++ b/app/celery/scheduled_tasks.py @@ -37,7 +37,7 @@ from app.dao.notifications_dao import ( ) from app.dao.provider_details_dao import ( get_current_provider, - # dao_toggle_sms_provider + dao_toggle_sms_provider ) from app.dao.service_callback_api_dao import get_service_delivery_status_callback_api_for_service from app.dao.services_dao import ( @@ -274,7 +274,7 @@ def switch_current_sms_provider_on_slow_delivery(): ) ) - # dao_toggle_sms_provider(current_provider.identifier) + dao_toggle_sms_provider(current_provider.identifier) @notify_celery.task(name="delete-inbound-sms") diff --git a/tests/app/celery/test_scheduled_tasks.py b/tests/app/celery/test_scheduled_tasks.py index a0c621529..b2fee242a 100644 --- a/tests/app/celery/test_scheduled_tasks.py +++ b/tests/app/celery/test_scheduled_tasks.py @@ -400,7 +400,6 @@ def test_send_total_sent_notifications_to_performance_platform_calls_with_correc ]) -@pytest.mark.skip(reason="Not switching it on yet") def test_switch_providers_on_slow_delivery_switches_once_then_does_not_switch_if_already_switched( notify_api, mocker, From af185adf4c96f50dd7b11a547680593db7610938 Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Tue, 11 Dec 2018 15:28:38 +0000 Subject: [PATCH 2/2] Log the ratio of slow notifications --- app/celery/scheduled_tasks.py | 2 +- app/dao/notifications_dao.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/celery/scheduled_tasks.py b/app/celery/scheduled_tasks.py index 148749994..aff2ba452 100644 --- a/app/celery/scheduled_tasks.py +++ b/app/celery/scheduled_tasks.py @@ -258,7 +258,7 @@ def switch_current_sms_provider_on_slow_delivery(): """ current_provider = get_current_provider('sms') if current_provider.updated_at > datetime.utcnow() - timedelta(minutes=10): - current_app.logger.info("Slow delivery provider switched less than 10 minutes ago.") + current_app.logger.info("Slow delivery notifications provider switched less than 10 minutes ago.") return slow_delivery_notifications = is_delivery_slow_for_provider( provider=current_provider.identifier, diff --git a/app/dao/notifications_dao.py b/app/dao/notifications_dao.py index f5b733033..93592dfc2 100644 --- a/app/dao/notifications_dao.py +++ b/app/dao/notifications_dao.py @@ -467,8 +467,13 @@ def is_delivery_slow_for_provider( counts = {c[0]: c[1] for c in count} total_notifications = sum(counts.values()) + slow_notifications = counts.get(True, 0) + if total_notifications: - return counts.get(True, 0) / total_notifications >= threshold + current_app.logger.info("Slow delivery notifications count: {} out of {}. Ratio {}".format( + slow_notifications, total_notifications, slow_notifications / total_notifications + )) + return slow_notifications / total_notifications >= threshold else: return False