mongobile 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/lib/mongobile/app.rb CHANGED
@@ -18,6 +18,10 @@ module Mongobile
18
18
  haml :index
19
19
  end
20
20
 
21
+ get "/status" do
22
+ haml :status
23
+ end
24
+
21
25
  get "/database/:id" do
22
26
  @database = db(params[:id])
23
27
  @collections = @database.collections
@@ -63,5 +63,41 @@ module Mongobile
63
63
  end
64
64
  r
65
65
  end
66
+
67
+ def server_status
68
+ db("test").command(:serverStatus => 1)
69
+ end
70
+
71
+ def ops_per_second
72
+ counters = []
73
+ time_list = []
74
+ delays = []
75
+
76
+ 4.times do
77
+ delays << Benchmark.realtime do
78
+ counters << server_status["opcounters"]
79
+ end
80
+ time_list << Time.now
81
+
82
+ sleep 1
83
+ end
84
+
85
+ ops_average = {"query" => 0, "insert" => 0, "command" => 0, "update" => 0, "getmore" => 0, "delete" => 0}
86
+ time_average = 0
87
+ 1.upto(counters.size-1) do |index|
88
+ ops_average.keys.each do |k|
89
+ ops_average[k] += (counters[index][k] - counters[index-1][k])
90
+ end
91
+ time_average += (time_list[index] - time_list[index-1]) - delays[index]
92
+ end
93
+
94
+ time_average /= counters.size
95
+
96
+ ops_average.each do |k,v|
97
+ ops_average[k] = ((ops_average[k] / counters.size)/time_average).round
98
+ end
99
+
100
+ ops_average
101
+ end
66
102
  end
67
- end
103
+ end
@@ -26,7 +26,7 @@
26
26
  -count+=1
27
27
  %div(data-role="collapsible" data-collapsed=true)
28
28
  %h1
29
- &= document["_id"] +" "+ (document["name"] || document["title"] || document["description"] || document["message"] || "")
29
+ &= document["_id"] +"#{humanize(document["name"] || document["title"] || document["description"])}"
30
30
  -document.each do |k,v|
31
31
  %b
32
32
  &="#{k}="
@@ -2,6 +2,8 @@
2
2
  %div(data-role="header")
3
3
  %h1
4
4
  Databases
5
+ %a(href="/status" class="ui-btn-right")
6
+ Status
5
7
  %div(data-role="content")
6
8
  %ul(data-role="listview" data-filter="true")
7
9
  -@databases.each do |database|
@@ -0,0 +1,75 @@
1
+ -status = server_status
2
+ -background_flushing = status.delete("backgroundFlushing")
3
+ -global_lock = status.delete("globalLock")
4
+ -network = status.delete("network")
5
+ -mem = status.delete("mem")
6
+ -ops = status.delete("opcounters")
7
+
8
+ %div(data-role="page")
9
+ %div(data-role="header")
10
+ %h1
11
+ Server Status
12
+ %div(data-role="content")
13
+ %div(data-role="collapsible" data-collapsed=true)
14
+ %h1
15
+ Server Status
16
+ -normalize_stats(status).each do |k,v|
17
+ %b
18
+ &="#{k}="
19
+ &=humanize v
20
+ %br
21
+
22
+ %div(data-role="collapsible" data-collapsed=true)
23
+ %h1
24
+ Operations Per Second
25
+ -ops_per_second.each do |k, v|
26
+ %b
27
+ &="#{k}="
28
+ &=humanize v
29
+ %br
30
+
31
+ %div(data-role="collapsible" data-collapsed=true)
32
+ %h1
33
+ Background Flushing
34
+ -normalize_stats(background_flushing).each do |k,v|
35
+ %b
36
+ &="#{k}="
37
+ &=humanize v
38
+ %br
39
+
40
+ %div(data-role="collapsible" data-collapsed=true)
41
+ %h1
42
+ Global Lock
43
+ -normalize_stats(global_lock).each do |k,v|
44
+ %b
45
+ &="#{k}="
46
+ &=humanize v
47
+ %br
48
+ %div(data-role="collapsible" data-collapsed=true)
49
+ %h1
50
+ Network
51
+ -normalize_stats(network).each do |k,v|
52
+ %b
53
+ &="#{k}="
54
+ &=humanize v
55
+ %br
56
+ %div(data-role="collapsible" data-collapsed=true)
57
+ %h1
58
+ Memory
59
+ -normalize_stats(mem).each do |k,v|
60
+ %b
61
+ &="#{k}="
62
+ &=humanize v
63
+ %br
64
+
65
+ %div(data-role="collapsible" data-collapsed=true)
66
+ %h1
67
+ Operations
68
+ -normalize_stats(ops).each do |k,v|
69
+ %b
70
+ &="#{k}="
71
+ &=humanize v
72
+ %br
73
+
74
+
75
+ %div(data-role="footer")
data/lib/mongobile.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'rubygems'
2
+ require 'bundler'
2
3
  require 'bundler/setup'
3
4
 
5
+ require 'benchmark'
4
6
  require 'sinatra'
5
7
  require 'haml'
6
8
  require 'bson'
data/mongobile.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mongobile}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David A. Cuadrado"]
12
- s.date = %q{2010-12-21}
12
+ s.date = %q{2010-12-22}
13
13
  s.default_executable = %q{mongobile}
14
14
  s.description = %q{admin ui for mongodb based on jquery mobile}
15
15
  s.email = %q{krawek@gmail.com}
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
36
36
  "lib/mongobile/views/database/show.haml",
37
37
  "lib/mongobile/views/index.haml",
38
38
  "lib/mongobile/views/layout.haml",
39
+ "lib/mongobile/views/status.haml",
39
40
  "mongobile.gemspec",
40
41
  "public/javascripts/application.js",
41
42
  "public/javascripts/jquery.mobile-1.0a3pre.min.js",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongobile
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - David A. Cuadrado
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-21 00:00:00 -05:00
18
+ date: 2010-12-22 00:00:00 -05:00
19
19
  default_executable: mongobile
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -201,6 +201,7 @@ files:
201
201
  - lib/mongobile/views/database/show.haml
202
202
  - lib/mongobile/views/index.haml
203
203
  - lib/mongobile/views/layout.haml
204
+ - lib/mongobile/views/status.haml
204
205
  - mongobile.gemspec
205
206
  - public/javascripts/application.js
206
207
  - public/javascripts/jquery.mobile-1.0a3pre.min.js