1

我正在使用 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) 更高。

现在,我确定所有消息都已实际传递:

  1. 查看我的 Twilio 帐户的仪表板
  2. 查看 pod 的日志(每次这些计数器之一递增时都会打印日志)
  3. 这些消息是针对我的私人电话的,我得到了它们。

我想我查询指标的方式是错误的:我试图删除“增加”函数,只保留 sum 函数。然后,我看到两个图表是相同的,正如预期的那样!

那么,当我使用增加时,我怎么可能看不到完全相同的图表呢?我究竟做错了什么?对于这种情况,我应该使用哪些 Prometheus 函数?有没有更方便的方法来设置此类指标的警报(针对成功请求的总请求数)?

谢谢!

4

0 回答 0