class GitLab::Exporter::WebExporter
Metrics web exporter
Constants
- DEFAULT_WEB_SERVER
Public Class Methods
logger()
click to toggle source
# File lib/gitlab_exporter/web_exporter.rb, line 69 def logger request.logger end
setup(config)
click to toggle source
# File lib/gitlab_exporter/web_exporter.rb, line 56 def setup(config) setup_server(config[:server]) setup_probes(config[:probes]) memory_threshold = (config[:server] && config[:server][:memory_threshold]) || 1024 use MemoryKillerMiddleware, memory_threshold use Rack::Logger use RunGC # Defrag heap after everything is loaded into memory. GC.compact end
setup_probes(config)
click to toggle source
# File lib/gitlab_exporter/web_exporter.rb, line 81 def setup_probes(config) (config || {}).each do |probe_name, params| opts = if params.delete(:multiple) params else { probe_name => params } end get "/#{probe_name}" do content_type "text/plain; version=0.0.4" prober = Prober.new(metrics: PrometheusMetrics.new(include_timestamp: false), logger: logger, **opts) prober.probe_all prober.write_to(response) response end end end
setup_server(config)
click to toggle source
# File lib/gitlab_exporter/web_exporter.rb, line 73 def setup_server(config) config ||= {} set(:server, config.fetch(:name, DEFAULT_WEB_SERVER)) set(:bind, config.fetch(:listen_address, "0.0.0.0")) set(:port, config.fetch(:listen_port, 9168)) end