in files/gitlab-cookbooks/monitoring/libraries/prometheus.rb [381:433]
def rails_scrape_configs
return unless WebServerHelper.enabled? || service_discovery
webserver_service = WebServerHelper.service_name
default_config = Gitlab['node']['gitlab'][webserver_service].to_hash
user_config = Gitlab[webserver_service]
if service_discovery
scrape_config = {
'job_name' => 'gitlab-rails',
'metrics_path' => '/-/metrics',
'consul_sd_configs' => [{ 'services' => ['rails'] }]
}
else
if user_config['ssl_listen'] && user_config['ssl_port']
listen_address = user_config['ssl_listen'] || default_config['ssl_listen']
listen_port = user_config['ssl_port'] || default_config['ssl_port']
else
listen_address = user_config['listen'] || default_config['listen']
listen_port = user_config['port'] || default_config['port']
end
prometheus_target = [listen_address, listen_port].join(':')
scrape_config = {
'job_name' => 'gitlab-rails',
'metrics_path' => '/-/metrics',
'static_configs' => [
'targets' => [prometheus_target],
],
'relabel_configs' => [
{
"source_labels" => ["__address__"],
"regex" => "127.0.0.1:(.*)",
"replacement" => "localhost:$1",
"target_label" => "instance"
}
]
}
end
prometheus_scrape_server_name = user_config['prometheus_scrape_tls_server_name'] || default_config['prometheus_scrape_tls_server_name'] || listen_address
prometheus_scrape_server_name = "localhost" if prometheus_scrape_server_name == "127.0.0.1"
extra_config = tls_config(default_config, user_config, server_name: prometheus_scrape_server_name)
scrape_config.merge!(extra_config)
default_scrape_configs = [] << scrape_config << Gitlab['prometheus']['scrape_configs']
Gitlab['prometheus']['scrape_configs'] = default_scrape_configs.compact.flatten
end