Make Puma an explicit dependency
We discovered in gitlab-org/charts/gitlab!1783 (closed) that when using a Chart, gitlab-exporter was never running on Puma as had been the case with Omnibus. By making Puma an explicit dependency of gitlab-exporter, we can better control when it is used and which version of it.
This also pins Puma to 5.1.1, matching the version we run Rails on (Sinatra is indifferent to the version of Puma used, so this was distorting performance tests depending on the environment we were using).
Puma 5 comes with increased idle memory use of ~5MB vs Puma 4:
[10:06:13] work/gitlab-exporter::master ✗ smem -P gitlab-exporter
PID User Command Swap USS PSS RSS
217515 mk puma 4.3.5.gitlab.3 (tcp:// 0 37412 37768 42116
vs
[10:11:23] work/gitlab-exporter::mk-add-puma-dependency ✔ smem -P gitlab-exporter
PID User Command Swap USS PSS RSS
219430 mk puma 5.1.1 (tcp://0.0.0.0:9 0 42272 42677 47220
I closed all MRs already that would see us use Puma by default, so this change will not affect any GitLab environment unless the server.name
option is explicitly changed to Puma.
Edited by Matthias Käppler