summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2019-04-28 11:53:12 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2019-04-28 11:53:12 +0000
commit536d96a3e02daceca8398745cd27ab1e0f56711d (patch)
tree70c395ae775a7f56352aa88aaec9bd5810a555f3 /app/controllers
parentddee4426c4bd3df8bde7936a6ffb0a1973a4d5a1 (diff)
parent0e093940e1135897b996a5f16239eca62cc6089e (diff)
downloadgitlab-ce-536d96a3e02daceca8398745cd27ab1e0f56711d.tar.gz
Merge branch '60383-setup-dashboard-endpoint' into 'master'
Create dashboards endpoint & setup dashboard post-processing Closes #60383 See merge request gitlab-org/gitlab-ce!27405
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/projects/environments_controller.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index e35f34be23c..1f619c8fd2f 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -10,8 +10,9 @@ class Projects::EnvironmentsController < Projects::ApplicationController
before_action :environment, only: [:show, :edit, :update, :stop, :terminal, :terminal_websocket_authorize, :metrics]
before_action :verify_api_request!, only: :terminal_websocket_authorize
before_action :expire_etag_cache, only: [:index]
- before_action only: [:metrics, :additional_metrics] do
+ before_action only: [:metrics, :additional_metrics, :metrics_dashboard] do
push_frontend_feature_flag(:metrics_time_window)
+ push_frontend_feature_flag(:environment_metrics_use_prometheus_endpoint)
end
def index
@@ -156,6 +157,20 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end
end
+ def metrics_dashboard
+ return render_403 unless Feature.enabled?(:environment_metrics_use_prometheus_endpoint, @project)
+
+ result = Gitlab::Metrics::Dashboard::Service.new(@project, @current_user, environment: environment).get_dashboard
+
+ respond_to do |format|
+ if result[:status] == :success
+ format.json { render status: :ok, json: result }
+ else
+ format.json { render status: result[:http_status], json: result }
+ end
+ end
+ end
+
def search
respond_to do |format|
format.json do