Allow Prometheus' metrics dashboard and incoming alerts to be managed independently
Context
Prometheus Integrations were removed in %16.0 as part of removing Metrics Dashboard. The corresponding database records, however, are also used under the hood by prometheus-type alert integrations. The alerting functionality is not deprecated or scheduled for removal, so we need to split this functionality out in order to remove the dead code for Prometheus Integrations.
Feature definitions
- Prometheus Integrations Category:Metrics
- found under project > Settings > Integrations
- feature removed from UI, backend code intended for deletion
 
- found under 
- Metrics Dashboard Category:Metrics
- found under project > Monitor > Metrics
- feature removed from UI, code deleted
 
- found under 
- alert integrations  Category:Incident Management
- found under project > Settings > Monitor > Alerts
- accessed/used under project > Monitor > Alerts
- feature is not deprecated
 
- found under 
In-progress Plan
Overall approach
Move the relevant attributes from Prometheus Integrations (Integrations::Prometheus, Alerting::ProjectAlertingSetting) into the http-type alert integration table (AlertManagement::HttpIntegration), adding a new type field to indicate whether the integration is either Prometheus or HTTP. All other attributes are the same.
Implementation plan
- Add types to table for AlertManagement::HttpIntegration✅ 
- Migrate Integrations::Prometheusrecords intoAlertManagement::HttpIntegration✅ 
- Sync updates from Integrations::PrometheustoAlertManagement::HttpIntegration✅ 
- Allow alert ingestion to use AlertManagement::HttpIntegrationas SSOT✅ 
- Support querying by prometheus-type records in GraphQL ◀️ WE ARE HERE
- Update existing prometheus-type mutations to interact with AlertManagement::HttpIntegrationsdirectly (instead of throughIntegrations::Prometheus)
- Update existing http-type mutations to accept a type field & deprecate prometheus-type mutations
- Migrate frontend to use http mutations for prometheus-type integrations
- Delete all the Integrations::Prometheusthings(in https://gitlab.com/gitlab-org/gitlab/-/issues/409734)