Replace log with StatsD gauge for slow delivery

A gauge is more useful as we can visualise it and combine it with
other stats - we already have other stats for the total number of
notifications sent by provider, and we can extrapolate the number
of slow notifications using this, if needed.

We also still have logs to say the task is running, as well as a
log in the calling code when we actually make a switch [1], so
we're not losing anything by removing the log here.

[1]: a9306c4557/app/celery/scheduled_tasks.py (L117)
This commit is contained in:
Ben Thorner
2021-12-14 12:26:00 +00:00
parent a9306c4557
commit 11278c47f5

View File

@@ -20,7 +20,7 @@ from sqlalchemy.sql import functions
from sqlalchemy.sql.expression import case
from werkzeug.datastructures import MultiDict
from app import create_uuid, db
from app import create_uuid, db, statsd_client
from app.clients.sms.firetext import (
get_message_status_and_reason_from_firetext_code,
)
@@ -565,10 +565,7 @@ def is_delivery_slow_for_providers(
slow_notifications = sum(row.count for row in rows if row.slow)
slow_providers[provider] = (slow_notifications / total_notifications >= threshold)
current_app.logger.info("Slow delivery notifications count for provider {}: {} out of {}. Ratio {}".format(
provider, slow_notifications, total_notifications, slow_notifications / total_notifications
))
statsd_client.gauge(f'slow-delivery.{provider}.ratio', slow_notifications / total_notifications)
return slow_providers