Class: Rack::Insight::ActiveResourcePanel

Inherits:
Panel
  • Object
show all
Defined in:
lib/rack/insight/panels/active_resource_panel.rb,
lib/rack/insight/panels/active_resource_panel/query.rb

Defined Under Namespace

Classes: RequestResult

Instance Attribute Summary

Attributes inherited from Panel

#request

Instance Method Summary collapse

Methods inherited from Panel

#after, #before, #bool_prop, #call, #camelized_name, #content, current_panel_file, excluded, file_index, from_file, #handle_error_for, #has_content?, #has_custom_probes?, has_table, #has_table?, #heading, inherited, #initialize, #inspect, #is_magic?, #is_probing?, #name, #panel_app, panel_exclusion, panel_mappings, #render, set_sub_class_template_root, #underscored_name

Methods included from Database::EigenClient

included

Methods included from Instrumentation::EigenClient

included

Methods included from Logging

logger, verbose, verbosity

Methods included from Instrumentation::Client

#before_detect, #probe, #request_finish, #request_start

Methods included from Database::RequestDataClient

#count, #key_sql_template, #retrieve, #store, #table_length, #table_setup

Methods included from Render

#compile, #compile!, #compiled_source, #method_name, #method_name_without_locals, #render_template, #signed_params

Constructor Details

This class inherits a constructor from Rack::Insight::Panel

Instance Method Details

#after_detect(method_call, timing, arguments, results) ⇒ Object

require “rack/insight/panels/sql_panel/panel_app” require “rack/insight/panels/sql_panel/query”



9
10
11
12
13
14
15
# File 'lib/rack/insight/panels/active_resource_panel.rb', line 9

def after_detect(method_call, timing, arguments, results)
  body = "<no body>"
  if results.respond_to? :body
    body = results.body
  end
  store(@env, RequestResult.new(arguments[0], arguments[1..-1], timing.duration, method_call.backtrace[0..5], body))
end

#content_for_request(number) ⇒ Object



28
29
30
31
32
# File 'lib/rack/insight/panels/active_resource_panel.rb', line 28

def content_for_request(number)
  queries = retrieve(number)
  logger.debug{ "ARes: #{queries.inspect}" } if verbose(:debug)
  render_template "panels/active_resource", :queries => queries
end

#heading_for_request(number) ⇒ Object



23
24
25
26
# File 'lib/rack/insight/panels/active_resource_panel.rb', line 23

def heading_for_request(number)
  queries = retrieve(number)
  "ARes: #{queries.size} Queries (%.2fms)" % total_time(queries)
end

#total_time(queries) ⇒ Object



17
18
19
20
21
# File 'lib/rack/insight/panels/active_resource_panel.rb', line 17

def total_time(queries)
  (queries.inject(0) do |memo, query|
    memo + query.time
  end)
end