redis_monitor 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|