Commit 83c68ad5 authored by Pawel Chojnacki's avatar Pawel Chojnacki

Move PrometheusController to Prometheus module

parent 14cc2c8a
module Projects
module Prometheus
class MetricsController < Projects::ApplicationController
before_action :authorize_read_project!
before_action :require_prometheus_metrics!
def active
respond_to do |format|
format.json do
matched_metrics = project.prometheus_service.matched_metrics || {}
if matched_metrics.any?
render json: matched_metrics
else
head :no_content
end
end
end
end
private
def require_prometheus_metrics!
render_404 unless project.prometheus_service.present?
end
end
end
end
......@@ -10,7 +10,7 @@
= link_to s_('PrometheusService|More information'), help_page_path('user/project/integrations/prometheus')
.col-lg-9
.panel.panel-default.js-panel-monitored-metrics{ data: { "active-metrics" => "#{project_prometheus_active_metrics_path(@project, :json)}" } }
.panel.panel-default.js-panel-monitored-metrics{ data: { "active-metrics" => "#{active_namespace_project_prometheus_metrics_path(@project, :json)}" } }
.panel-heading
%h3.panel-title
= s_('PrometheusService|Monitored')
......
......@@ -74,9 +74,10 @@ constraints(ProjectUrlConstrainer.new) do
namespace :prometheus do
resources :metrics, constraints: { id: /[^\/]+/ }, only: [:index, :show, :edit, :update, :destroy] do
post :validate_query
get :active
post :validate_query, on: :collection
get :active, on: :collection
end
get :active_metrics
end
......
require('spec_helper')
describe Projects::PrometheusController do
describe Projects::Prometheus::MetricsController do
let(:user) { create(:user) }
let!(:project) { create(:project) }
......@@ -14,7 +14,7 @@ describe Projects::PrometheusController do
sign_in(user)
end
describe 'GET #active_metrics' do
describe 'GET #active' do
context 'when prometheus metrics are enabled' do
context 'when data is not present' do
before do
......@@ -22,7 +22,7 @@ describe Projects::PrometheusController do
end
it 'returns no content response' do
get :active_metrics, project_params(format: :json)
get :active, project_params(format: :json)
expect(response).to have_gitlab_http_status(204)
end
......@@ -36,7 +36,7 @@ describe Projects::PrometheusController do
end
it 'returns no content response' do
get :active_metrics, project_params(format: :json)
get :active, project_params(format: :json)
expect(response).to have_gitlab_http_status(200)
expect(json_response).to eq(sample_response.deep_stringify_keys)
......@@ -45,7 +45,7 @@ describe Projects::PrometheusController do
context 'when requesting non json response' do
it 'returns not found response' do
get :active_metrics, project_params
get :active, project_params
expect(response).to have_gitlab_http_status(404)
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment