smoke 0.0.1 → 0.0.3

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/History.txt CHANGED
@@ -1,3 +1,13 @@
1
+ == 0.0.3 2008-04-01
2
+
3
+ * Updated History.txt - d'oh!
4
+
5
+ == 0.0.2 2008-04-01
6
+
7
+ * The scripts in bin/ now actually run which is nice.
8
+ * Example of using smoke-0.0.2 is available at
9
+ http://barkingiguana.com/2008/04/01/port-monitoring-with-smoke
10
+
1
11
  == 0.0.1 2008-03-29
2
12
 
3
13
  * Initial release
data/Manifest.txt CHANGED
@@ -7,11 +7,10 @@ bin/smoke
7
7
  bin/smoked
8
8
  config/hoe.rb
9
9
  config/requirements.rb
10
- etc/smoke.d/processors/smoke/remote_port_status_check_processor.rb
11
- etc/smoke.d/processors/smoke/system_load_processor.rb
12
- etc/smoke.d/signals/smoke/random_status_demo.rb
13
- etc/smoke.d/signals/smoke/remote_port_status_check.rb
14
- etc/smoke.d/signals/smoke/system_load.rb
10
+ contrib/processors/smoke/remote_port_status_check_processor.rb
11
+ contrib/processors/smoke/system_load_processor.rb
12
+ contrib/signals/smoke/remote_port_status_check.rb
13
+ contrib/signals/smoke/system_load.rb
15
14
  lib/smoke.rb
16
15
  lib/smoke/client.rb
17
16
  lib/smoke/client/connection.rb
@@ -24,7 +23,6 @@ lib/smoke/server/version.rb
24
23
  lib/smoke/signal.rb
25
24
  lib/smoke/signal_processor.rb
26
25
  lib/smoke/version.rb
27
- load_average.png
28
26
  log/debug.log
29
27
  log/development.log
30
28
  log/production.log
data/bin/smoke CHANGED
@@ -1,9 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- GEM_ROOT = File.expand_path(File.dirname(File.dirname(__FILE__)))
4
- SIGNAL_DIRECTORIES = [ "#{GEM_ROOT}/etc/smoke.d/signals", "/etc/smoke.d/signals" ]
3
+ SIGNAL_DIRECTORIES = [ "/etc/smoke.d/signals" ]
5
4
 
6
- $: << File.join(GEM_ROOT, 'lib')
7
5
  SIGNAL_DIRECTORIES.each_with_index do |directory, index|
8
6
  if directory =~ /[^\/]$/
9
7
  directory += '/'
data/bin/smoked CHANGED
@@ -4,10 +4,9 @@
4
4
  # Copyright (c) 2008 Craig R Webster <craig@barkingiguana.com>
5
5
  #
6
6
 
7
- $: << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
8
7
  require 'rubygems'
9
8
  require 'mongrel'
10
- require 'lib/smoke/server'
9
+ require 'smoke/server'
11
10
  require 'optparse'
12
11
 
13
12
  OPTIONS = {
@@ -1,3 +1,5 @@
1
+ # This Smoke::SignalProcessor simple prints out any signals it receives.
2
+ #
1
3
  module Smoke
2
4
  class RemotePortStatusCheckProcessor < Smoke::SignalProcessor
3
5
  def process(signal)
@@ -1,3 +1,14 @@
1
+ # An example SignalProcessor that generates a graph of the last 60 reported
2
+ # SystemLoad signals.
3
+ #
4
+ # It's pretty naff - it doesn't do any sort of time bounding so I can't say
5
+ # that the graph is of the last 60 minutes or anything, but it's certainly
6
+ # possible to do so if you fancy recording the timestamp that came in with
7
+ # the report.
8
+ #
9
+ # Remember, if you're doing any heavy lifting such as generating images do
10
+ # push that work off into another Thread to avoid blocking the current thread.
11
+ #
1
12
  require 'rubygems'
2
13
  require 'scruffy'
3
14
 
@@ -1,3 +1,12 @@
1
+ # This is an example of a signal which will interupt the SignalRunner when
2
+ # something important hapens. As you can see, all you need to do is implement
3
+ # the #start method. This should launch into a new Thread doing whatever you
4
+ # need. When something significant happens you should call @client.report and
5
+ # give it some data to report in the form of a Hash.
6
+ #
7
+ # To deal with data on the server side, create a class that extends
8
+ # Smoke::SignalProcesor.
9
+ #
1
10
  module Smoke
2
11
  class RemotePortStatusCheck < Smoke::Signal
3
12
  HOSTS_PORTS_AND_STATUSES = [
@@ -6,10 +15,6 @@ module Smoke
6
15
  [ "localhost", 80, :down ]
7
16
  ]
8
17
 
9
- def initialize(client)
10
- @client = client
11
- end
12
-
13
18
  def start
14
19
  HOSTS_PORTS_AND_STATUSES.map do |check|
15
20
  Thread.new(@client, check) do |client, c|
@@ -0,0 +1,23 @@
1
+ # This is an example of a signal which will be polled for status by the
2
+ # SignalRunner. As you can see, all you need to do is implement the #run
3
+ # method. Of course, nothing is stopping you doing anything else: the class
4
+ # can be as complicated as you want and do anything you want it to, as long as
5
+ # it returns a Hash of data using #run.
6
+ #
7
+ # To deal with data on the server side, create a class that extends
8
+ # Smoke::SignalProcesor.
9
+ #
10
+ module Smoke
11
+ class SystemLoad < Smoke::Signal
12
+ def run
13
+ one_minute, five_minutes, fifteen_minutes = %x[uptime].strip.split(/load averages: /).last.split(/ /)
14
+ {
15
+ :report => {
16
+ :one_minute => one_minute.to_f,
17
+ :five_minutes => five_minutes.to_f,
18
+ :fifteen_minutes => fifteen_minutes.to_f
19
+ }
20
+ }
21
+ end
22
+ end
23
+ end
data/lib/smoke/version.rb CHANGED
@@ -2,7 +2,7 @@ module Smoke #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 1
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/website/index.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <link rel="stylesheet" href="stylesheets/screen.css" type="text/css" media="screen" />
6
6
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7
7
  <title>
8
- server
8
+ Smoke
9
9
  </title>
10
10
  <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
11
11
  <style>
@@ -30,12 +30,12 @@
30
30
  <body>
31
31
  <div id="main">
32
32
 
33
- <h1>server</h1>
33
+ <h1>Smoke</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/server"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/server" class="numbers">0.0.1</a>
36
+ <a href="http://rubyforge.org/projects/server" class="numbers">0.0.3</a>
37
37
  </div>
38
- <h1>&#x2192; &#8216;server&#8217;</h1>
38
+ <h1>&#x2192; &#8216;A distributed reporting framework&#8217;</h1>
39
39
 
40
40
 
41
41
  <h2>What</h2>
@@ -44,7 +44,7 @@
44
44
  <h2>Installing</h2>
45
45
 
46
46
 
47
- <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">server</span></pre></p>
47
+ <p><pre class='syntax'><span class="ident">sudo</span> <span class="ident">gem</span> <span class="ident">install</span> <span class="ident">smoke</span></pre></p>
48
48
 
49
49
 
50
50
  <h2>The basics</h2>
@@ -53,13 +53,7 @@
53
53
  <h2>Demonstration of usage</h2>
54
54
 
55
55
 
56
- <h2>Forum</h2>
57
-
58
-
59
- <p><a href="http://groups.google.com/group/server">http://groups.google.com/group/server</a></p>
60
-
61
-
62
- <p><span class="caps">TODO</span> &#8211; create Google Group &#8211; server</p>
56
+ <p>Still to be done (sorry!)</p>
63
57
 
64
58
 
65
59
  <h2>How to submit patches</h2>
@@ -68,7 +62,7 @@
68
62
  <p>Read the <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/">8 steps for fixing other people&#8217;s code</a> and for section <a href="http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups">8b: Submit patch to Google Groups</a>, use the Google Group above.</p>
69
63
 
70
64
 
71
- <p>The trunk repository is <code>svn://rubyforge.org/var/svn/server/trunk</code> for anonymous access.</p>
65
+ <p>The origin is <code>git://barkingiguana.com/smoke.git</code>.</p>
72
66
 
73
67
 
74
68
  <h2>License</h2>
@@ -80,9 +74,8 @@
80
74
  <h2>Contact</h2>
81
75
 
82
76
 
83
- <p>Comments are welcome. Send an email to <a href="mailto:FIXME"><span class="caps">FIXME</span> full name</a> email via the <a href="http://groups.google.com/group/server">forum</a></p>
77
+ <p>Comments are welcome. Send an email to <a href="mailto:craig@barkingiguana.com">Craig Webster</a>.</p>
84
78
  <p class="coda">
85
- <a href="TODO">TODO</a>, 29th March 2008<br>
86
79
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>,
87
80
  by Daniel Cadenas via <a href="http://depgraph.rubyforge.org/">DepGraph</a>
88
81
  </p>
data/website/index.txt CHANGED
@@ -1,33 +1,24 @@
1
- h1. server
2
-
3
- h1. &#x2192; 'server'
1
+ h1. Smoke
4
2
 
3
+ h1. &#x2192; 'A distributed reporting framework'
5
4
 
6
5
  h2. What
7
6
 
8
-
9
7
  h2. Installing
10
8
 
11
- <pre syntax="ruby">sudo gem install server</pre>
9
+ <pre syntax="ruby">sudo gem install smoke</pre>
12
10
 
13
11
  h2. The basics
14
12
 
15
-
16
13
  h2. Demonstration of usage
17
14
 
18
-
19
-
20
- h2. Forum
21
-
22
- "http://groups.google.com/group/server":http://groups.google.com/group/server
23
-
24
- TODO - create Google Group - server
15
+ Still to be done (sorry!)
25
16
 
26
17
  h2. How to submit patches
27
18
 
28
19
  Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
29
20
 
30
- The trunk repository is <code>svn://rubyforge.org/var/svn/server/trunk</code> for anonymous access.
21
+ The origin is <code>git://barkingiguana.com/smoke.git</code>.
31
22
 
32
23
  h2. License
33
24
 
@@ -35,5 +26,4 @@ This code is free to use under the terms of the MIT license.
35
26
 
36
27
  h2. Contact
37
28
 
38
- Comments are welcome. Send an email to "FIXME full name":mailto:FIXME email via the "forum":http://groups.google.com/group/server
39
-
29
+ Comments are welcome. Send an email to "Craig Webster":mailto:craig@barkingiguana.com.
@@ -37,7 +37,6 @@
37
37
  </div>
38
38
  <%= body %>
39
39
  <p class="coda">
40
- <a href="TODO">TODO</a>, <%= modified.pretty %><br>
41
40
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>,
42
41
  by Daniel Cadenas via <a href="http://depgraph.rubyforge.org/">DepGraph</a>
43
42
  </p>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smoke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig R Webster
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-29 23:00:00 +00:00
12
+ date: 2008-04-01 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -37,11 +37,10 @@ files:
37
37
  - bin/smoked
38
38
  - config/hoe.rb
39
39
  - config/requirements.rb
40
- - etc/smoke.d/processors/smoke/remote_port_status_check_processor.rb
41
- - etc/smoke.d/processors/smoke/system_load_processor.rb
42
- - etc/smoke.d/signals/smoke/random_status_demo.rb
43
- - etc/smoke.d/signals/smoke/remote_port_status_check.rb
44
- - etc/smoke.d/signals/smoke/system_load.rb
40
+ - contrib/processors/smoke/remote_port_status_check_processor.rb
41
+ - contrib/processors/smoke/system_load_processor.rb
42
+ - contrib/signals/smoke/remote_port_status_check.rb
43
+ - contrib/signals/smoke/system_load.rb
45
44
  - lib/smoke.rb
46
45
  - lib/smoke/client.rb
47
46
  - lib/smoke/client/connection.rb
@@ -54,7 +53,6 @@ files:
54
53
  - lib/smoke/signal.rb
55
54
  - lib/smoke/signal_processor.rb
56
55
  - lib/smoke/version.rb
57
- - load_average.png
58
56
  - log/debug.log
59
57
  - log/development.log
60
58
  - log/production.log
@@ -1,7 +0,0 @@
1
- module Smoke
2
- class RandomStatusDemo < Smoke::Signal
3
- def run
4
- { :report => { :status => %W(OK FAIL UNKNOWN)[rand(3).round] } }
5
- end
6
- end
7
- end
@@ -1,14 +0,0 @@
1
- module Smoke
2
- class SystemLoad < Smoke::Signal
3
- def run
4
- one_minute, five_minutes, fifteen_minutes = %x[uptime].strip.split(/load averages: /).last.split(/ /)
5
- {
6
- :report => {
7
- :one_minute => one_minute.to_f,
8
- :five_minutes => five_minutes.to_f,
9
- :fifteen_minutes => fifteen_minutes.to_f
10
- }
11
- }
12
- end
13
- end
14
- end
data/load_average.png DELETED
Binary file