Je suis en train de mettre en place un suivi Pingdom personnalisé de mon application Rails et je voudrais élaborer une réponse XML qui ressemble à ceci:Rails Affichage Temps de réponse en vue
<?xml version="1.0" encoding="UTF-8"?>
<pingdom_http_custom_check>
<status>OK</status>
<response_time>210.22</response_time>
</pingdom_http_custom_check>
Lorsque la valeur response_time est le temps pris pour Rails pour rendre la réponse XML.
J'ai trouvé quelques resources pour faire cela avec Mongrel mais j'utilise Apache Passenger.
j'ai une solution mise en œuvre comme critère d'évaluation Sinatra-Metal comme ceci:
class Pingdom < Sinatra::Base
set :views, "#{RAILS_ROOT}/app/views/metal"
get '/pingdom' do
@start_time = Time.now
builder :pingdom
end
end
puis-je avoir une vue constructeur:
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
(Notez le response_time est en millisecondes). Cette implémentation est suffisante pour vérifier que l'application est active mais le fait qu'elle soit une extrémité métallique signifie qu'elle ne touche pas réellement l'application Rails principale et n'est donc pas vraiment une très bonne mesure du temps de réponse actuel de ma demande.
Est-ce que quelqu'un a de bonnes suggestions pour une meilleure approche?
Cheers, Arfon
Qu'est-ce que vous essayez de temps exactement? Le temps de réponse total doit être mesuré du côté du client. Comment pouvez-vous savoir combien de temps quelque chose va prendre lorsque vous êtes en train de rendre la réponse? Peut-être que vous devriez intercepter au niveau d'Apache. – MattMcKnight
Je suppose que je cherche deux choses: une mesure du temps de rendu actuel pour l'application et aussi si l'application est en hausse. Peut-être que New Relic serait plus approprié pour le premier. – arfon