Remove o11y_settings_access flag and gated settings page
What does this MR do?
Removes the group Observability "o11y service settings" page and the o11y_settings_access experiment feature flag that gated it. The page/flag were never rolled out on GitLab.com.
Removed:
o11y_settings_accessfeature flagGroups::Observability::O11yServiceSettingsController+ its route andeditview- the
o11y_settingssidebar menu item (group + super-sidebar placeholder) - the now-unused
update_o11y_settings/delete_o11y_settingspermissions (roles, archived permission group, group policy prevent rule, definitions_todo) - the associated specs
Kept:
app/views/groups/observability/o11y_service_settings/_form_fields.html.haml— still rendered by the separate experimental observability settings page (Experimental::O11yServiceSettingsController, behindexperimental_group_o11y_settings_access), which is out of scope here.
Events / metrics: marked removed, not deleted
The update_o11y_service_settings / visit_o11y_service_settings_page internal events and their two metrics are marked status: removed (events moved to config/events/removed/, metrics kept in place) rather than deleted.
Although the o11y_settings_access flag was never enabled on GitLab.com, a Snowflake check of prod.common_mart.mart_behavior_structured_event shows real usage from self-managed instances (app_id = gitlab_sm) — ~32-37 distinct users across Sept 19-23. Per the metrics and event lifecycle docs, definitions that self-managed instances may still report must be retained as status: removed so Analytics Instrumentation can identify and filter them, rather than deleted outright.
Menu visibility change
The Observability menu previously rendered if o11y_settings_access was on OR (observability_sass_features && read_observability_portal). With the flag gone, it renders only on the latter condition, which is the intended behaviour.
Routing snapshot
config/routing/gitlab_routes.json is regenerated to drop the removed route.
HTTP Router sync (pipeline:skip-router-sync)
This MR removes the /groups/*/-/observability/o11y_service_settings routes, so the cells-routes:router-in-sync job reports drift against the HTTP Router snapshot. Applying pipeline:skip-router-sync because the HTTP Router snapshot on main can only match one GitLab ref at a time and there are paired route-changing MRs in flight; the router will be resynced from master after these merge. The affected routes are an admin/experiment-only tool with no production traffic depending on cell routing.