riemann-dash 0.0.3 → 0.0.4
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/lib/riemann/dash.rb +8 -7
- data/lib/riemann/dash/helper/renderer.rb +25 -17
- data/lib/riemann/dash/version.rb +1 -1
- data/lib/riemann/dash/views/index.erubis +2 -2
- metadata +42 -17
data/lib/riemann/dash.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rubygems'
|
1
2
|
require 'riemann/client'
|
2
3
|
require 'sinatra/base'
|
3
4
|
|
@@ -12,17 +13,17 @@ module Riemann
|
|
12
13
|
|
13
14
|
def self.config
|
14
15
|
@config ||= {
|
15
|
-
client
|
16
|
-
age_scale
|
17
|
-
state_order
|
16
|
+
:client => {},
|
17
|
+
:age_scale => 60 * 30,
|
18
|
+
:state_order => {
|
18
19
|
'critical' => 3,
|
19
20
|
'warning' => 2,
|
20
21
|
'ok' => 1
|
21
22
|
},
|
22
|
-
strftime
|
23
|
-
controllers
|
24
|
-
helpers
|
25
|
-
views
|
23
|
+
:strftime => '%H:%M:%S',
|
24
|
+
:controllers => [File.join(File.dirname(__FILE__), 'dash', 'controller')],
|
25
|
+
:helpers => [File.join(File.dirname(__FILE__), 'dash', 'helper')],
|
26
|
+
:views => File.join(File.dirname(__FILE__), 'dash', 'views')
|
26
27
|
}
|
27
28
|
end
|
28
29
|
|
@@ -47,7 +47,7 @@ module Riemann
|
|
47
47
|
table(
|
48
48
|
*Event.partition(states, :host).map do |host, states|
|
49
49
|
tr(
|
50
|
-
th(host, class
|
50
|
+
th(host, :class => 'host'),
|
51
51
|
*Event.sort(states, :service).map do |state|
|
52
52
|
state_short state
|
53
53
|
end
|
@@ -59,7 +59,7 @@ module Riemann
|
|
59
59
|
# Renders a state as the given HTML tag with a % width corresponding to
|
60
60
|
# metric / max.
|
61
61
|
def state_bar(s, opts = {})
|
62
|
-
opts = {tag
|
62
|
+
opts = {:tag => 'div', :max => 1}.merge opts
|
63
63
|
|
64
64
|
return '' unless s
|
65
65
|
x = s.metric
|
@@ -71,21 +71,30 @@ module Riemann
|
|
71
71
|
when Integer
|
72
72
|
x.to_s
|
73
73
|
else
|
74
|
-
'?'
|
74
|
+
s.state || '?'
|
75
75
|
end
|
76
76
|
|
77
77
|
# Size
|
78
|
-
size =
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
size = case x
|
79
|
+
when 0
|
80
|
+
0
|
81
|
+
when nil
|
82
|
+
100
|
83
|
+
else
|
84
|
+
begin
|
85
|
+
x * 100 / opts[:max]
|
86
|
+
rescue ZeroDivisionError
|
87
|
+
0
|
88
|
+
end
|
89
|
+
end
|
83
90
|
size = "%.2f" % size
|
84
91
|
|
92
|
+
time = Time.at(s.time).strftime(Dash.config[:strftime])
|
93
|
+
|
85
94
|
tag opts[:tag], h(text),
|
86
95
|
:class => "state #{s.state}",
|
87
|
-
style
|
88
|
-
title
|
96
|
+
:style => "opacity: #{age_fraction s.time}; width: #{size}%",
|
97
|
+
:title => "#{s.state}\n#{s.description}\n\n(at #{time})"
|
89
98
|
end
|
90
99
|
|
91
100
|
# Renders a set of states in a chart. Each row is a given host, each
|
@@ -179,12 +188,11 @@ module Riemann
|
|
179
188
|
*hosts.map do |host|
|
180
189
|
s = by[[host, service]]
|
181
190
|
td(
|
182
|
-
s ? state_bar(s, max
|
191
|
+
s ? state_bar(s, :max => maxima[service]) : nil
|
183
192
|
)
|
184
193
|
end
|
185
194
|
)
|
186
|
-
end
|
187
|
-
:class => 'chart'
|
195
|
+
end << {:class => 'chart'} # ruby 1.8.7 this is your fault
|
188
196
|
)
|
189
197
|
else
|
190
198
|
h2(title) +
|
@@ -201,18 +209,18 @@ module Riemann
|
|
201
209
|
*services.map do |service|
|
202
210
|
s = by[[host, service]]
|
203
211
|
td(
|
204
|
-
s ? state_bar(s, max
|
212
|
+
s ? state_bar(s, :max => maxima[service]) : nil
|
205
213
|
)
|
206
214
|
end
|
207
215
|
)
|
208
|
-
end
|
209
|
-
:class => 'chart'
|
216
|
+
end <<
|
217
|
+
{:class => 'chart'}
|
210
218
|
)
|
211
219
|
end
|
212
220
|
end
|
213
221
|
|
214
222
|
# Renders a state as a short tag.
|
215
|
-
def state_short(s, opts={tag
|
223
|
+
def state_short(s, opts={:tag => 'li'})
|
216
224
|
if s
|
217
225
|
"<#{opts[:tag]} class=\"state #{s.state}\" style=\"opacity: #{age_fraction s.time}\" title=\"#{h s.description}\">#{h s.host} #{h s.service}</#{opts[:tag]}>"
|
218
226
|
else
|
data/lib/riemann/dash/version.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="box"><%= state_list query('state != "ok"') %></div>
|
3
3
|
|
4
4
|
<div class="box">
|
5
|
-
<%= state_chart query('service = "cpu" or service = "memory" or service =~ "disk%" or service = "load"'), title
|
5
|
+
<%= state_chart query('service = "cpu" or service = "memory" or service =~ "disk%" or service = "load"'), :title => "Health" %>
|
6
6
|
</div>
|
7
7
|
|
8
|
-
<div class="box"><%= state_chart query('true'), title
|
8
|
+
<div class="box"><%= state_chart query('true'), :title => "Everything" %></div>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riemann-dash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: riemann-client
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: 0.0.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.0.3
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: erubis
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: 2.7.0
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.7.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: sinatra
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: 1.3.2
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.2
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: sass
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: 3.1.14
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.1.14
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: thin
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,7 +85,12 @@ dependencies:
|
|
65
85
|
version: 1.3.1
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.3.1
|
69
94
|
description:
|
70
95
|
email: aphyr@aphyr.com
|
71
96
|
executables:
|
@@ -75,13 +100,13 @@ extra_rdoc_files: []
|
|
75
100
|
files:
|
76
101
|
- lib/riemann/dash.rb
|
77
102
|
- lib/riemann/dash/version.rb
|
78
|
-
- lib/riemann/dash/
|
79
|
-
- lib/riemann/dash/
|
103
|
+
- lib/riemann/dash/controller/css.rb
|
104
|
+
- lib/riemann/dash/controller/index.rb
|
80
105
|
- lib/riemann/dash/views/layout.erubis
|
106
|
+
- lib/riemann/dash/views/index.erubis
|
81
107
|
- lib/riemann/dash/views/css.scss
|
82
|
-
- lib/riemann/dash/controller/index.rb
|
83
|
-
- lib/riemann/dash/controller/css.rb
|
84
108
|
- lib/riemann/dash/helper/renderer.rb
|
109
|
+
- lib/riemann/dash/rack/static.rb
|
85
110
|
- bin/riemann-dash
|
86
111
|
- LICENSE
|
87
112
|
- README.markdown
|
@@ -105,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
130
|
version: '0'
|
106
131
|
requirements: []
|
107
132
|
rubyforge_project: riemann-dash
|
108
|
-
rubygems_version: 1.8.
|
133
|
+
rubygems_version: 1.8.22
|
109
134
|
signing_key:
|
110
135
|
specification_version: 3
|
111
136
|
summary: HTTP dashboard for the distributed event system Riemann.
|