我正在尝试为我的Rails应用程序设置自定义Pingdom监控,并希望制作一个如下所示的XML响应:
<?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响应所用的时间。
我在Mongrel中找到了一些resources,但我使用的是Apache Passenger。
我有一个像Sinatra-Metal端点一样实现的解决方案:
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((Time.now-@start_time)*1000)
end
(注意response_time以毫秒为单位)。
这个实现足以检查应用程序是否已启动,但事实上它是一个金属端点意味着它实际上没有达到主Rails应用程序,因此实际上并不是衡量当前响应时间的一个非常好的方法。我的应用程序。
有没有人对更好的方法有任何好的建议?
干杯,Arfon
答案 0 :(得分:1)
响应时间表示什么?您是否考虑过使用像侦察兵或新遗物这样的东西?
答案 1 :(得分:1)
这个railscast显示了一种实现类似Rack中间件的方法,可能不应该很难修改以满足您的需求。