diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2019-06-04 12:11:56 +0300 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2019-06-04 12:11:56 +0300 |
commit | 142a86783e8e618843beb696c5302232ce661fa1 (patch) | |
tree | 420e1ae2ed359a85cd04d07b366cc93b32f04919 | |
parent | 5915dec667713ae4c7f4685bdefceb92ef446076 (diff) | |
parent | d4a83ce5a3f8bc6024091e3c75d81ce3fa413a56 (diff) |
Merge branch 'puma-fix' into 'master'
Ignore Puma empty worker stats
See merge request gitlab-org/gitlab-ce!28932
-rw-r--r-- | lib/gitlab/metrics/samplers/puma_sampler.rb | 3 | ||||
-rw-r--r-- | spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb | 27 |
2 files changed, 29 insertions, 1 deletions
diff --git a/lib/gitlab/metrics/samplers/puma_sampler.rb b/lib/gitlab/metrics/samplers/puma_sampler.rb index 87669b253bc..25e40c70230 100644 --- a/lib/gitlab/metrics/samplers/puma_sampler.rb +++ b/lib/gitlab/metrics/samplers/puma_sampler.rb @@ -51,10 +51,11 @@ module Gitlab set_master_metrics(stats) stats['worker_status'].each do |worker| + last_status = worker['last_status'] labels = { worker: "worker_#{worker['index']}" } metrics[:puma_phase].set(labels, worker['phase']) - set_worker_metrics(worker['last_status'], labels) + set_worker_metrics(last_status, labels) if last_status.present? end end diff --git a/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb b/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb index c471c30a194..f4a6e1fc7d9 100644 --- a/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb +++ b/spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb @@ -61,6 +61,33 @@ describe Gitlab::Metrics::Samplers::PumaSampler do end end + context 'with empty worker stats' do + let(:puma_stats) do + <<~EOS + { + "workers": 2, + "phase": 2, + "booted_workers": 2, + "old_workers": 0, + "worker_status": [{ + "pid": 32534, + "index": 0, + "phase": 1, + "booted": true, + "last_checkin": "2019-05-15T07:57:55Z", + "last_status": {} + }] + } + EOS + end + + it 'does not log worker stats' do + expect(subject).not_to receive(:set_worker_metrics) + + subject.sample + end + end + context 'in single mode' do let(:puma_stats) do <<~EOS |