Class: RailsPulse::QueriesController

Inherits:
ApplicationController show all
Includes:
ChartTableConcern, MetricCardConcern, TagFilterConcern
Defined in:
app/controllers/rails_pulse/queries_controller.rb

Constant Summary

Constants included from ChartTableConcern

ChartTableConcern::VALID_PERIOD_TYPES

Instance Method Summary collapse

Methods inherited from ApplicationController

#set_global_filters, #set_time_range

Methods included from PaginationConcern

#set_pagination_limit

Instance Method Details

#indexObject



9
10
11
12
# File 'app/controllers/rails_pulse/queries_controller.rb', line 9

def index
  setup_metric_cards
  setup_chart_and_table_data
end

#reanalyzeObject



22
23
24
25
# File 'app/controllers/rails_pulse/queries_controller.rb', line 22

def reanalyze
  @query.update_columns(analyzed_at: nil, explain_plan: nil)
  redirect_to query_path(@query)
end

#setup_chart_data(ransack_params) ⇒ Object

Override to generate database load chart with custom parameters



28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/rails_pulse/queries_controller.rb', line 28

def setup_chart_data(ransack_params)
  super

  # Database load chart doesn't use ransack_query, so generate it separately
  @database_load_chart_data = Queries::Charts::DatabaseLoad.new(
    start_time: @start_time,
    end_time: @end_time,
    period_type: period_type,
    disabled_tags: session_disabled_tags,
    show_non_tagged: session[:show_non_tagged] != false
  ).to_chart_data
end

#showObject



14
15
16
17
18
19
20
# File 'app/controllers/rails_pulse/queries_controller.rb', line 14

def show
  setup_metric_cards
  setup_chart_and_table_data
  @all_query_operations = @query.recent_operations
  @n_plus_one_groups = @query.n_plus_one_groups(@all_query_operations)
  @query.ensure_analyzed!
end