Какие функции Prometheus следует использовать для настройки предупреждения в Grafana о соотношении общего количества запросов и успешных запросов? - PullRequest
1 голос
/ 12 июля 2020

Я использую 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) был выше.

Теперь я знаю точно, что все сообщения были действительно доставлены:

  1. Глядя на панель управления моей учетной записи Twilio
  2. Глядя на журналы модуля (который печатает журнал каждый раз, когда один из этих счетчиков увеличивается)
  3. Сообщения были нацелены на мой личный телефон, и я получил их все.

Я предполагаю, что способ, которым я запросил метрики, неверен: я попытался удалить функция увеличения и оставайтесь только с функцией суммы. Затем я увидел, что оба графика идентичны, как и ожидалось !!

Так как же возможно, что когда я использую увеличение, я не вижу точно такие же графики? Что я делаю не так? Какие функции Prometheus мне следует использовать в подобных случаях? Есть ли более удобный способ настроить оповещение по таким показателям (общее количество запросов против успешных запросов)?

Спасибо!

...