debian-mirror-gitlab/lib/gitlab/metrics/exporter/sidekiq_exporter.rb

48 lines
1.2 KiB
Ruby
Raw Normal View History

2019-12-21 20:55:43 +05:30
# frozen_string_literal: true
require 'webrick'
require 'prometheus/client/rack/exporter'
module Gitlab
module Metrics
module Exporter
class SidekiqExporter < BaseExporter
def settings
Settings.monitoring.sidekiq_exporter
end
def log_filename
2020-11-24 15:15:51 +05:30
if settings['log_enabled']
File.join(Rails.root, 'log', 'sidekiq_exporter.log')
else
File::NULL
end
2019-12-21 20:55:43 +05:30
end
private
# Sidekiq Exporter does not work properly in sidekiq-cluster
# mode. It tries to start the service on the same port for
# each of the cluster workers, this results in failure
# due to duplicate binding.
#
# For now we ignore this error, as metrics are still "kind of"
# valid as they are rendered from shared directory.
#
# Issue: https://gitlab.com/gitlab-org/gitlab/issues/5714
def start_working
super
rescue Errno::EADDRINUSE => e
Sidekiq.logger.error(
class: self.class.to_s,
message: 'Cannot start sidekiq_exporter',
2020-05-24 23:13:21 +05:30
'exception.message' => e.message
2019-12-21 20:55:43 +05:30
)
false
end
end
end
end
end