Project

General

Profile

Download (1.09 KB) Statistics
| Branch: | Tag: | Revision:
class HomeController < ApplicationController
skip_before_action :require_login, :only => [:status]
skip_before_action :authorize, :set_taxonomy, :only => [:status]
skip_before_action :session_expiry, :update_activity_time, :only => :status

def status
respond_to do |format|
format.json do
# make fake db call, measure duration and report errors
result = exception_watch { User.first }
render :json => result, :status => result[:status]
end
format.all { invalid_request }
end
end

private

# check for exception - set the result code and duration time
def exception_watch(&block)
start = Process.clock_gettime(Process::CLOCK_MONOTONIC)
result = {}
begin
yield
result[:result] = 'ok'
result[:status] = :ok
result[:version] = SETTINGS[:version].full
result[:db_duration_ms] = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - start) * 1000).round.to_s
rescue => e
result[:result] = 'fail'
result[:status] = :internal_server_error
result[:message] = e.message
end
result
end
end
(22-22/58)