class Dashboard::MetricsController
Public Instance Methods
aggregate()
click to toggle source
# File lib/ezmetrics/dashboard/app/controllers/dashboard/metrics_controller.rb, line 8 def aggregate metrics = ::Ezmetrics::Storage.new(params[:interval]) render json: { simple: simple(metrics), partitioned: partitioned(metrics) } end
index()
click to toggle source
# File lib/ezmetrics/dashboard/app/controllers/dashboard/metrics_controller.rb, line 5 def index end
Private Instance Methods
normalize(metrics_type)
click to toggle source
# File lib/ezmetrics/dashboard/app/controllers/dashboard/metrics_controller.rb, line 32 def normalize(metrics_type) params[metrics_type].split(",").group_by do |p| p.split("_").first end.inject({}) do |result, (metric, values)| result[metric.to_sym] = values.map { |value| value.match(/\_(\w+)/)[1].to_sym } result end end
partition()
click to toggle source
# File lib/ezmetrics/dashboard/app/controllers/dashboard/metrics_controller.rb, line 15 def partition return :minute unless %W[second minute hour].include?(params[:partition].to_s) params[:partition].to_sym end
partitioned(metrics)
click to toggle source
# File lib/ezmetrics/dashboard/app/controllers/dashboard/metrics_controller.rb, line 26 def partitioned(metrics) normalized = normalize(:graph_metrics) return [] if normalized.blank? metrics.partition_by(partition).flatten.show(normalized) end
simple(metrics)
click to toggle source
# File lib/ezmetrics/dashboard/app/controllers/dashboard/metrics_controller.rb, line 20 def simple(metrics) normalized = normalize(:overview_metrics) return [] if normalized.blank? metrics.show(normalized) end