首页 > 解决方案 > 当在Passenger+Nginx+Rails 配置中处理请求需要很长时间时检测/警报

问题描述

我有一个为 Rails 设置了 Nginx 的非企业乘客。

我想知道是否有任何方法可以检测请求是否需要xyz几秒钟。这里的挑战是在处理请求时检测/警报,即在获得响应之前。

出现上述情况的原因是因为我想知道特定请求何时超过了应该执行的明显/预期时间。也许它卡在某个地方,需要人工干预。也许我不可能收到回复,我应该调查一下。(我在这里采取极端情况)。但是除非其他请求处理完整,否则不能直接杀死该进程。因此,在这种情况下,警报足以帮助我。

找到了一些参考资料,例如:

导轨版本:4.1.15

任何线索将不胜感激!TIA

更新(澄清评论中的问题,以便其他人也可以查看): @anothermh 让我们举一个简单的例子,我想进行 API 调用,最终会提醒我进程 PID 上的 XYZ 请求是花费比预期值更长的时间。请看一看。我已经设置了警报系统,只是我也想收到这种情况的通知。

这种警报要求的原因是,有一次,我们最终处于 Rails 进行大量数据库调用并陷入无限循环的状态,而不是只进行一次并继续前进。这种不确定的状态导致 ActiveRecord 查询(Grafana 中的图表)激增,这就是我们如何知道有什么东西被卡住了。但是,如果我们知道请求开始花费的时间比预期的要长,我们本可以更快地采取行动。

标签: ruby-on-railsrubynginxruby-on-rails-4passenger

解决方案


推荐阅读