Fix pid providing for Prometheus
What does this MR do?
Use relative worker identifier for metrics (instead of Process.pid) and identify when Unicorn/Puma/Sidekiq is used.
Previously, it was assumed that all metrics are gathered from Unicorn due to hardcoded implementation which was incorrect.
How to check manually
Visit http://localhost:3000/-/metrics
before and after the change, grep for pid
.
The same with ./bin/web_puma start_foreground
.
For example, with puma
before the change you could notice something like this:
# TYPE ruby_process_max_fds gauge
ruby_process_max_fds{pid="process_id_5639"} 0
ruby_process_max_fds{pid="process_id_5640"} 0
where 5639
and 5640
are the pids of puma worker processes.
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry - [-] Documentation created/updated or follow-up review issue created
-
Code review guidelines - [-] Merge request performance guidelines
-
Style guides - [-] Database guides
-
Separation of EE specific content
Performance and testing
- [-] Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
- [-] Tested in all supported browsers
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team
Closes #63870 (closed)
Edited by 🤖 GitLab Bot 🤖