Extend metrics to allow for groups of metrics

Problem to solve

With #9788 (closed) we added custom metrics as a widget in the Merge Request. If a user wants to report on a few metrics, the UX here is just fine. But what if the user wants to report on many different types? We should allow the grouping of these metrics into logical groups by the user.

Intended users

Persona: DevOps Engineer and Persona: Development Team Lead

Further details

Proposal

Add a group attribute to metrics. This could leverage the TYPE option in the Prometheus standard, unless openmetrics.io comes out with a different standard before we implement this feature.

https://prometheus.io/docs/instrumenting/exposition_formats/#grouping-and-sorting

# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027 1395066363000
http_requests_total{method="post",code="400"}    3 1395066363000

Change to our data

{
  "metrics": [
    {
      "name": "name",
      "group": "groupB"
      "value": "value",
      "previous_value": "value_prev"
    },
    {
       "name": "name2",
       "group": "groupA"
       "value": "value2",
       "previous_value": "value2_prev"
    }
  ]
}

Permissions and Security

This does not change the permission or security model for this feature.

Documentation

What does success look like, and how can we measure that?

What is the type of buyer?

Links / references

This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.

Edited by 🤖 GitLab Bot 🤖