Some metrics are missing `pid` and are returned to be duplicate
Currently, the prometheus-client-mmap has a bug that results in returning duplicate metrics when the metrics are not live-sum type:
# TYPE ruby_process_max_fds gauge
ruby_process_max_fds 1048576
ruby_process_max_fds 1048576
# HELP ruby_process_resident_memory_bytes Multiprocess metric
# TYPE ruby_process_resident_memory_bytes gauge
ruby_process_resident_memory_bytes 1228357632
# HELP ruby_process_start_time_seconds Multiprocess metric
# TYPE ruby_process_start_time_seconds gauge
ruby_process_start_time_seconds 26339
ruby_process_start_time_seconds 26339
The proper format is to have a pid
as a unique identifier of source of the given metric when running in multiprocess mode:
# TYPE ruby_process_max_fds gauge
ruby_process_max_fds{pid="unicorn_0"} 1048576
ruby_process_max_fds{pid="unicorn_1"} 1048576
# HELP ruby_process_resident_memory_bytes Multiprocess metric
# TYPE ruby_process_resident_memory_bytes gauge
ruby_process_resident_memory_bytes 1228357632
# HELP ruby_process_start_time_seconds Multiprocess metric
# TYPE ruby_process_start_time_seconds gauge
ruby_process_start_time_seconds{pid="unicorn_0"} 26339
ruby_process_start_time_seconds{pid="unicorn_1"} 26339
This is already fixed in https://gitlab.com/gitlab-org/prometheus-client-mmap, by https://gitlab.com/gitlab-org/prometheus-client-mmap/merge_requests/31.
We should bump the Gem version to 0.9.6
.