Migrate to upstream Prometheus Ruby client

Problem to solve

We currently use a forked Prometheus library, prometheus-client-mmap. It is worth the effort to switch to the upstream library in order to avoid the burden of maintaining this library on our own.

Intended users

GitLab developers

Further details

The upstream Prometheus client_ruby now supports multi-process metrics. Now that this is complete we should switch to this upstream code.

The metrics storage is modular. We will have to evaluate which mode to use. It seems like DirectFileStore is the only one we can use for multi-process. We will have to evaluate the performance of this compared to the current C implementation.

Proposal

Permissions and Security

N/A

Documentation

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

When using the upstream library we get as good or better performance with the same or better functionality.

Links / references

Edited by Ben Kochie