Я использую Twilio для отправки MFA SMS для входа пользователей.
Когда я прошу Twilio отправить мне SMS, я также отправляю ему обратный URL-адрес, который Twilio отправит его, когда статус сообщения был изменен. В этой конечной точке обратного вызова я увеличиваю счетчик Prometheus с меткой состояния (message-status
). Возможные статусы: в очереди, отправлено, доставлено, не удалось и не доставлено, при этом переход статусов «Работоспособен» в очередь -> отправлен -> доставлен.
Кроме того, каждый раз, когда я получаю запрос на отправьте SMS, я увеличиваю еще один простой счетчик прометея, без меток вообще (total-messages
).
Я запросил эти счетчики в Grafana:
sum(increase(message-status{status="delivered"}[1h]))
sum(increase(total_messages[1h]))
Я попытался установить предупреждение о соотношении всех доставленных сообщений к общему количеству отправленных сообщений:
sum(increase(twilio_messages_status{status="delivered"}[1h])) / sum(increase(twilio_total_messages[1h]))
Я провел небольшое тестирование вручную, и графики выглядели не так, как ожидалось; Хотя все отправленные мной сообщения были доставлены успешно, я ожидал, что соотношение между этими двумя показателями будет равно 1, но это не так - счетчик (total-messages
) был выше.
Теперь я знаю точно, что все сообщения были действительно доставлены:
- Глядя на панель управления моей учетной записи Twilio
- Глядя на журналы модуля (который печатает журнал каждый раз, когда один из этих счетчиков увеличивается)
- Сообщения были нацелены на мой личный телефон, и я получил их все.
Я предполагаю, что способ, которым я запросил метрики, неверен: я попытался удалить функция увеличения и оставайтесь только с функцией суммы. Затем я увидел, что оба графика идентичны, как и ожидалось !!
Так как же возможно, что когда я использую увеличение, я не вижу точно такие же графики? Что я делаю не так? Какие функции Prometheus мне следует использовать в подобных случаях? Есть ли более удобный способ настроить оповещение по таким показателям (общее количество запросов против успешных запросов)?
Спасибо!