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:
authorKamil Trzciński <ayufan@ayufan.eu>2019-06-04 12:11:56 +0300
committerKamil Trzciński <ayufan@ayufan.eu>2019-06-04 12:11:56 +0300
commit142a86783e8e618843beb696c5302232ce661fa1 (patch)
tree420e1ae2ed359a85cd04d07b366cc93b32f04919
parent5915dec667713ae4c7f4685bdefceb92ef446076 (diff)
parentd4a83ce5a3f8bc6024091e3c75d81ce3fa413a56 (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.rb3
-rw-r--r--spec/lib/gitlab/metrics/samplers/puma_sampler_spec.rb27
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