如果在过去 30 分钟内没有收到消息,则发出警报
Alert if no messages have been received in the last 30 minutes
我正在查询 Prometheus。具有指标的服务公开了指标端点,它包含一个 mymessagingservice_inbox_messagecount 条目,显示收件箱 MSMQ 中有多少消息。
我有一个 MSMQ 收件箱和一个审计收件箱。当消息到达收件箱队列时,我的服务将其从收件箱中删除并将其移至 Autit 队列。我的目标是进行查询以检查在过去 30 分钟内有多少邮件到达收件箱队列。
这就是我的查询:
“mymessagingservice_inbox_messagecount{environment="prod"}[30m]”
当我 运行 它时,所有结果都显示 0。事实是审核队列在 2 分钟前显示一条消息。
不确定我的查询是否正确,或者是否有其他因素影响结果。我唯一能想到的是,消息很快从收件箱队列中取出,Prometheus 对前后端点进行了观察,这样消息就没有被记录下来。
有什么想法吗?
您似乎在使用计量器并仅报告队列中 "pending" 条消息的当前数量。在这里,您会遇到刮擦时间相关的问题 - 因此在大多数情况下不会产生您需要的东西。您的用例听起来像是带有 increase()
函数的 counter
指标的完美示例。
计数器是一种度量类型,它总是增加并计算进入队列的(例如)消息总数。然后,您可以应用 increase()
函数来计算范围向量中第一项和最后一项之间的值的增量(不完全精确)。
increase(mymessagingservice_inbox_messages_total{environment="prod"}[30m])
这意味着您需要以一种方式检测您的代码,以便在新邮件放入收件箱后立即增加计数器。
有关详细信息,请参阅 counters and the increase function. You could also have a look at the metrics of the rabbitmq exporter that does it exactly this way: https://github.com/kbudde/rabbitmq_exporter#queues---counter
上的文档
当一切都设置好后,您可以建立一个规则来计算过去 30 分钟内是否没有增加,条件很简单:
increase(mymessagingservice_inbox_messages_total{environment="prod"}[30m]) == 0
我正在查询 Prometheus。具有指标的服务公开了指标端点,它包含一个 mymessagingservice_inbox_messagecount 条目,显示收件箱 MSMQ 中有多少消息。 我有一个 MSMQ 收件箱和一个审计收件箱。当消息到达收件箱队列时,我的服务将其从收件箱中删除并将其移至 Autit 队列。我的目标是进行查询以检查在过去 30 分钟内有多少邮件到达收件箱队列。 这就是我的查询:
“mymessagingservice_inbox_messagecount{environment="prod"}[30m]”
当我 运行 它时,所有结果都显示 0。事实是审核队列在 2 分钟前显示一条消息。 不确定我的查询是否正确,或者是否有其他因素影响结果。我唯一能想到的是,消息很快从收件箱队列中取出,Prometheus 对前后端点进行了观察,这样消息就没有被记录下来。 有什么想法吗?
您似乎在使用计量器并仅报告队列中 "pending" 条消息的当前数量。在这里,您会遇到刮擦时间相关的问题 - 因此在大多数情况下不会产生您需要的东西。您的用例听起来像是带有 increase()
函数的 counter
指标的完美示例。
计数器是一种度量类型,它总是增加并计算进入队列的(例如)消息总数。然后,您可以应用 increase()
函数来计算范围向量中第一项和最后一项之间的值的增量(不完全精确)。
increase(mymessagingservice_inbox_messages_total{environment="prod"}[30m])
这意味着您需要以一种方式检测您的代码,以便在新邮件放入收件箱后立即增加计数器。
有关详细信息,请参阅 counters and the increase function. You could also have a look at the metrics of the rabbitmq exporter that does it exactly this way: https://github.com/kbudde/rabbitmq_exporter#queues---counter
上的文档当一切都设置好后,您可以建立一个规则来计算过去 30 分钟内是否没有增加,条件很简单:
increase(mymessagingservice_inbox_messages_total{environment="prod"}[30m]) == 0