app/controllers/rearview/monitor_controller.rb
module Rearview
class MonitorController < Rearview::ApplicationController
before_action only: [:create] do
clean_empty_array_vals(:metrics)
end
#
# TODO this should be moved to the JobsController#test and the UI changed to push the
# monitor job model instead of custom params
#
def create
@errors = if params[:metrics].empty?
[ "No metrics were provided" ]
else
metrics_validator = Rearview::MetricsValidator.new({attributes: [:metrics]})
params[:metrics].inject([]) { |a,v| a << "Metrics contains an invalid metric: #{v}" unless(metrics_validator.metric_valid?(v)); a }
end
results = if @errors.empty?
Rearview::MonitorRunner.run(params[:metrics],params[:monitorExpr],params[:minutes],{},false,params[:toDate],true)
else
{ }
end
@monitor_output = Rearview::MonitorRunner.normalize_results(results)
end
end
end