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 is missing good multi-process support we need for Unicorn and Puma. This is currently being worked on upstream. Once this is complete, we should be able to switch out the library.
Proposal
-
Review the upstream multi-process support. https://gitlab.com/gitlab-org/gitlab-ce/issues/59959 -
Benchmark compare the multi-process support. -
Upstream the C code for multi-process if necessary. -
Update our instrumentation to use the new library.
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 Peter Leitzen