finch 0.0.1 → 0.1.0
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/README.md +11 -3
- data/lib/finch.rb +14 -12
- data/lib/finch/version.rb +1 -1
- data/lib/views/ping.slim +11 -6
- metadata +2 -2
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
finch is a barebone monitoring dashboard.
|
4
4
|
|
5
|
+

|
6
|
+
|
5
7
|
## Installation
|
6
8
|
|
7
9
|
Ruby 1.9.2 is required.
|
@@ -26,9 +28,15 @@ Configure a `config.ru` file:
|
|
26
28
|
require "finch"
|
27
29
|
|
28
30
|
Finch.declare do |declarator|
|
29
|
-
declarator.ping
|
30
|
-
declarator.ping
|
31
|
-
declarator.ping
|
31
|
+
declarator.ping "Admin", host: "localhost", port: 3000, group: "Apps"
|
32
|
+
declarator.ping "Front", host: "localhost", port: 3000, group: "Apps"
|
33
|
+
declarator.ping "Public Api", host: "localhost", port: 3200, group: "Api"
|
34
|
+
declarator.ping "Private Api", host: "localhost", port: 3300, group: "Api"
|
35
|
+
declarator.ping "Redis", host: "localhost", port: 6379, group: "DB"
|
36
|
+
declarator.ping "Mongo", host: "localhost", port: 27017, group: "DB"
|
37
|
+
declarator.ping "ElasticSearch", host: "localhost", port: 9200, group: "DB"
|
38
|
+
declarator.ping "Beanstalkd", host: "localhost", port: 11300, group: "Messaging"
|
39
|
+
declarator.ping "Finch", host: "localhost", port: 9292
|
32
40
|
end
|
33
41
|
|
34
42
|
run Finch::App
|
data/lib/finch.rb
CHANGED
@@ -11,9 +11,10 @@ module Finch
|
|
11
11
|
state == :ok ? "success" : "error"
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
14
15
|
get "/" do
|
15
|
-
slim :ping, locals: {pings: settings.
|
16
|
-
Celluloid::Actor[
|
16
|
+
slim :ping, locals: {pings: settings.pings.map do |ping|
|
17
|
+
Celluloid::Actor[ping]
|
17
18
|
end
|
18
19
|
}
|
19
20
|
end
|
@@ -21,13 +22,14 @@ module Finch
|
|
21
22
|
|
22
23
|
class Pinger
|
23
24
|
include Celluloid
|
24
|
-
attr_reader :timer, :host, :port
|
25
|
+
attr_reader :timer, :host, :port, :group
|
25
26
|
attr_accessor :last_success, :state, :name
|
26
27
|
|
27
|
-
def initialize(opts = {})
|
28
|
-
@name =
|
28
|
+
def initialize(name, opts = {})
|
29
|
+
@name = name
|
29
30
|
@host = opts.fetch(:host, "localhost")
|
30
|
-
@
|
31
|
+
@group = opts.fetch(:group, "Default")
|
32
|
+
@port = opts.fetch(:port, lambda { raise(ArgumentError) })
|
31
33
|
@timer = every(opts.fetch(:frequency, 30)) { ping }
|
32
34
|
ping
|
33
35
|
end
|
@@ -53,21 +55,21 @@ module Finch
|
|
53
55
|
end
|
54
56
|
|
55
57
|
class Declator
|
56
|
-
attr_reader :
|
58
|
+
attr_reader :pings
|
57
59
|
|
58
60
|
def initialize
|
59
|
-
@
|
61
|
+
@pings = []
|
60
62
|
end
|
61
63
|
|
62
|
-
def ping(opts)
|
63
|
-
|
64
|
-
Pinger.supervise_as(
|
64
|
+
def ping(name, opts)
|
65
|
+
pings << name
|
66
|
+
Pinger.supervise_as(name, name, opts)
|
65
67
|
end
|
66
68
|
end
|
67
69
|
|
68
70
|
def declare
|
69
71
|
yield declarator = Declator.new
|
70
|
-
App.set :
|
72
|
+
App.set :pings, declarator.pings
|
71
73
|
end
|
72
74
|
|
73
75
|
module_function :declare
|
data/lib/finch/version.rb
CHANGED
data/lib/views/ping.slim
CHANGED
@@ -2,8 +2,9 @@ doctype
|
|
2
2
|
html
|
3
3
|
head
|
4
4
|
meta charset="utf-8"
|
5
|
-
title
|
5
|
+
title Finch
|
6
6
|
link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.0/css/bootstrap-combined.min.css" rel="stylesheet"
|
7
|
+
meta http-equiv="refresh" content="30"
|
7
8
|
body
|
8
9
|
.container
|
9
10
|
header class="jumbotron subhead" id="overview"
|
@@ -14,8 +15,12 @@ html
|
|
14
15
|
th Name
|
15
16
|
th State
|
16
17
|
th Last success
|
17
|
-
- pings.each do |
|
18
|
-
tr
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
- pings.group_by(&:group).each do |group|
|
19
|
+
tr
|
20
|
+
th colspan=3
|
21
|
+
= group.first
|
22
|
+
- group.last.each do |ping|
|
23
|
+
tr class="#{class_for_status(ping.state)}"
|
24
|
+
td= ping.name
|
25
|
+
td= ping.state
|
26
|
+
td= ping.last_success
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-02-
|
12
|
+
date: 2013-02-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: celluloid
|