diff --git a/app/views/projects/settings/operations/_observability.html.haml b/app/views/projects/settings/operations/_observability.html.haml index 482a0703b8de2aa6c0736798cf1601926dec54d4..5c88b05217649edb2bb130ae497f6dacaa1cfccf 100644 --- a/app/views/projects/settings/operations/_observability.html.haml +++ b/app/views/projects/settings/operations/_observability.html.haml @@ -1,3 +1,3 @@ -- return unless can?(current_user, :read_tracing, @project) || can?(current_user, :read_observability_metrics, @project) || can?(current_user, :read_observability_logs, @project) +- return unless can?(current_user, :read_observability, @project) .js-observability-settings diff --git a/config/feature_flags/development/observability_metrics.yml b/config/feature_flags/development/observability_metrics.yml deleted file mode 100644 index c8bb1d3c2e286e6c87424e87438cfadda3f9fadd..0000000000000000000000000000000000000000 --- a/config/feature_flags/development/observability_metrics.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: observability_metrics -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134393 -rollout_issue_url: https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2444 -milestone: '16.6' -type: development -group: group::observability -default_enabled: false diff --git a/config/feature_flags/wip/observability_features.yml b/config/feature_flags/wip/observability_features.yml new file mode 100644 index 0000000000000000000000000000000000000000..d878d66174bbb470f2fc936452104343d8987bbf --- /dev/null +++ b/config/feature_flags/wip/observability_features.yml @@ -0,0 +1,8 @@ +--- +name: observability_features +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158786 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/472815 +milestone: '17.3' +type: wip +group: group::observability +default_enabled: false \ No newline at end of file diff --git a/config/feature_flags/wip/observability_logs.yml b/config/feature_flags/wip/observability_logs.yml deleted file mode 100644 index 8b262d268b37d983df69d577607b00a46b2c6721..0000000000000000000000000000000000000000 --- a/config/feature_flags/wip/observability_logs.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: observability_logs -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142989 -rollout_issue_url: https://gitlab.com/gitlab-org/opstrace/opstrace/-/issues/2643 -milestone: '16.9' -type: wip -group: group::observability -default_enabled: false diff --git a/ee/app/controllers/projects/logs_controller.rb b/ee/app/controllers/projects/logs_controller.rb index 5370bf695c7735cc9e87f2f0574970c6544bad99..d1833325e3a31be60b91adca7037e040ef831d42 100644 --- a/ee/app/controllers/projects/logs_controller.rb +++ b/ee/app/controllers/projects/logs_controller.rb @@ -6,7 +6,7 @@ class LogsController < Projects::ApplicationController feature_category :metrics - before_action :authorize_read_observability_logs! + before_action :authorize_read_observability! def index; end end diff --git a/ee/app/controllers/projects/metrics_controller.rb b/ee/app/controllers/projects/metrics_controller.rb index f7dcb6097547411bbdd4ace056bc9b3c801c1050..84a93adcabc2b8ced0ea0228b97f4b2e882c0d28 100644 --- a/ee/app/controllers/projects/metrics_controller.rb +++ b/ee/app/controllers/projects/metrics_controller.rb @@ -6,7 +6,7 @@ class MetricsController < Projects::ApplicationController feature_category :metrics - before_action :authorize_read_observability_metrics! + before_action :authorize_read_observability! def index; end diff --git a/ee/app/controllers/projects/tracing_controller.rb b/ee/app/controllers/projects/tracing_controller.rb index cf82c44095301b625c2ab1fc7ed8e064969862fb..838174ac4d9bda08f10e31669c93737067c7897d 100644 --- a/ee/app/controllers/projects/tracing_controller.rb +++ b/ee/app/controllers/projects/tracing_controller.rb @@ -6,7 +6,7 @@ class TracingController < Projects::ApplicationController feature_category :tracing - before_action :authorize_read_tracing! + before_action :authorize_read_observability! def index; end diff --git a/ee/app/models/gitlab_subscriptions/features.rb b/ee/app/models/gitlab_subscriptions/features.rb index 627857413829ce7a1dda87425b7c89fa05df3a67..a1a169c44c95e58b5b9e849aadb104c0839f28be 100644 --- a/ee/app/models/gitlab_subscriptions/features.rb +++ b/ee/app/models/gitlab_subscriptions/features.rb @@ -134,8 +134,6 @@ class Features admin_merge_request_approvers_rules merge_trains metrics_reports - metrics_observability - logs_observability multiple_alert_http_integrations multiple_approval_rules multiple_group_issue_boards @@ -262,7 +260,7 @@ class Features status_page suggested_reviewers subepics - tracing + observability unique_project_download_limit vulnerability_finding_signatures container_scanning_for_registry diff --git a/ee/app/policies/ee/project_policy.rb b/ee/app/policies/ee/project_policy.rb index 10a6c36a1fece1ea4765f227580d64170c25d577..12946c191f3ae839b2c17bf371742da191222a75 100644 --- a/ee/app/policies/ee/project_policy.rb +++ b/ee/app/policies/ee/project_policy.rb @@ -253,22 +253,10 @@ module ProjectPolicy project.project_feature&.private?(:merge_requests) end - condition(:tracing_enabled) do - # Can be enabled for all projects in root namespace. Maintains backward - # compatibility by falling back to checking against project - (::Feature.enabled?(:observability_tracing, - @subject.root_namespace) || ::Feature.enabled?(:observability_tracing, @subject)) && - @subject.licensed_feature_available?(:tracing) - end - - condition(:observability_metrics_enabled) do - ::Feature.enabled?(:observability_metrics, @subject.root_namespace) && - @subject.licensed_feature_available?(:metrics_observability) - end - - condition(:observability_logs_enabled) do - ::Feature.enabled?(:observability_logs, @subject.root_namespace, type: :wip) && - @subject.licensed_feature_available?(:logs_observability) + condition(:observability_enabled) do + # temporarily checking :observability_tracing for backward compability until all existing users have the new FF enabled + (::Feature.enabled?(:observability_tracing, @subject.root_namespace) || ::Feature.enabled?(:observability_features, @subject.root_namespace)) && + @subject.licensed_feature_available?(:observability) end # We are overriding the already defined condition in CE version @@ -840,28 +828,8 @@ module ProjectPolicy (maintainer | owner | admin) & pages_multiple_versions_available end.enable :pages_multiple_versions - rule { can?(:reporter_access) & tracing_enabled }.policy do - enable :read_tracing - end - - rule { can?(:developer_access) & tracing_enabled }.policy do - enable :write_tracing - end - - rule { can?(:reporter_access) & observability_metrics_enabled }.policy do - enable :read_observability_metrics - end - - rule { can?(:developer_access) & observability_metrics_enabled }.policy do - enable :write_observability_metrics - end - - rule { can?(:reporter_access) & observability_logs_enabled }.policy do - enable :read_observability_logs - end - - rule { can?(:developer_access) & observability_logs_enabled }.policy do - enable :write_observability_logs + rule { can?(:reporter_access) & observability_enabled }.policy do + enable :read_observability end rule { ci_cancellation_maintainers_only & ~can?(:maintainer_access) }.policy do diff --git a/ee/app/views/shared/usage_quotas/tabs_content/_observability.html.haml b/ee/app/views/shared/usage_quotas/tabs_content/_observability.html.haml index c52ed546056d80a300981b8f50e9fca2aab97bdf..19ae09df377d5bfee5db327ea5c48958a9103440 100644 --- a/ee/app/views/shared/usage_quotas/tabs_content/_observability.html.haml +++ b/ee/app/views/shared/usage_quotas/tabs_content/_observability.html.haml @@ -1,3 +1,3 @@ -- return unless can?(current_user, :read_tracing, @project) || can?(current_user, :read_observability_metrics, @project) || can?(current_user, :read_observability_logs, @project) +- return unless can?(current_user, :read_observability, @project) #js-observability-usage-quota-app{ data: { view_model: observability_usage_quota_view_model(@project) } } diff --git a/ee/lib/ee/sidebars/projects/menus/monitor_menu.rb b/ee/lib/ee/sidebars/projects/menus/monitor_menu.rb index 686f8339829b81196c24ddf5bee69856650183b8..a8751affc5da33950e3676d711b7872057e73154 100644 --- a/ee/lib/ee/sidebars/projects/menus/monitor_menu.rb +++ b/ee/lib/ee/sidebars/projects/menus/monitor_menu.rb @@ -51,7 +51,7 @@ def escalation_policies_menu_item end def tracing_menu_item - unless can?(context.current_user, :read_tracing, context.project) + unless can?(context.current_user, :read_observability, context.project) return ::Sidebars::NilMenuItem.new(item_id: :tracing) end @@ -65,7 +65,7 @@ def tracing_menu_item end def metrics_menu_item - unless can?(context.current_user, :read_observability_metrics, context.project) + unless can?(context.current_user, :read_observability, context.project) return ::Sidebars::NilMenuItem.new(item_id: :metrics) end @@ -79,7 +79,7 @@ def metrics_menu_item end def logs_menu_item - unless can?(context.current_user, :read_observability_logs, context.project) + unless can?(context.current_user, :read_observability, context.project) return ::Sidebars::NilMenuItem.new(item_id: :logs) end diff --git a/ee/spec/lib/ee/sidebars/projects/menus/monitor_menu_spec.rb b/ee/spec/lib/ee/sidebars/projects/menus/monitor_menu_spec.rb index af8000c6dd41e1a231741f0f875b29b41ec401c5..c5396e1988bdcb5a41c6ba06a5e9d982619ed322 100644 --- a/ee/spec/lib/ee/sidebars/projects/menus/monitor_menu_spec.rb +++ b/ee/spec/lib/ee/sidebars/projects/menus/monitor_menu_spec.rb @@ -48,7 +48,7 @@ let(:role) { :reporter } before do - stub_licensed_features(tracing: true) + stub_licensed_features(observability: true) stub_member_access_level(project, role => user) end @@ -56,6 +56,7 @@ describe 'when feature flag is disabled' do before do + stub_feature_flags(observability_features: false) stub_feature_flags(observability_tracing: false) end @@ -64,7 +65,7 @@ describe 'when unlicensed' do before do - stub_licensed_features(tracing: false) + stub_licensed_features(observability: false) end it { is_expected.to be_nil } @@ -83,7 +84,7 @@ let(:role) { :reporter } before do - stub_licensed_features(metrics_observability: true) + stub_licensed_features(observability: true) stub_member_access_level(project, role => user) end @@ -91,7 +92,8 @@ describe 'when feature flag is disabled' do before do - stub_feature_flags(observability_metrics: false) + stub_feature_flags(observability_features: false) + stub_feature_flags(observability_tracing: false) end it { is_expected.to be_nil } @@ -99,7 +101,7 @@ describe 'when unlicensed' do before do - stub_licensed_features(metrics_observability: false) + stub_licensed_features(observability: false) end it { is_expected.to be_nil } @@ -118,7 +120,7 @@ let(:role) { :reporter } before do - stub_licensed_features(logs_observability: true) + stub_licensed_features(observability: true) stub_member_access_level(project, role => user) end @@ -126,7 +128,8 @@ describe 'when feature flag is disabled' do before do - stub_feature_flags(observability_logs: false) + stub_feature_flags(observability_features: false) + stub_feature_flags(observability_tracing: false) end it { is_expected.to be_nil } @@ -134,7 +137,7 @@ describe 'when unlicensed' do before do - stub_licensed_features(logs_observability: false) + stub_licensed_features(observability: false) end it { is_expected.to be_nil } diff --git a/ee/spec/policies/project_policy_spec.rb b/ee/spec/policies/project_policy_spec.rb index 34bbba7bb2dc3828439cf32a7e2dc596e483263e..1c3d16433105491aff8d6bcbd91646b0c5649726 100644 --- a/ee/spec/policies/project_policy_spec.rb +++ b/ee/spec/policies/project_policy_spec.rb @@ -3367,107 +3367,65 @@ def create_member_role(member, abilities = member_role_abilities) end end - describe 'read_tracing policy' do + describe 'read_observability policy' do let(:current_user) { reporter } before do - stub_licensed_features(tracing: true) + stub_licensed_features(observability: true) end - describe 'when feature flag is disabled' do + describe 'when observability and observability_tracing feature flags are disabled' do before do + stub_feature_flags(observability_features: false) stub_feature_flags(observability_tracing: false) end - it { is_expected.to be_disallowed(:read_tracing) } + it { is_expected.to be_disallowed(:read_observability) } end - describe 'when feature flag is enabled for project' do + describe 'when observability feature flag is enabled for root namespace' do before do - stub_feature_flags(observability_tracing: false) - stub_feature_flags(observability_tracing: project) + stub_feature_flags(observability_features: project.root_namespace) end - it { is_expected.to be_allowed(:read_tracing) } + it { is_expected.to be_allowed(:read_observability) } end - describe 'when feature flag is enabled for root namespace' do + describe 'when observability_tracing feature flag is enabled for root namespace' do before do - stub_feature_flags(observability_tracing: false) stub_feature_flags(observability_tracing: project.root_namespace) end - it { is_expected.to be_allowed(:read_tracing) } + it { is_expected.to be_allowed(:read_observability) } end describe 'when the project does not have the correct license' do before do - stub_licensed_features(tracing: false) + stub_feature_flags(observability_features: true) + stub_licensed_features(observability: false) end - it { is_expected.to be_disallowed(:read_tracing) } + it { is_expected.to be_disallowed(:read_observability) } end describe 'when the user does not have permission' do let(:current_user) { guest } - it { is_expected.to be_disallowed(:read_tracing) } - end - - describe 'when the user has permission' do - it { is_expected.to be_allowed(:read_tracing) } - end - end - - describe 'write_tracing policy' do - let(:current_user) { developer } - - before do - stub_licensed_features(tracing: true) - end - - describe 'when feature flag is disabled' do - before do - stub_feature_flags(observability_tracing: false) - end - - it { is_expected.to be_disallowed(:write_tracing) } - end - - describe 'when feature flag is enabled for project' do - before do - stub_feature_flags(observability_tracing: false) - stub_feature_flags(observability_tracing: project) - end - - it { is_expected.to be_allowed(:write_tracing) } - end - - describe 'when feature flag is enabled for root namespace' do before do - stub_feature_flags(observability_tracing: false) - stub_feature_flags(observability_tracing: project.root_namespace) + stub_feature_flags(observability_features: true) + stub_licensed_features(observability: true) end - it { is_expected.to be_allowed(:write_tracing) } + it { is_expected.to be_disallowed(:read_observability) } end - describe 'when the project does not have the correct license' do + describe 'when the user has permission' do before do - stub_licensed_features(tracing: false) + stub_feature_flags(observability_features: true) + stub_licensed_features(observability: true) end - it { is_expected.to be_disallowed(:write_tracing) } - end - - describe 'when the user does not have permission' do - let(:current_user) { reporter } - - it { is_expected.to be_disallowed(:write_tracing) } - end - - describe 'when the user has permission' do - it { is_expected.to be_allowed(:write_tracing) } + it { is_expected.to be_allowed(:read_observability) } end end @@ -3507,178 +3465,6 @@ def create_member_role(member, abilities = member_role_abilities) end end - describe 'read_observability_metrics policy' do - let(:current_user) { reporter } - - before do - stub_licensed_features(metrics_observability: true) - end - - describe 'when feature flag is disabled' do - before do - stub_feature_flags(observability_metrics: false) - end - - it { is_expected.to be_disallowed(:read_observability_metrics) } - end - - describe 'when feature flag is enabled for root namespace' do - before do - stub_feature_flags(observability_metrics: false) - stub_feature_flags(observability_metrics: project.root_namespace) - end - - it { is_expected.to be_allowed(:read_observability_metrics) } - end - - describe 'when the project does not have the correct license' do - before do - stub_licensed_features(metrics_observability: false) - end - - it { is_expected.to be_disallowed(:read_observability_metrics) } - end - - describe 'when the user does not have permission' do - let(:current_user) { guest } - - it { is_expected.to be_disallowed(:read_observability_metrics) } - end - - describe 'when the user has permission' do - it { is_expected.to be_allowed(:read_observability_metrics) } - end - end - - describe 'write_observability_metrics policy' do - let(:current_user) { developer } - - before do - stub_licensed_features(metrics_observability: true) - end - - describe 'when feature flag is disabled' do - before do - stub_feature_flags(observability_metrics: false) - end - - it { is_expected.to be_disallowed(:write_observability_metrics) } - end - - describe 'when feature flag is enabled for root namespace' do - before do - stub_feature_flags(observability_metrics: false) - stub_feature_flags(observability_metrics: project.root_namespace) - end - - it { is_expected.to be_allowed(:write_observability_metrics) } - end - - describe 'when the project does not have the correct license' do - before do - stub_licensed_features(metrics_observability: false) - end - - it { is_expected.to be_disallowed(:write_observability_metrics) } - end - - describe 'when the user does not have permission' do - let(:current_user) { reporter } - - it { is_expected.to be_disallowed(:write_observability_metrics) } - end - - describe 'when the user has permission' do - it { is_expected.to be_allowed(:write_observability_metrics) } - end - end - - describe 'read_observability_logs policy' do - let(:current_user) { reporter } - - before do - stub_licensed_features(logs_observability: true) - end - - describe 'when feature flag is disabled' do - before do - stub_feature_flags(observability_logs: false) - end - - it { is_expected.to be_disallowed(:read_observability_logs) } - end - - describe 'when feature flag is enabled for root namespace' do - before do - stub_feature_flags(observability_logs: false) - stub_feature_flags(observability_logs: project.root_namespace) - end - - it { is_expected.to be_allowed(:read_observability_logs) } - end - - describe 'when the project does not have the correct license' do - before do - stub_licensed_features(logs_observability: false) - end - - it { is_expected.to be_disallowed(:read_observability_logs) } - end - - describe 'when the user does not have permission' do - let(:current_user) { guest } - - it { is_expected.to be_disallowed(:read_observability_logs) } - end - - describe 'when the user has permission' do - it { is_expected.to be_allowed(:read_observability_logs) } - end - end - - describe 'write_observability_logs policy' do - let(:current_user) { developer } - - before do - stub_licensed_features(logs_observability: true) - end - - describe 'when feature flag is disabled' do - before do - stub_feature_flags(observability_logs: false) - end - - it { is_expected.to be_disallowed(:write_observability_logs) } - end - - describe 'when feature flag is enabled for root namespace' do - before do - stub_feature_flags(observability_logs: false) - stub_feature_flags(observability_logs: project.root_namespace) - end - - it { is_expected.to be_allowed(:write_observability_logs) } - end - - describe 'when the project does not have the correct license' do - before do - stub_licensed_features(logs_observability: false) - end - - it { is_expected.to be_disallowed(:write_observability_logs) } - end - - describe 'when the user does not have permission' do - let(:current_user) { reporter } - - it { is_expected.to be_disallowed(:write_observability_logs) } - end - - describe 'when the user has permission' do - it { is_expected.to be_allowed(:write_observability_logs) } - end - end - describe 'generate_cube_query policy' do let(:current_user) { owner } diff --git a/ee/spec/requests/projects/logs_controller_spec.rb b/ee/spec/requests/projects/logs_controller_spec.rb index db845b560c76b12ddc5a8d58b092b8f49e0aee95..452a3c7ec1d15fb2cd9f1dacc869c56cff2fddac 100644 --- a/ee/spec/requests/projects/logs_controller_spec.rb +++ b/ee/spec/requests/projects/logs_controller_spec.rb @@ -7,7 +7,7 @@ let_it_be(:project) { create(:project, group: group) } let_it_be(:user) { create(:user) } let(:path) { nil } - let(:observability_logs_ff) { true } + let(:observability_ff) { true } let(:expected_api_config) do { oauthUrl: Gitlab::Observability.oauth_url, @@ -31,8 +31,9 @@ end before do - stub_licensed_features(logs_observability: true) - stub_feature_flags(observability_logs: observability_logs_ff) + stub_licensed_features(observability: true) + stub_feature_flags(observability_features: observability_ff) + stub_feature_flags(observability_tracing: observability_ff) sign_in(user) end @@ -65,7 +66,7 @@ end context 'when feature is disabled' do - let(:observability_logs_ff) { false } + let(:observability_ff) { false } it 'returns 404' do expect(html_response).to have_gitlab_http_status(:not_found) diff --git a/ee/spec/requests/projects/metrics_controller_spec.rb b/ee/spec/requests/projects/metrics_controller_spec.rb index ea6cda42f22bd4a71074861eb23f9d4d9a80154c..ed25e5bea565fa52b98a6b9593ec2ca11a42c702 100644 --- a/ee/spec/requests/projects/metrics_controller_spec.rb +++ b/ee/spec/requests/projects/metrics_controller_spec.rb @@ -7,7 +7,7 @@ let_it_be(:project) { create(:project, group: group) } let_it_be(:user) { create(:user) } let(:path) { nil } - let(:observability_metrics_ff) { true } + let(:observability_ff) { true } let(:expected_api_config) do { oauthUrl: Gitlab::Observability.oauth_url, @@ -31,8 +31,9 @@ end before do - stub_licensed_features(metrics_observability: true) - stub_feature_flags(observability_metrics: observability_metrics_ff) + stub_licensed_features(observability: true) + stub_feature_flags(observability_tracing: observability_ff) + stub_feature_flags(observability_features: observability_ff) sign_in(user) end @@ -65,7 +66,7 @@ end context 'when feature is disabled' do - let(:observability_metrics_ff) { false } + let(:observability_ff) { false } it 'returns 404' do expect(html_response).to have_gitlab_http_status(:not_found) diff --git a/ee/spec/requests/projects/tracing_controller_spec.rb b/ee/spec/requests/projects/tracing_controller_spec.rb index 570208fc0a5f91277a1ec64f94954b6c23f1ac76..280b86d46035059d0b5a9078fbcc73a7e774f687 100644 --- a/ee/spec/requests/projects/tracing_controller_spec.rb +++ b/ee/spec/requests/projects/tracing_controller_spec.rb @@ -7,7 +7,7 @@ let_it_be(:project) { create(:project, group: group) } let_it_be(:user) { create(:user) } let(:path) { nil } - let(:observability_tracing_ff) { true } + let(:observability_ff) { true } let(:expected_api_config) do { oauthUrl: Gitlab::Observability.oauth_url, @@ -31,8 +31,9 @@ end before do - stub_licensed_features(tracing: true) - stub_feature_flags(observability_tracing: observability_tracing_ff) + stub_licensed_features(observability: true) + stub_feature_flags(observability_tracing: observability_ff) + stub_feature_flags(observability_features: observability_ff) sign_in(user) end @@ -65,7 +66,7 @@ end context 'when feature is disabled' do - let(:observability_tracing_ff) { false } + let(:observability_ff) { false } it 'returns 404' do expect(subject).to have_gitlab_http_status(:not_found) diff --git a/lib/gitlab/observability.rb b/lib/gitlab/observability.rb index 14af6975b8095c8ca7a47066ceec0451e7322d34..d1e6fad6e9eeae4bc7088f8b223b01ed656b5844 100644 --- a/lib/gitlab/observability.rb +++ b/lib/gitlab/observability.rb @@ -26,8 +26,7 @@ def should_enable_observability_auth_scopes?(resource) # Enable the needed oauth scopes if tracing is enabled. if resource.is_a?(Group) || resource.is_a?(Project) return Feature.enabled?(:observability_tracing, resource.root_ancestor) || - Feature.enabled?(:observability_metrics, resource.root_ancestor) || - Feature.enabled?(:observability_logs, resource.root_ancestor) + Feature.enabled?(:observability_features, resource.root_ancestor) end false diff --git a/spec/lib/gitlab/auth_spec.rb b/spec/lib/gitlab/auth_spec.rb index f259db1f749be6d6a09a190826d27d95f57c692b..551197add7f4f689c75ff0af4544f082713d751e 100644 --- a/spec/lib/gitlab/auth_spec.rb +++ b/spec/lib/gitlab/auth_spec.rb @@ -95,7 +95,7 @@ end context 'with observability feature flags' do - feature_flags = [:observability_tracing, :observability_metrics, :observability_logs] + feature_flags = [:observability_tracing, :observability_features] context 'when all disabled' do before do diff --git a/spec/lib/gitlab/observability_spec.rb b/spec/lib/gitlab/observability_spec.rb index 3a5abd393bd1b4ecb862c978072a4ebae6e13cb6..f8fa67735ebf3eee6d400a90364ab4848a55be73 100644 --- a/spec/lib/gitlab/observability_spec.rb +++ b/spec/lib/gitlab/observability_spec.rb @@ -56,7 +56,7 @@ end end - feature_flags = [:observability_tracing, :observability_metrics, :observability_logs] + feature_flags = [:observability_tracing, :observability_features] flag_states = [true, false].repeated_permutation(feature_flags.length) flag_tests = flag_states.map { |flags| Hash[feature_flags.zip(flags)] }