我正在使用 Twilio 发送 MFA SMS 以供用户登录。
当我要求 Twilio 为我发送 SMS 时,我还向它发送了一个回调 URL,当消息的状态发生更改时,Twilio 将发布它。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
) 更高。
现在,我确定所有消息都已实际传递:
- 查看我的 Twilio 帐户的仪表板
- 查看 pod 的日志(每次这些计数器之一递增时都会打印日志)
- 这些消息是针对我的私人电话的,我得到了它们。
我想我查询指标的方式是错误的:我试图删除“增加”函数,只保留 sum 函数。然后,我看到两个图表是相同的,正如预期的那样!
那么,当我使用增加时,我怎么可能看不到完全相同的图表呢?我究竟做错了什么?对于这种情况,我应该使用哪些 Prometheus 函数?有没有更方便的方法来设置此类指标的警报(针对成功请求的总请求数)?
谢谢!