Metrics: Delete API entrypoints & helpers
Overview
⚠ Removal should take place during %16.0.
⚠ Category:Metrics code is intertwined with the metrics GitLab reports on itself. Only Category:Metrics should be removed. Similarly, some items named likePrometheusAlert
are also used forAlertManagement::Alert
and should not be removed.
As part of Monitor: Metrics Deprecation and Removal (&10107), we want to remove any ability to interact with the Metrics Dashboard feature of Category:Metrics via API.
Implementation plan
For any API that must rely on prometheus alerts, prometheus metrics, metrics dashboard, or their configuration:
- Add deprecation notices to relevant graphql fields.
✅ -
This is a gray-area between our feature&api removal guidelines. The underlying data will be going away in %16.0 whether the field technically does or not. We should remove the fields as planning in %16.0, but the late addition of the deprecation notice is a small curtesy we can provide, regardless of timeliness.EDIT: Removals should occur no earlier than %17.0. See Deprecate GraphQL schema items for the Metrics ... (#410431)
-
- Remove relevant fields from GraphQL queries and mutations
- Remove relevant fields from the REST API, along with serializers
- Remove relevant presenters and methods in presenters
Relevant processes to follow
- Standard process for removing graphql fields
- Standard process for documenting REST API deprecations
- Timeline for feature removals
Relevant code
-
Removed in !122030 (merged)app/controllers/projects/metrics_dashboard_controller.rb
-
Updated in !122030 (merged)app/controllers/projects/settings/operations_controller.rb
-
Updated in !122030 (merged)app/controllers/projects/environments_controller.rb
-
Updated in !122030 (merged)app/controllers/projects/prometheus/alerts_controller.rb
-
- Updated in !125259 (merged)app/controllers/clusters/clusters_controller.rb
-
Removed in !125493 (merged)app/controllers/concerns/metrics_dashboard.rb
-
Removed in !122055 (merged)app/controllers/concerns/metrics/dashboard/prometheus_api_proxy.rb
-
scope moved to #338838app/presenters/prometheus_alert_presenter.rb
-
--> removelib/gitlab/alert_management/payload/base.rb
#metrics_dashboard_url
- Removed in !125209 (merged) -
Removed and updated in !126130 (merged)lib/gitlab/alert_management/payload/managed_prometheus.rb
--> remove entirely & replace any usage withalert_management/payload/prometheus.rb
-
--> removelib/gitlab/alert_management/payload/prometheus.rb
#metrics_dashboard_url
& related - Removed in !125209 (merged) -
Removed in !125677 (merged)app/serializers/prometheus_alert_entity.rb
-
Updated in !125209 (merged)app/presenters/alert_management/alert_presenter.rb
-
deprecated in !120307 (merged), !120286 (merged)app/graphql/types/metrics/*
-
scope moved to #338838app/graphql/types/prometheus_alert_type.rb
-
scope moved to #338838app/graphql/types/alert_management/alert_type.rb
Edited by Rajendra Kadam