497acb1670
PumaWorkerKiller is used for periodically checking and killing workers (the biggest one) if overall memory reaches specified limit. This metric allows us to watch number of killed workers.
24 lines
554 B
Ruby
24 lines
554 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Cluster
|
|
class PumaWorkerKillerObserver
|
|
def initialize
|
|
@counter = Gitlab::Metrics.counter(:puma_killer_terminations_total, 'Number of workers terminated by PumaWorkerKiller')
|
|
end
|
|
|
|
# returns the Proc to be used as the observer callback block
|
|
def callback
|
|
method(:log_termination)
|
|
end
|
|
|
|
private
|
|
|
|
def log_termination(worker)
|
|
labels = { worker: "worker_#{worker.index}" }
|
|
|
|
@counter.increment(labels)
|
|
end
|
|
end
|
|
end
|
|
end
|