diff options
author | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 13:34:23 -0600 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 13:34:23 -0600 |
commit | 6438df3a1e0fb944485cebf07976160184697d72 (patch) | |
tree | 00b09bfd170e77ae9391b1a2f5a93ef6839f2597 /lib/gitlab/metrics | |
parent | 42bcd54d971da7ef2854b896a7b34f4ef8601067 (diff) | |
download | gitlab-ce-6438df3a1e0fb944485cebf07976160184697d72.tar.gz |
Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42
Diffstat (limited to 'lib/gitlab/metrics')
-rw-r--r-- | lib/gitlab/metrics/samplers/action_cable_sampler.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/metrics/samplers/base_sampler.rb | 12 | ||||
-rw-r--r-- | lib/gitlab/metrics/samplers/database_sampler.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/metrics/samplers/puma_sampler.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/metrics/samplers/ruby_sampler.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/metrics/samplers/threads_sampler.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/metrics/samplers/unicorn_sampler.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/metrics/system.rb | 14 |
8 files changed, 33 insertions, 7 deletions
diff --git a/lib/gitlab/metrics/samplers/action_cable_sampler.rb b/lib/gitlab/metrics/samplers/action_cable_sampler.rb index 9f4979fa673..043d2ae84cc 100644 --- a/lib/gitlab/metrics/samplers/action_cable_sampler.rb +++ b/lib/gitlab/metrics/samplers/action_cable_sampler.rb @@ -4,9 +4,9 @@ module Gitlab module Metrics module Samplers class ActionCableSampler < BaseSampler - SAMPLING_INTERVAL_SECONDS = 5 + DEFAULT_SAMPLING_INTERVAL_SECONDS = 5 - def initialize(interval = SAMPLING_INTERVAL_SECONDS, action_cable: ::ActionCable.server) + def initialize(interval = nil, action_cable: ::ActionCable.server) super(interval) @action_cable = action_cable end diff --git a/lib/gitlab/metrics/samplers/base_sampler.rb b/lib/gitlab/metrics/samplers/base_sampler.rb index 39a49187e45..7f9055fed5d 100644 --- a/lib/gitlab/metrics/samplers/base_sampler.rb +++ b/lib/gitlab/metrics/samplers/base_sampler.rb @@ -9,7 +9,9 @@ module Gitlab attr_reader :interval # interval - The sampling interval in seconds. - def initialize(interval = self.class::SAMPLING_INTERVAL_SECONDS) + def initialize(interval = nil) + interval ||= ENV[interval_env_key]&.to_i + interval ||= self.class::DEFAULT_SAMPLING_INTERVAL_SECONDS interval_half = interval.to_f / 2 @interval = interval @@ -50,6 +52,14 @@ module Gitlab attr_reader :running + def sampler_class + self.class.name.demodulize + end + + def interval_env_key + "#{sampler_class.underscore.upcase}_INTERVAL_SECONDS" + end + def start_working @running = true diff --git a/lib/gitlab/metrics/samplers/database_sampler.rb b/lib/gitlab/metrics/samplers/database_sampler.rb index 9ee4b0960c5..60ae22df607 100644 --- a/lib/gitlab/metrics/samplers/database_sampler.rb +++ b/lib/gitlab/metrics/samplers/database_sampler.rb @@ -4,7 +4,7 @@ module Gitlab module Metrics module Samplers class DatabaseSampler < BaseSampler - SAMPLING_INTERVAL_SECONDS = 5 + DEFAULT_SAMPLING_INTERVAL_SECONDS = 5 METRIC_PREFIX = 'gitlab_database_connection_pool_' diff --git a/lib/gitlab/metrics/samplers/puma_sampler.rb b/lib/gitlab/metrics/samplers/puma_sampler.rb index d295beb59f1..848a55e59ff 100644 --- a/lib/gitlab/metrics/samplers/puma_sampler.rb +++ b/lib/gitlab/metrics/samplers/puma_sampler.rb @@ -4,7 +4,7 @@ module Gitlab module Metrics module Samplers class PumaSampler < BaseSampler - SAMPLING_INTERVAL_SECONDS = 5 + DEFAULT_SAMPLING_INTERVAL_SECONDS = 5 def metrics @metrics ||= init_metrics diff --git a/lib/gitlab/metrics/samplers/ruby_sampler.rb b/lib/gitlab/metrics/samplers/ruby_sampler.rb index dac9fbd1247..76175b465e4 100644 --- a/lib/gitlab/metrics/samplers/ruby_sampler.rb +++ b/lib/gitlab/metrics/samplers/ruby_sampler.rb @@ -6,7 +6,7 @@ module Gitlab module Metrics module Samplers class RubySampler < BaseSampler - SAMPLING_INTERVAL_SECONDS = 60 + DEFAULT_SAMPLING_INTERVAL_SECONDS = 60 GC_REPORT_BUCKETS = [0.005, 0.01, 0.02, 0.04, 0.07, 0.1, 0.5].freeze def initialize(*) diff --git a/lib/gitlab/metrics/samplers/threads_sampler.rb b/lib/gitlab/metrics/samplers/threads_sampler.rb index 05acef7ce0c..a460594fb59 100644 --- a/lib/gitlab/metrics/samplers/threads_sampler.rb +++ b/lib/gitlab/metrics/samplers/threads_sampler.rb @@ -4,7 +4,7 @@ module Gitlab module Metrics module Samplers class ThreadsSampler < BaseSampler - SAMPLING_INTERVAL_SECONDS = 5 + DEFAULT_SAMPLING_INTERVAL_SECONDS = 5 KNOWN_PUMA_THREAD_NAMES = ['puma worker check pipe', 'puma server', 'puma threadpool reaper', 'puma threadpool trimmer', 'puma worker check pipe', 'puma stat payload'].freeze diff --git a/lib/gitlab/metrics/samplers/unicorn_sampler.rb b/lib/gitlab/metrics/samplers/unicorn_sampler.rb index d7935d65e12..2fa324f3fea 100644 --- a/lib/gitlab/metrics/samplers/unicorn_sampler.rb +++ b/lib/gitlab/metrics/samplers/unicorn_sampler.rb @@ -4,6 +4,8 @@ module Gitlab module Metrics module Samplers class UnicornSampler < BaseSampler + DEFAULT_SAMPLING_INTERVAL_SECONDS = 5 + def metrics @metrics ||= init_metrics end diff --git a/lib/gitlab/metrics/system.rb b/lib/gitlab/metrics/system.rb index 43005303dec..9bbcd1e056c 100644 --- a/lib/gitlab/metrics/system.rb +++ b/lib/gitlab/metrics/system.rb @@ -17,6 +17,20 @@ module Gitlab RSS_PATTERN = /VmRSS:\s+(?<value>\d+)/.freeze MAX_OPEN_FILES_PATTERN = /Max open files\s*(?<value>\d+)/.freeze + def self.summary + proportional_mem = memory_usage_uss_pss + { + version: RUBY_DESCRIPTION, + gc_stat: GC.stat, + memory_rss: memory_usage_rss, + memory_uss: proportional_mem[:uss], + memory_pss: proportional_mem[:pss], + time_cputime: cpu_time, + time_realtime: real_time, + time_monotonic: monotonic_time + } + end + # Returns the current process' RSS (resident set size) in bytes. def self.memory_usage_rss sum_matches(PROC_STATUS_PATH, rss: RSS_PATTERN)[:rss].kilobytes |