显示的Rails鉴于响应时间

问题描述:

我想设置我的Rails应用程序的定制Pingdom的监测,并想手艺,看起来像这样的XML响应:显示的Rails鉴于响应时间

<?xml version="1.0" encoding="UTF-8"?> 
<pingdom_http_custom_check> 
    <status>OK</status> 
    <response_time>210.22</response_time> 
</pingdom_http_custom_check> 

凡response_time值是时间用Rails来呈现XML响应。

我发现了一些resources与杂种这样做,但我使用Apache乘客。

我有作为像这样的屈 - 金属端点实施的解决方案:

class Pingdom < Sinatra::Base 
    set :views, "#{RAILS_ROOT}/app/views/metal" 
    get '/pingdom' do 
    @start_time = Time.now 
    builder :pingdom 
    end 
end 

,然后我有一个助洗剂视图:

xml.instruct! 
xml.pingdom_http_custom_check do |pingdom_http_custom_check| 
    pingdom_http_custom_check.status("OK") 
    pingdom_http_custom_check.response_time(([email protected]_time)*1000) 
end 

(注意response_time以毫秒为单位)。

这个实现足以检查应用程序是否已启动,但事实上它是一个金属端点,意味着它实际上并没有触及主要的Rails应用程序,所以对于当前的响应时间并不是很好的度量我的应用程序。

有没有人有更好的方法什么好建议?

干杯,Arfon

+0

你究竟想要什么时间?总响应时间需要从客户端进行衡量。如何确定当您处于响应中间时需要花费多长时间?也许你应该在Apache级别拦截。 – MattMcKnight 2009-12-17 20:45:51

+0

我想我在寻找两件事情:当前的措施渲染时间为应用程序和应用程序还是否启动。也许New Relic会更适合前者。 – arfon 2009-12-17 21:46:45

响应时间表明什么?你有没有考虑过使用类似侦察兵或新遗物的东西?

这railscast显示实现如Rack中间件类似的方式,propably should'nt是很难修改,以满足您的需求。

http://railscasts.com/episodes/151-rack-middleware