Rails,ActiveSupport :: Notifications - 在响应头中返回指标

时间:2015-08-12 18:34:30

标签: ruby-on-rails notifications metrics activesupport

我正在跟踪请求的基本指标数据,例如在数据库中花费了多少时间,渲染JSON等等...以便开发人员检测/分析,以便我们可以找到并修复慢/坏代码。

我有一个简单的

ActiveSupport::Notifications.subscribe /process_action.action_controller/ do |*args|
  event = ActiveSupport::Notifications::Event.new(*args)
  Rails.logger.info event
end

我可以将指标发送到日志文件(我认为这是Rails 3+已经生成日志文件的方式)。

但是,我还想在响应头中返回一些指标,以便每个请求都能看到数据库与生成视图等的时间等等......

至于“为什么”我想这样做,这是因为我的应用程序的安全性使得开发人员无法访问指标本身,因此使用响应头是一种便宜的方式,允许开发人员开始查看一些基本指标帮助他们修复慢速代码。我知道有些人会告诉我这是一个不好的做法,我并不反对,但我现在需要这样做。

具体问题是,当此订阅者完成时,响应似乎已完成,我无法将指标添加到标题中。

我的想法是控制器中的after_filter可用于此,但我正在努力解决如何访问我订阅的ActiveSupport::Notifications事件...据我所知,没有全球/中心位置,我可以从中检索这些事件。

我已阅读过API和Rails指南,他们对此问题没有多大帮助。

任何人都知道在将响应发送回客户端之前如何访问订阅的事件,以便我可以将指标附加到标题?

0 个答案:

没有答案