Add Metrics Dashboard GraphQL alert queries to FF
What does this MR do and why?
This MR gates the metrics dashboard graphql alert queries behind the remove_monitor_metrics
feature flag. The frontend feature that used this field was actually removed a very long time ago. But we also want to deprecate/remove any API access.
Related issue: Metrics: Delete API entrypoints & helpers (#397138 - closed) (one of many MRs)
Context for removal:
- The Metrics Dashboard feature is being removed in %16.0.
- Feature docs: https://docs.gitlab.com/ee/operations/metrics
- Removal issue: Monitor: Metrics Deprecation and Removal (&10107)
- Most of the metrics dashboard frontend is currently behind the
remove_monitor_metrics
flag, but the flag has not yet been enabled. It needs to be enabled by default in time for %16.0.- The entire frontend should be behind the flag in order to enable it by default, but the API can merge after - as long as we make all breaking changes within %16.0.
- Rollout issue: [Feature flag] Rollout of `remove_monitor_metrics` (#399248)
- Tracking issue: Metrics: hide deprecated modules behind a featu... (#399231 - closed)
- Enable-by-default MR: Set remove_monitor_metrics flag to true (!119989 - merged)
backend MRs to flag all metrics dashboard endpoints
All related- Add Metrics Dashboard annnotations API to FF (!120286 - merged)
- Add Metrics Dashboard starred dashboard API to FF (!120288 - merged)
- Add Metrics Dashboard templates viewer to FF (!120289 - merged)
- Add Metrics Dashboard environments API to FF (!120299 - merged)
- Add Metrics Dashboard settings API to FF (!120305 - merged)
- Add Metrics Dashboard GraphQL alert queries to FF (!120307 - merged)
- Add Metrics Dashboard embed pipeline to FF (!120310 - merged)
- Add Metrics Dashboard for internal dashboard en... (!120313 - merged)
- Add Metrics Dashboard base API to FF (!120316 - merged)
How to set up and validate locally
** pre-req: project with an environment
- Create a prometheus alert with the right attributes via the rails console
environment = Environment.last project = environment.project payload = JSON.parse({ "labels": { "gitlab_environment_name": environment.name }, "status": "firing", "startsAt": "2021-03-17T11:22:40Z", "annotations": { "title": "Testing that prometheus alerts do not re-acknowledge", "gitlab_y_label": "status" }, "generatorURL": "http://host?g0.expr=up" }.to_json) AlertManagement::ProcessPrometheusAlertService.new(project, payload).execute
- Use
http://gdk.test:3000/-/graphql-explorer
to query for alert details
Query | Response before | Response after |
---|---|---|
|
|
|
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Sarah Yasonik