redis_monitor 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/controllers/base_controller.rb +2 -2
- data/lib/controllers/content_controller.rb +19 -0
- data/lib/controllers/info_controller.rb +4 -2
- data/lib/controllers/performance_controller.rb +6 -4
- data/lib/helpers/layouts_helper.rb +10 -7
- data/lib/modules/backend.rb +5 -1
- data/lib/modules/controllers.rb +1 -0
- data/lib/modules/router.rb +6 -3
- data/lib/modules/version.rb +1 -1
- data/lib/views/content/_search_form.haml +10 -0
- data/lib/views/content/index.haml +1 -0
- data/lib/views/content/search.haml +17 -0
- data/spec/controllers/content_controller_spec.rb +23 -0
- data/spec/modules/backend_spec.rb +19 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79092e09550d8bcba8120074790e62443fd811ab
|
4
|
+
data.tar.gz: add45fdc52392f1f031555b680509f587ad7224b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2e1da2f8ffa882d255f841ee2420c92ca5dd2e0064a4d503be353d95069aa972683767d668fcde2891dce2dac3da570d9b9f280a5896ebe774275b06f049eb74
|
7
|
+
data.tar.gz: eaf4029ffd01a860eca9f4006a484e3f2c631a9afceac765ab8392d47fd9e83e9452e102c61378a0c3a077e49488d36246c820f12d183953503b6fcb3435fbd9
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
module RedisMonitor
|
3
|
+
module Controllers
|
4
|
+
class ContentController < BaseController
|
5
|
+
include RedisMonitor::Helpers::LayoutsHelper
|
6
|
+
|
7
|
+
SECTION = 'content'
|
8
|
+
|
9
|
+
def index(params = {})
|
10
|
+
haml 'content/index'.to_sym, layout: main_layout, locals: {section: SECTION}
|
11
|
+
end
|
12
|
+
|
13
|
+
def search(params = {})
|
14
|
+
results = Backend.search(params[:key])
|
15
|
+
haml 'content/search'.to_sym, layout: main_layout, locals: {results: results, section: SECTION}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -4,8 +4,10 @@ module RedisMonitor
|
|
4
4
|
class InfoController < BaseController
|
5
5
|
include RedisMonitor::Helpers::LayoutsHelper
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
SECTION = 'info'
|
8
|
+
|
9
|
+
def index(params={})
|
10
|
+
haml 'info/info'.to_sym, layout: main_layout, locals: {info: Backend.info, section: SECTION}
|
9
11
|
end
|
10
12
|
end
|
11
13
|
end
|
@@ -4,13 +4,15 @@ module RedisMonitor
|
|
4
4
|
class PerformanceController < BaseController
|
5
5
|
include RedisMonitor::Helpers::LayoutsHelper
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
SECTION = 'performance'
|
8
|
+
|
9
|
+
def warning(params = {})
|
10
|
+
haml 'performance/warning'.to_sym, layout: main_layout, locals: {section: SECTION}
|
9
11
|
end
|
10
12
|
|
11
|
-
def check
|
13
|
+
def check(params = {})
|
12
14
|
stats = Backend.performance_stats
|
13
|
-
haml 'performance/check'.to_sym, layout: main_layout, locals: {stats: stats, section:
|
15
|
+
haml 'performance/check'.to_sym, layout: main_layout, locals: {stats: stats, section: SECTION}
|
14
16
|
end
|
15
17
|
|
16
18
|
end
|
@@ -5,19 +5,22 @@ module RedisMonitor
|
|
5
5
|
'layouts/main'.to_sym
|
6
6
|
end
|
7
7
|
|
8
|
-
def
|
8
|
+
def selected_is_selected(section, selected)
|
9
9
|
'active' if section == selected
|
10
10
|
end
|
11
11
|
|
12
|
+
def section(opts = {})
|
13
|
+
haml_tag :li, class: selected_is_selected(opts[:name], opts[:selected_section]) do
|
14
|
+
haml_tag :a, opts[:title], href: opts[:url]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
12
18
|
def content_menu(selected_section)
|
13
19
|
capture_haml do
|
14
20
|
haml_tag :ul, class: 'nav navbar-nav' do
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
haml_tag :li, class: selected_section('performance', selected_section) do
|
19
|
-
haml_tag :a, 'Performance', href: '/performance'
|
20
|
-
end
|
21
|
+
section(name: 'info', title: 'Info', url: '/info', selected_section: selected_section)
|
22
|
+
section(name: 'content', title: 'Content', url: '/content', selected_section: selected_section)
|
23
|
+
section(name: 'performance', title: 'Performance', url: '/performance', selected_section: selected_section)
|
21
24
|
end
|
22
25
|
end
|
23
26
|
end
|
data/lib/modules/backend.rb
CHANGED
@@ -7,7 +7,7 @@ module RedisMonitor
|
|
7
7
|
class Backend
|
8
8
|
extend SingleForwardable
|
9
9
|
|
10
|
-
def_delegators :redis, :get, :set, :del, :info, :keys, :dbsize
|
10
|
+
def_delegators :redis, :get, :set, :del, :info, :keys, :dbsize, :monitor
|
11
11
|
|
12
12
|
def self.config(arguments)
|
13
13
|
@@host = arguments[:redis_host]
|
@@ -29,5 +29,9 @@ module RedisMonitor
|
|
29
29
|
def self.performance_stats
|
30
30
|
PerformanceStats.new(self).results
|
31
31
|
end
|
32
|
+
|
33
|
+
def self.search(key)
|
34
|
+
keys(key).map{|found| {key: found, value: get(found)} }
|
35
|
+
end
|
32
36
|
end
|
33
37
|
end
|
data/lib/modules/controllers.rb
CHANGED
data/lib/modules/router.rb
CHANGED
@@ -7,11 +7,14 @@ module RedisMonitor
|
|
7
7
|
|
8
8
|
def self.included(server)
|
9
9
|
server.get('/'){ redirect '/info' }
|
10
|
-
server.get('/info'){ InfoController.new(context: self).execute(:index) }
|
10
|
+
server.get('/info'){ InfoController.new(context: self).execute(:index, params) }
|
11
|
+
|
12
|
+
server.get('/content'){ ContentController.new(context: self).execute(:index, params) }
|
13
|
+
server.get('/content/search'){ ContentController.new(context: self).execute(:search, params) }
|
11
14
|
|
12
15
|
server.get('/performance'){ redirect '/performance/warning' }
|
13
|
-
server.get('/performance/warning'){ PerformanceController.new(context: self).execute(:warning) }
|
14
|
-
server.get('/performance/check'){ PerformanceController.new(context: self).execute(:check) }
|
16
|
+
server.get('/performance/warning'){ PerformanceController.new(context: self).execute(:warning, params) }
|
17
|
+
server.get('/performance/check'){ PerformanceController.new(context: self).execute(:check, params) }
|
15
18
|
end
|
16
19
|
end
|
17
20
|
end
|
data/lib/modules/version.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
- search_term ||= nil
|
2
|
+
|
3
|
+
%form{action: '/content/search', method: 'get', style: 'margin-top: 5px'}
|
4
|
+
.form-group
|
5
|
+
%label{for: 'input_key'}
|
6
|
+
Introduce search terms (wildcards allowed)
|
7
|
+
%input.form-control{type: 'text', id: 'input_key', name: 'key', placeholder: 'Search terms', value: search_term}
|
8
|
+
.form-group
|
9
|
+
%button.btn.btn-default{type: 'submit'}
|
10
|
+
Search
|
@@ -0,0 +1 @@
|
|
1
|
+
= haml 'content/_search_form'.to_sym
|
@@ -0,0 +1,17 @@
|
|
1
|
+
= haml 'content/_search_form'.to_sym, locals: {search_term: params[:key]}
|
2
|
+
|
3
|
+
%table.table.table-striped
|
4
|
+
%thead
|
5
|
+
%tr
|
6
|
+
%th
|
7
|
+
Key
|
8
|
+
%th
|
9
|
+
Value
|
10
|
+
|
11
|
+
%tbody
|
12
|
+
- results.each do |result|
|
13
|
+
%tr
|
14
|
+
%td
|
15
|
+
= result[:key]
|
16
|
+
%td
|
17
|
+
= result[:value]
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ContentController do
|
4
|
+
before :each do
|
5
|
+
@context = double(:context)
|
6
|
+
@controller = ContentController.new(context: @context)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'index action' do
|
10
|
+
it 'should render index template' do
|
11
|
+
@context.should_receive(:haml).with('content/index'.to_sym, anything)
|
12
|
+
@controller.index
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'search action' do
|
17
|
+
it 'should render search template' do
|
18
|
+
Backend.stub(:search){ {} }
|
19
|
+
@context.should_receive(:haml).with('content/search'.to_sym, anything)
|
20
|
+
@controller.search
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -24,4 +24,23 @@ describe Backend do
|
|
24
24
|
Backend.performance_stats.should be_kind_of(Hash)
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
describe 'search' do
|
29
|
+
let(:keys){ ['k1', 'k2', 'k3'] }
|
30
|
+
|
31
|
+
before :each do
|
32
|
+
Backend.stub(:keys){ keys }
|
33
|
+
Backend.stub(:get){ 'value' }
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'should return an array of hashes' do
|
37
|
+
Backend.search('*').should be_kind_of(Array)
|
38
|
+
Backend.search('*')[0].should be_kind_of(Hash)
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'every entry should have key and value data' do
|
42
|
+
Backend.search('*')[0][:key].should_not be_nil
|
43
|
+
Backend.search('*')[0][:value].should_not be_nil
|
44
|
+
end
|
45
|
+
end
|
27
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redis_monitor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javier Jimenez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
@@ -124,6 +124,7 @@ files:
|
|
124
124
|
- Rakefile
|
125
125
|
- bin/redis_monitor
|
126
126
|
- lib/controllers/base_controller.rb
|
127
|
+
- lib/controllers/content_controller.rb
|
127
128
|
- lib/controllers/info_controller.rb
|
128
129
|
- lib/controllers/performance_controller.rb
|
129
130
|
- lib/errors/errors.rb
|
@@ -143,6 +144,9 @@ files:
|
|
143
144
|
- lib/static/scripts/jquery-2.0.3.min.js
|
144
145
|
- lib/static/styles/bootstrap.min.css
|
145
146
|
- lib/static/styles/custom.css
|
147
|
+
- lib/views/content/_search_form.haml
|
148
|
+
- lib/views/content/index.haml
|
149
|
+
- lib/views/content/search.haml
|
146
150
|
- lib/views/errors/redis_not_available.haml
|
147
151
|
- lib/views/info/info.haml
|
148
152
|
- lib/views/layouts/main.haml
|
@@ -150,6 +154,7 @@ files:
|
|
150
154
|
- lib/views/performance/warning.haml
|
151
155
|
- redis_monitor.gemspec
|
152
156
|
- spec/controllers/base_controller_spec.rb
|
157
|
+
- spec/controllers/content_controller_spec.rb
|
153
158
|
- spec/controllers/info_controller_spec.rb
|
154
159
|
- spec/controllers/performance_controller_spec.rb
|
155
160
|
- spec/modules/backend_spec.rb
|
@@ -182,6 +187,7 @@ specification_version: 4
|
|
182
187
|
summary: Get general information of a running redis instance
|
183
188
|
test_files:
|
184
189
|
- spec/controllers/base_controller_spec.rb
|
190
|
+
- spec/controllers/content_controller_spec.rb
|
185
191
|
- spec/controllers/info_controller_spec.rb
|
186
192
|
- spec/controllers/performance_controller_spec.rb
|
187
193
|
- spec/modules/backend_spec.rb
|