我正在使用Twilio发送MFA SMS以便用户登录。
当我要求Twilio为我发送SMS时,我还会为它提供一个回调URL,当消息的状态已更改时,Twilio会将该URL发送给它。在该回调端点中,使用状态标签(message-status
)即时增加Prometheus计数器。
可能的状态是:已排队,已发送,已交付,失败和未交付,而“健康”状态转换已排队->已发送->已交付。
此外,每次我收到发送短信的请求时,我都会增加另一个简单的普罗米修斯计数器,而这些计数器根本没有标签(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
)更高。
现在,我确定所有消息均已实际发送:
我猜我查询指标的方式是错误的: 我试图删除“增加”功能,而只使用求和功能。然后,我看到两个图都一样,如预期!!
那么当我使用增加值时,怎么可能看不到完全相同的图形? 我究竟做错了什么? 在这种情况下,我应该使用哪些Prometheus函数? 是否有更方便的方法来针对此类指标(总请求数与成功请求数)设置警报?
谢谢!