2009-12-17 8 views
0

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

+0

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

+0

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

Répondre

1

Qu'est-ce que le temps de réponse indique? Avez-vous envisagé d'utiliser quelque chose comme scout ou nouvelle relique à la place?