diff --git a/config/metrics/objects_schemas/package_registry_metadata_sync_activation_by_type_metric.json b/config/metrics/objects_schemas/package_registry_metadata_sync_activation_by_type_metric.json new file mode 100644 index 0000000000000000000000000000000000000000..b86c63552243f11c11f5cb08356790194acc50f0 --- /dev/null +++ b/config/metrics/objects_schemas/package_registry_metadata_sync_activation_by_type_metric.json @@ -0,0 +1,8 @@ +{ + "type": "array", + "items": { + "type": [ + "string" + ] + } +} diff --git a/ee/config/metrics/settings/20240229135438_package_metadata_sync_activation_by_type_metric.yml b/ee/config/metrics/settings/20240229135438_package_metadata_sync_activation_by_type_metric.yml new file mode 100644 index 0000000000000000000000000000000000000000..40319cbd3dc8893293db9fd88122834772d422ad --- /dev/null +++ b/ee/config/metrics/settings/20240229135438_package_metadata_sync_activation_by_type_metric.yml @@ -0,0 +1,20 @@ +--- +key_path: settings.package_metadata_sync_activation_by_type_metric +description: "List the package types that have sync enabled to registries" +product_section: sec +product_stage: secure +product_group: composition_analysis +value_type: object +status: active +milestone: "17.0" +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146176 +time_frame: none +data_source: system +data_category: optional +instrumentation_class: PackageRegistryMetadataSyncActivationByTypeMetric +performance_indicator_type: [] +distribution: +- ee +tier: +- ultimate +value_json_schema: "config/metrics/objects_schemas/package_registry_metadata_sync_activation_by_type_metric.json" diff --git a/ee/lib/gitlab/usage/metrics/instrumentations/package_registry_metadata_sync_activation_by_type_metric.rb b/ee/lib/gitlab/usage/metrics/instrumentations/package_registry_metadata_sync_activation_by_type_metric.rb new file mode 100644 index 0000000000000000000000000000000000000000..339fc8a76262d0c30e64e70480af572a9e918a16 --- /dev/null +++ b/ee/lib/gitlab/usage/metrics/instrumentations/package_registry_metadata_sync_activation_by_type_metric.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Gitlab + module Usage + module Metrics + module Instrumentations + class PackageRegistryMetadataSyncActivationByTypeMetric < GenericMetric + def value + ::PackageMetadata::SyncConfiguration.permitted_purl_types + end + end + end + end + end +end diff --git a/ee/spec/lib/gitlab/usage/metrics/instrumentations/package_registry_metadata_sync_activation_by_type_metric_spec.rb b/ee/spec/lib/gitlab/usage/metrics/instrumentations/package_registry_metadata_sync_activation_by_type_metric_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..2d4c9375dd5aa7a746d6a5428530d55dad69ef09 --- /dev/null +++ b/ee/spec/lib/gitlab/usage/metrics/instrumentations/package_registry_metadata_sync_activation_by_type_metric_spec.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Gitlab::Usage::Metrics::Instrumentations::PackageRegistryMetadataSyncActivationByTypeMetric, feature_category: :software_composition_analysis do + let(:expected_value) { PackageMetadata::SyncConfiguration.permitted_purl_types } + let(:expected_query) { expected_value } + + it_behaves_like 'a correct instrumented metric value and query', { time_frame: 'all' } +end