Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorick Peterse <yorickpeterse@gmail.com>2015-12-28 20:00:32 +0300
committerYorick Peterse <yorickpeterse@gmail.com>2015-12-28 20:00:32 +0300
commit4d925f2147884812e349031a19f0d7ced9d5fdaf (patch)
treec15476c76ec6d6f0d2522b7362dec404aecb5dd9 /lib/gitlab/metrics.rb
parent540eb0a9affef14329418b32be0dcd60f2b66e29 (diff)
Move InfluxDB settings to ApplicationSetting
Diffstat (limited to 'lib/gitlab/metrics.rb')
-rw-r--r--lib/gitlab/metrics.rb32
1 files changed, 24 insertions, 8 deletions
diff --git a/lib/gitlab/metrics.rb b/lib/gitlab/metrics.rb
index d6f60732455..8039e8e9e9d 100644
--- a/lib/gitlab/metrics.rb
+++ b/lib/gitlab/metrics.rb
@@ -4,16 +4,29 @@ module Gitlab
METRICS_ROOT = Rails.root.join('lib', 'gitlab', 'metrics').to_s
PATH_REGEX = /^#{RAILS_ROOT}\/?/
+ # Returns the current settings, ensuring we _always_ have a default set of
+ # metrics settings (even during tests, when the migrations are lacking,
+ # etc). This ensures the application is able to boot up even when the
+ # migrations have not been executed.
+ def self.settings
+ ApplicationSetting.current || {
+ metrics_pool_size: 16,
+ metrics_timeout: 10,
+ metrics_enabled: false,
+ metrics_method_call_threshold: 10
+ }
+ end
+
def self.pool_size
- Settings.metrics['pool_size'] || 16
+ settings[:metrics_pool_size]
end
def self.timeout
- Settings.metrics['timeout'] || 10
+ settings[:metrics_timeout]
end
def self.enabled?
- !!Settings.metrics['enabled']
+ settings[:metrics_enabled]
end
def self.mri?
@@ -21,7 +34,10 @@ module Gitlab
end
def self.method_call_threshold
- Settings.metrics['method_call_threshold'] || 10
+ # This is memoized since this method is called for every instrumented
+ # method. Loading data from an external cache on every method call slows
+ # things down too much.
+ @method_call_threshold ||= settings[:metrics_method_call_threshold]
end
def self.pool
@@ -52,10 +68,10 @@ module Gitlab
# "@foo ||= bar" is _not_ thread-safe.
if enabled?
@pool = ConnectionPool.new(size: pool_size, timeout: timeout) do
- host = Settings.metrics['host']
- db = Settings.metrics['database']
- user = Settings.metrics['username']
- pw = Settings.metrics['password']
+ host = settings[:metrics_host]
+ db = settings[:metrics_database]
+ user = settings[:metrics_username]
+ pw = settings[:metrics_password]
InfluxDB::Client.new(db, host: host, username: user, password: pw)
end