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 /spec/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 'spec/lib/gitlab/metrics')
7 files changed, 42 insertions, 46 deletions
diff --git a/spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb index 7f05f35c941..f751416f4ec 100644 --- a/spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/action_cable_sampler_spec.rb @@ -7,15 +7,7 @@ RSpec.describe Gitlab::Metrics::Samplers::ActionCableSampler do subject { described_class.new(action_cable: action_cable) } - describe '#interval' do - it 'samples every five seconds by default' do - expect(subject.interval).to eq(5) - end - - it 'samples at other intervals if requested' do - expect(described_class.new(11).interval).to eq(11) - end - end + it_behaves_like 'metrics sampler', 'ACTION_CABLE_SAMPLER' describe '#sample' do let(:pool) { instance_double(Concurrent::ThreadPoolExecutor) } diff --git a/spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb index b94d19ff227..9572e9f50be 100644 --- a/spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/database_sampler_spec.rb @@ -5,15 +5,7 @@ require 'spec_helper' RSpec.describe Gitlab::Metrics::Samplers::DatabaseSampler do subject { described_class.new } - describe '#interval' do - it 'samples every five seconds by default' do - expect(subject.interval).to eq(5) - end - - it 'samples at other intervals if requested' do - expect(described_class.new(11).interval).to eq(11) - end - end + it_behaves_like 'metrics sampler', 'DATABASE_SAMPLER' describe '#sample' do before do diff --git a/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb index 214649d3e7e..2013435a074 100644 --- a/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb @@ -11,15 +11,7 @@ RSpec.describe Gitlab::Metrics::Samplers::PumaSampler do allow(Gitlab::Metrics::NullMetric).to receive(:instance).and_return(null_metric) end - describe '#interval' do - it 'samples every five seconds by default' do - expect(subject.interval).to eq(5) - end - - it 'samples at other intervals if requested' do - expect(described_class.new(11).interval).to eq(11) - end - end + it_behaves_like 'metrics sampler', 'PUMA_SAMPLER' describe '#sample' do before do diff --git a/spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb index eb6c83096b9..6f1e0480197 100644 --- a/spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/ruby_sampler_spec.rb @@ -10,6 +10,8 @@ RSpec.describe Gitlab::Metrics::Samplers::RubySampler do allow(Gitlab::Metrics::NullMetric).to receive(:instance).and_return(null_metric) end + it_behaves_like 'metrics sampler', 'RUBY_SAMPLER' + describe '#initialize' do it 'sets process_start_time_seconds' do freeze_time do @@ -18,16 +20,6 @@ RSpec.describe Gitlab::Metrics::Samplers::RubySampler do end end - describe '#interval' do - it 'samples every sixty seconds by default' do - expect(subject.interval).to eq(60) - end - - it 'samples at other intervals if requested' do - expect(described_class.new(11).interval).to eq(11) - end - end - describe '#sample' do it 'adds a metric containing the process resident memory bytes' do expect(Gitlab::Metrics::System).to receive(:memory_usage_rss).and_return(9000) diff --git a/spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb index 19477589289..5dabafb7c0b 100644 --- a/spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/threads_sampler_spec.rb @@ -5,15 +5,7 @@ require 'spec_helper' RSpec.describe Gitlab::Metrics::Samplers::ThreadsSampler do subject { described_class.new } - describe '#interval' do - it 'samples every five seconds by default' do - expect(subject.interval).to eq(5) - end - - it 'samples at other intervals if requested' do - expect(described_class.new(11).interval).to eq(11) - end - end + it_behaves_like 'metrics sampler', 'THREADS_SAMPLER' describe '#sample' do before do diff --git a/spec/lib/gitlab/metrics/samplers/unicorn_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/unicorn_sampler_spec.rb index 9f2180c4170..7971a7cabd5 100644 --- a/spec/lib/gitlab/metrics/samplers/unicorn_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/unicorn_sampler_spec.rb @@ -5,6 +5,8 @@ require 'spec_helper' RSpec.describe Gitlab::Metrics::Samplers::UnicornSampler do subject { described_class.new(1.second) } + it_behaves_like 'metrics sampler', 'UNICORN_SAMPLER' + describe '#sample' do let(:unicorn) { Module.new } let(:raindrops) { double('raindrops') } diff --git a/spec/lib/gitlab/metrics/system_spec.rb b/spec/lib/gitlab/metrics/system_spec.rb index 720bd5d79b3..732aa553737 100644 --- a/spec/lib/gitlab/metrics/system_spec.rb +++ b/spec/lib/gitlab/metrics/system_spec.rb @@ -96,6 +96,25 @@ RSpec.describe Gitlab::Metrics::System do expect(described_class.memory_usage_uss_pss).to eq(uss: 475136, pss: 515072) end end + + describe '.summary' do + it 'contains a selection of the available fields' do + stub_const('RUBY_DESCRIPTION', 'ruby-3.0-patch1') + mock_existing_proc_file('/proc/self/status', proc_status) + mock_existing_proc_file('/proc/self/smaps_rollup', proc_smaps_rollup) + + summary = described_class.summary + + expect(summary[:version]).to eq('ruby-3.0-patch1') + expect(summary[:gc_stat].keys).to eq(GC.stat.keys) + expect(summary[:memory_rss]).to eq(2527232) + expect(summary[:memory_uss]).to eq(475136) + expect(summary[:memory_pss]).to eq(515072) + expect(summary[:time_cputime]).to be_a(Float) + expect(summary[:time_realtime]).to be_a(Float) + expect(summary[:time_monotonic]).to be_a(Float) + end + end end context 'when /proc files do not exist' do @@ -128,6 +147,21 @@ RSpec.describe Gitlab::Metrics::System do expect(described_class.max_open_file_descriptors).to eq(0) end end + + describe '.summary' do + it 'returns only available fields' do + summary = described_class.summary + + expect(summary[:version]).to be_a(String) + expect(summary[:gc_stat].keys).to eq(GC.stat.keys) + expect(summary[:memory_rss]).to eq(0) + expect(summary[:memory_uss]).to eq(0) + expect(summary[:memory_pss]).to eq(0) + expect(summary[:time_cputime]).to be_a(Float) + expect(summary[:time_realtime]).to be_a(Float) + expect(summary[:time_monotonic]).to be_a(Float) + end + end end describe '.cpu_time' do |