diff options
author | blackst0ne <blackst0ne.ru@gmail.com> | 2016-11-22 21:31:01 +1100 |
---|---|---|
committer | blackst0ne <blackst0ne.ru@gmail.com> | 2016-11-23 08:36:03 +1100 |
commit | 40822b618576f06098f3f61cc5e11a29d656619e (patch) | |
tree | f2f443ad441b7600b4d6bd2adaa4fd9d0a9ff2b7 | |
parent | 372209901514368d2053b3abd1a996ebb3e52b3c (diff) | |
download | gitlab-ce-40822b618576f06098f3f61cc5e11a29d656619e.tar.gz |
Fix sidekiq stats in admin area
Added tests
Added changelog entry
Resolved all issues in code
-rw-r--r-- | app/helpers/sidekiq_helper.rb | 10 | ||||
-rw-r--r-- | changelogs/unreleased/fix_sidekiq_stats_in_admin_area.yml | 4 | ||||
-rw-r--r-- | spec/helpers/sidekiq_helper_spec.rb | 23 |
3 files changed, 30 insertions, 7 deletions
diff --git a/app/helpers/sidekiq_helper.rb b/app/helpers/sidekiq_helper.rb index 56749d80bd3..b5017080cfb 100644 --- a/app/helpers/sidekiq_helper.rb +++ b/app/helpers/sidekiq_helper.rb @@ -5,15 +5,11 @@ module SidekiqHelper (?<mem>[\d\.,]+)\s+ (?<state>[DRSTWXZNLsl\+<]+)\s+ (?<start>.+)\s+ - (?<command>sidekiq.*\])\s* + (?<command>sidekiq.*\]) \z/x def parse_sidekiq_ps(line) - match = line.match(SIDEKIQ_PS_REGEXP) - if match - match[1..6] - else - %w[? ? ? ? ? ?] - end + match = line.strip.match(SIDEKIQ_PS_REGEXP) + match ? match[1..6] : Array.new(6, '?') end end diff --git a/changelogs/unreleased/fix_sidekiq_stats_in_admin_area.yml b/changelogs/unreleased/fix_sidekiq_stats_in_admin_area.yml new file mode 100644 index 00000000000..4f007be8624 --- /dev/null +++ b/changelogs/unreleased/fix_sidekiq_stats_in_admin_area.yml @@ -0,0 +1,4 @@ +--- +title: Sidekiq stats in the admin area will now show correctly on different platforms +merge_request: +author: blackst0ne diff --git a/spec/helpers/sidekiq_helper_spec.rb b/spec/helpers/sidekiq_helper_spec.rb index d60839b78ec..f86e496740a 100644 --- a/spec/helpers/sidekiq_helper_spec.rb +++ b/spec/helpers/sidekiq_helper_spec.rb @@ -30,6 +30,29 @@ describe SidekiqHelper do expect(parts).to eq(['55137', '10.0', '2.1', 'S+', '2:30pm', 'sidekiq 4.1.4 gitlab [0 of 25 busy]']) end + it 'parses OSX output' do + line = ' 1641 1.5 3.8 S+ 4:04PM sidekiq 4.2.1 gitlab [0 of 25 busy]' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['1641', '1.5', '3.8', 'S+', '4:04PM', 'sidekiq 4.2.1 gitlab [0 of 25 busy]']) + end + + it 'parses Ubuntu output' do + # Ubuntu Linux 16.04 LTS / procps-3.3.10-4ubuntu2 + line = ' 938 1.4 2.5 Sl+ 21:23:21 sidekiq 4.2.1 gitlab [0 of 25 busy] ' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['938', '1.4', '2.5', 'Sl+', '21:23:21', 'sidekiq 4.2.1 gitlab [0 of 25 busy]']) + end + + it 'parses Debian output' do + # Debian Linux Wheezy/Jessie + line = '17725 1.0 12.1 Ssl 19:20:15 sidekiq 4.2.1 gitlab-rails [0 of 25 busy] ' + parts = helper.parse_sidekiq_ps(line) + + expect(parts).to eq(['17725', '1.0', '12.1', 'Ssl', '19:20:15', 'sidekiq 4.2.1 gitlab-rails [0 of 25 busy]']) + end + it 'does fail gracefully on line not matching the format' do line = '55137 10.0 2.1 S+ 2:30pm something' parts = helper.parse_sidekiq_ps(line) |