The process start time is invalid
It seems that the process start time is invalid, as by definition this should be epoch value, but seems to be some relative value:
# HELP ruby_process_start_time_seconds Multiprocess metric
# TYPE ruby_process_start_time_seconds gauge
ruby_process_start_time_seconds 5113373
ruby_process_start_time_seconds 5113373
These metrics also have a problem that will be solved by https://gitlab.com/gitlab-org/gitlab-ce/issues/63872.
It seems that this is the wrong implementation:
def self.process_start_time
fields = File.read('/proc/self/stat').split
# fields[21] is linux proc stat field "(22) starttime".
# The value is expressed in clock ticks, divide by clock ticks for seconds.
( fields[21].to_i || 0 ) / clk_tck
end
I would propose to record the start time as part of LifecycleEvents with on_worker_start
and present that as metric, or when we initialize the RubySampler
.