Skip to content
Snippets Groups Projects
Commit 4b9a487a authored by Alan (Maciej) Paruszewski's avatar Alan (Maciej) Paruszewski
Browse files

Merge branch '375284-add-metrics-for-govern-security-policies-02' into 'master'

Add metrics for groups with assigned security policy project

See merge request !99957



Merged-by: Alan (Maciej) Paruszewski's avatarAlan (Maciej) Paruszewski <mparuszewski@gitlab.com>
Approved-by: default avatarMichał Zając <mzajac@gitlab.com>
Approved-by: default avatarPiotr Skorupa <pskorupa@gitlab.com>
Co-authored-by: default avatarPiotr Skorupa <pskorupa@gitlab.com>
parents 7c8dce4e 63b308d4
No related branches found
No related tags found
No related merge requests found
Pipeline #666016333 passed
Pipeline: GitLab

#666022474

    Pipeline: GitLab

    #666020960

      ---
      key_path: usage_activity_by_stage_monthly.govern.distinct_count_namespace_id_from_security_orchestration_policy_configurations
      description: "The total number of groups with an assigned security policy project"
      product_section: sec
      product_stage: govern
      product_group: security_policies
      product_category: security_policy_management
      value_type: number
      status: active
      milestone: "15.5"
      introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/99957
      time_frame: 28d
      data_source: database
      data_category: operational
      instrumentation_class: CountGroupsWithAssignedSecurityPolicyProjectMetric
      distribution:
      - ee
      tier:
      - ultimate
      ---
      key_path: usage_activity_by_stage.govern.distinct_count_namespace_id_from_security_orchestration_policy_configurations
      description: "The total number of groups with an assigned security policy project"
      product_section: sec
      product_stage: govern
      product_group: security_policies
      product_category: security_policy_management
      value_type: number
      status: active
      milestone: "15.5"
      introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/99957
      time_frame: all
      data_source: database
      data_category: operational
      instrumentation_class: CountGroupsWithAssignedSecurityPolicyProjectMetric
      distribution:
      - ee
      tier:
      - ultimate
      # frozen_string_literal: true
      module Gitlab
      module Usage
      module Metrics
      module Instrumentations
      class CountGroupsWithAssignedSecurityPolicyProjectMetric < DatabaseMetric
      operation :distinct_count, column: :namespace_id
      relation { ::Security::OrchestrationPolicyConfiguration }
      start { ::Security::OrchestrationPolicyConfiguration.minimum(:namespace_id) }
      finish { ::Security::OrchestrationPolicyConfiguration.maximum(:namespace_id) }
      end
      end
      end
      end
      end
      # frozen_string_literal: true
      require 'spec_helper'
      RSpec.describe Gitlab::Usage::Metrics::Instrumentations::CountGroupsWithAssignedSecurityPolicyProjectMetric do
      before_all do
      create(:security_orchestration_policy_configuration, created_at: 2.months.ago)
      create(:security_orchestration_policy_configuration, :namespace, created_at: 2.months.ago)
      create(:security_orchestration_policy_configuration, created_at: 25.days.ago)
      create(:security_orchestration_policy_configuration, :namespace, created_at: 25.days.ago)
      end
      it_behaves_like 'a correct instrumented metric value and query', { time_frame: 'all', data_source: 'database' } do
      let(:expected_value) { 2 }
      let(:expected_query) do
      'SELECT COUNT(DISTINCT "security_orchestration_policy_configurations"."namespace_id") ' \
      'FROM "security_orchestration_policy_configurations"'
      end
      end
      it_behaves_like 'a correct instrumented metric value and query', { time_frame: '28d', data_source: 'database' } do
      let(:expected_value) { 1 }
      let(:start) { 30.days.ago.to_s(:db) }
      let(:finish) { 2.days.ago.to_s(:db) }
      let(:expected_query) do
      "SELECT COUNT(DISTINCT \"security_orchestration_policy_configurations\".\"namespace_id\") " \
      "FROM \"security_orchestration_policy_configurations\" " \
      "WHERE \"security_orchestration_policy_configurations\".\"created_at\" BETWEEN '#{start}' AND '#{finish}'"
      end
      end
      end
      0% Loading or .
      You are about to add 0 people to the discussion. Proceed with caution.
      Finish editing this message first!
      Please register or to comment