mongobile 0.1.0 → 0.1.1

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.
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