diff --git a/enterprise/app/controllers/api/v1/accounts/applied_slas_controller.rb b/enterprise/app/controllers/api/v1/accounts/applied_slas_controller.rb index 63c2f9c15..15b9a295b 100644 --- a/enterprise/app/controllers/api/v1/accounts/applied_slas_controller.rb +++ b/enterprise/app/controllers/api/v1/accounts/applied_slas_controller.rb @@ -5,13 +5,9 @@ class Api::V1::Accounts::AppliedSlasController < Api::V1::Accounts::EnterpriseAc before_action :set_sla_responses, only: [:metrics] before_action :check_admin_authorization? - sort_on :created_at, type: :datetime - def metrics - total_applied_slas = @sla_responses.count - missed_applied_slas = @sla_responses.where(sla_status: :missed).count - @hit_percentage = total_applied_slas.zero? ? 0 : ((total_applied_slas - missed_applied_slas) / total_applied_slas.to_f) * 100 - @number_of_breaches = missed_applied_slas + @total_applied_slas = @sla_responses.count + @number_of_sla_breaches = @sla_responses.where(sla_status: :missed).count end private diff --git a/enterprise/app/views/api/v1/accounts/applied_slas/metrics.json.jbuilder b/enterprise/app/views/api/v1/accounts/applied_slas/metrics.json.jbuilder index f792875fa..265e756fe 100644 --- a/enterprise/app/views/api/v1/accounts/applied_slas/metrics.json.jbuilder +++ b/enterprise/app/views/api/v1/accounts/applied_slas/metrics.json.jbuilder @@ -1,2 +1,2 @@ -json.hit_percentage @hit_percentage -json.number_of_breaches @number_of_breaches +json.total_applied_slas @total_applied_slas +json.number_of_sla_breaches @number_of_sla_breaches diff --git a/spec/enterprise/controllers/api/v1/accounts/applied_slas_controller_spec.rb b/spec/enterprise/controllers/api/v1/accounts/applied_slas_controller_spec.rb index c83bcdc82..c9f145d57 100644 --- a/spec/enterprise/controllers/api/v1/accounts/applied_slas_controller_spec.rb +++ b/spec/enterprise/controllers/api/v1/accounts/applied_slas_controller_spec.rb @@ -27,8 +27,8 @@ RSpec.describe 'Applied SLAs API', type: :request do expect(response).to have_http_status(:success) body = JSON.parse(response.body) - expect(body).to include('hit_percentage' => 100.0) - expect(body).to include('number_of_breaches' => 0) + expect(body).to include('total_applied_slas' => 1) + expect(body).to include('number_of_sla_breaches' => 0) end it 'filters sla metrics based on a date range' do @@ -42,8 +42,8 @@ RSpec.describe 'Applied SLAs API', type: :request do expect(response).to have_http_status(:success) body = JSON.parse(response.body) - expect(body).to include('hit_percentage' => 100.0) - expect(body).to include('number_of_breaches' => 0) + expect(body).to include('total_applied_slas' => 1) + expect(body).to include('number_of_sla_breaches' => 0) end it 'filters sla metrics based on a date range and agent ids' do @@ -58,8 +58,8 @@ RSpec.describe 'Applied SLAs API', type: :request do expect(response).to have_http_status(:success) body = JSON.parse(response.body) - expect(body).to include('hit_percentage' => 66.66666666666666) - expect(body).to include('number_of_breaches' => 1) + expect(body).to include('total_applied_slas' => 3) + expect(body).to include('number_of_sla_breaches' => 1) end it 'filters sla metrics based on sla policy ids' do @@ -74,8 +74,8 @@ RSpec.describe 'Applied SLAs API', type: :request do expect(response).to have_http_status(:success) body = JSON.parse(response.body) - expect(body).to include('hit_percentage' => 50.0) - expect(body).to include('number_of_breaches' => 1) + expect(body).to include('total_applied_slas' => 2) + expect(body).to include('number_of_sla_breaches' => 1) end it 'filters sla metrics based on labels' do @@ -92,8 +92,8 @@ RSpec.describe 'Applied SLAs API', type: :request do expect(response).to have_http_status(:success) body = JSON.parse(response.body) - expect(body).to include('hit_percentage' => 50.0) - expect(body).to include('number_of_breaches' => 1) + expect(body).to include('total_applied_slas' => 2) + expect(body).to include('number_of_sla_breaches' => 1) end end end