Class: Gitlab::Metrics::Exporter::BaseExporter

Inherits:
Daemon
  • Object
show all
Defined in:
lib/gitlab/metrics/exporter/base_exporter.rb

Direct Known Subclasses

SidekiqExporter, WebExporter

Constant Summary collapse

CERT_REGEX =
/-----BEGIN CERTIFICATE-----(?:.|\n)+?-----END CERTIFICATE-----/
RACK_EXPORTER =
if ENV["LABKIT_METRICS_ENABLED"] == "true"
  require 'labkit/metrics/rack_exporter'
  ::Labkit::Metrics::RackExporter
else
  require 'prometheus/client/rack/exporter'
  ::Prometheus::Client::Rack::Exporter
end

Instance Attribute Summary collapse

Attributes inherited from Daemon

#thread

Instance Method Summary collapse

Methods inherited from Daemon

initialize_instance, instance, #start, #stop, #thread?, #thread_name

Constructor Details

#initialize(settings, log_enabled:, log_file:, gc_requests: false, **options) ⇒ BaseExporter

Returns a new instance of BaseExporter.

Parameters:

  • settings (Hash)

    SettingsLogic hash containing the ‘*_exporter` config

  • log_enabled (Boolean)

    whether to log HTTP requests

  • log_file (String)

    path to where the server log should be located

  • gc_requests (Boolean) (defaults to: false)

    whether to run a major GC after each scraper request



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/gitlab/metrics/exporter/base_exporter.rb', line 25

def initialize(settings, log_enabled:, log_file:, gc_requests: false, **options)
  super(**options)

  @settings = settings
  @gc_requests = gc_requests

  # log_enabled does not exist for all exporters
  log_sink = log_enabled ? File.join(Rails.root, 'log', log_file) : File::NULL
  @logger = WEBrick::Log.new(log_sink)
  @logger.time_format = "[%Y-%m-%dT%H:%M:%S.%L%z]"
end

Instance Attribute Details

#serverObject (readonly)

Returns the value of attribute server.



19
20
21
# File 'lib/gitlab/metrics/exporter/base_exporter.rb', line 19

def server
  @server
end

Instance Method Details

#enabled?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/gitlab/metrics/exporter/base_exporter.rb', line 37

def enabled?
  settings.enabled
end