class Rails::NewRelicMetrics::UnusedActions
Public Instance Methods
all()
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 9 def all controllers.map { |controller| metric_names(controller) } .flatten .each_slice(100) .map { |metric_names| unused(metric_names) } .flatten end
for(controller)
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 4 def for(controller) metric_names = metric_names(controller) unused(metric_names) end
Private Instance Methods
api()
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 34 def api @api ||= API.new(api_key, app_id) end
call_counts(metric_names)
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 25 def call_counts(metric_names) metrics = metric_names.map { |metric_name| "metrics[]=#{metric_name}" }.join('&') api.json("applications/#{app_id}/data.json?#{metrics}&field=call_count&summary=1&begin=#{two_weeks_ago}&end=#{now}") end
controllers()
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 30 def controllers ::ApplicationController.descendants end
metric_name(controller, action)
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 42 def metric_name(controller, action) "Controller/#{controller.controller_path}/#{action}" end
metric_names(controller)
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 38 def metric_names(controller) controller.action_methods.map { |action| metric_name(controller, action) } end
now()
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 46 def now Time.now.utc.iso8601 end
two_weeks_ago()
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 50 def two_weeks_ago (Time.now - 60*60*24*30).utc.iso8601 end
unused(metric_names)
click to toggle source
# File lib/rails/newrelic_metrics/unused_actions.rb, line 19 def unused(metric_names) response = call_counts(metric_names) response.select { |metric| metric['call_count'].to_i == 0 } .map { |metric| metric['name'][11..metric['name'].length] } end