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