rackamole 0.3.6 → 0.3.7
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +13 -1
- data/README.rdoc +28 -1
- data/Rakefile +3 -2
- data/lib/rackamole.rb +1 -1
- data/lib/rackamole/mole.rb +2 -2
- data/spec/rackamole/alert/emole_spec.rb +6 -6
- data/spec/rackamole/alert/growl_spec.rb +1 -1
- data/spec/rackamole/alert/twitt_spec.rb +1 -1
- data/spec/rackamole/store/log_spec.rb +3 -3
- data/spec/rackamole/store/mongo_db_spec.rb +3 -3
- data/tasks/rdoc.rake +2 -2
- metadata +108 -47
data/HISTORY
CHANGED
@@ -58,4 +58,16 @@
|
|
58
58
|
|
59
59
|
0.3.3
|
60
60
|
* Added support for rackamole store authentication
|
61
|
-
* Fixed issue to enforce regexp when excluded path are specified as strings.
|
61
|
+
* Fixed issue to enforce regexp when excluded path are specified as strings.
|
62
|
+
|
63
|
+
0.3.4
|
64
|
+
* Bugs and clean up
|
65
|
+
|
66
|
+
0.3.5
|
67
|
+
* Bugs and clean up
|
68
|
+
|
69
|
+
0.3.6
|
70
|
+
* Added growl notification alerts
|
71
|
+
|
72
|
+
0.3.7 Updates to use the latest mongo ruby gem
|
73
|
+
NOTE: Some api changed in this version of the mongo ruby driver and hosed OrderedHash refs.
|
data/README.rdoc
CHANGED
@@ -109,7 +109,34 @@
|
|
109
109
|
|
110
110
|
NOTE: Rackamole also provides for preventing certain sensitive params from being logged. You can specify
|
111
111
|
param_excludes or session_excludes as array of symbols to exclude specific request or session params.
|
112
|
-
|
112
|
+
|
113
|
+
=== Alerting
|
114
|
+
|
115
|
+
Rackamole provides 3 different kind of alerting mechanisms: twitter, email, growl
|
116
|
+
Please see docs for the various configuration settings.
|
117
|
+
|
118
|
+
For example to setup email alerts, add the following lines in your rackamole config file.
|
119
|
+
|
120
|
+
# Email
|
121
|
+
email: &email
|
122
|
+
:from: 'rackamole@acme.com'
|
123
|
+
:to:
|
124
|
+
- 'fernand@acme.com'
|
125
|
+
- 'molley@acme.com'
|
126
|
+
:alert_on:
|
127
|
+
- <%=Rackamole.perf%>
|
128
|
+
- <%=Rackamole.fault%>
|
129
|
+
|
130
|
+
Then
|
131
|
+
|
132
|
+
# => Dev
|
133
|
+
development:
|
134
|
+
:app_name: Killer App
|
135
|
+
:user_key: :user_name
|
136
|
+
:email: *email
|
137
|
+
|
138
|
+
This will setup email alerts when rackamole detect performance or uncaught exceptions
|
139
|
+
|
113
140
|
== LICENSE:
|
114
141
|
|
115
142
|
(The MIT License)
|
data/Rakefile
CHANGED
@@ -27,8 +27,9 @@ PROJ.rcov.opts = ["--sort", "coverage", "-T", '-x mongo']
|
|
27
27
|
# Dependencies
|
28
28
|
depend_on "logging" , ">= 1.2.2"
|
29
29
|
depend_on "hitimes" , ">= 1.0.3"
|
30
|
-
depend_on "mongo" , ">= 0.
|
31
|
-
depend_on "
|
30
|
+
depend_on "mongo" , ">= 1.0.1"
|
31
|
+
depend_on "bson" , ">= 1.0.1"
|
32
|
+
depend_on "bson_ext" , ">= 1.0.1"
|
32
33
|
depend_on "chronic" , ">= 0.2.3"
|
33
34
|
depend_on "twitter4r" , ">= 0.3.0"
|
34
35
|
depend_on "erubis" , ">= 2.6.0"
|
data/lib/rackamole.rb
CHANGED
data/lib/rackamole/mole.rb
CHANGED
@@ -291,7 +291,7 @@ module Rack
|
|
291
291
|
;
|
292
292
|
end
|
293
293
|
|
294
|
-
info = OrderedHash.new
|
294
|
+
info = BSON::OrderedHash.new
|
295
295
|
|
296
296
|
return info unless mole_request?( request )
|
297
297
|
|
@@ -385,7 +385,7 @@ module Rack
|
|
385
385
|
|
386
386
|
# filters out params hash and convert values to json
|
387
387
|
def filter_params( source, excludes )
|
388
|
-
results = OrderedHash.new
|
388
|
+
results = BSON::OrderedHash.new
|
389
389
|
source.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |k|
|
390
390
|
results[k.to_sym] = source[k].to_json unless excludes.include?( k.to_sym )
|
391
391
|
end
|
@@ -12,7 +12,7 @@ describe Rackamole::Alert::Emole do
|
|
12
12
|
|
13
13
|
@options = { :email => { :from => @from, :to => @to }, :perf_threshold => 10 }
|
14
14
|
|
15
|
-
@args = OrderedHash.new
|
15
|
+
@args = BSON::OrderedHash.new
|
16
16
|
@args[:type] = Rackamole.feature
|
17
17
|
@args[:method] = "POST"
|
18
18
|
@args[:status] = 200
|
@@ -25,25 +25,25 @@ describe Rackamole::Alert::Emole do
|
|
25
25
|
@args[:request_time] = 0.55
|
26
26
|
@args[:ruby_version] = "ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10.0.0]"
|
27
27
|
|
28
|
-
@args[:params] = OrderedHash.new
|
28
|
+
@args[:params] = BSON::OrderedHash.new
|
29
29
|
@args[:params][:id] = 10
|
30
30
|
@args[:params][:fred] = [10,20,30]
|
31
31
|
|
32
|
-
@args[:session] = OrderedHash.new
|
32
|
+
@args[:session] = BSON::OrderedHash.new
|
33
33
|
@args[:session][:blee] = "Hello World"
|
34
34
|
@args[:session][:fred] = [10,20,30]
|
35
35
|
|
36
|
-
@args[:headers] = OrderedHash.new
|
36
|
+
@args[:headers] = BSON::OrderedHash.new
|
37
37
|
@args[:headers]['Cache-Control'] = "no-cache"
|
38
38
|
@args[:headers]['Content-Type'] = "text/html; charset=utf-8"
|
39
39
|
@args[:headers]['Content-Length'] = "17911"
|
40
40
|
@args[:headers]['Set-Cookie'] = "fred"
|
41
41
|
|
42
|
-
@args[:browser] = OrderedHash.new
|
42
|
+
@args[:browser] = BSON::OrderedHash.new
|
43
43
|
@args[:browser][:name] = "Chromey"
|
44
44
|
@args[:browser][:version] = "1.12.23.54"
|
45
45
|
|
46
|
-
@args[:machine] = OrderedHash.new
|
46
|
+
@args[:machine] = BSON::OrderedHash.new
|
47
47
|
@args[:machine][:platform] = "Windoze"
|
48
48
|
@args[:machine][:os] = "Windows NT"
|
49
49
|
@args[:machine][:version] = "3.5"
|
@@ -8,15 +8,15 @@ describe Rackamole::Store::Log do
|
|
8
8
|
|
9
9
|
@store = Rackamole::Store::Log.new( @test_file )
|
10
10
|
|
11
|
-
@args = OrderedHash.new
|
11
|
+
@args = BSON::OrderedHash.new
|
12
12
|
@args[:type] = Rackamole.feature
|
13
13
|
@args[:app_name] = "Test app"
|
14
14
|
@args[:environment] = :test
|
15
15
|
@args[:ip] = "1.1.1.1"
|
16
|
-
@args[:browser] = OrderedHash.new
|
16
|
+
@args[:browser] = BSON::OrderedHash.new
|
17
17
|
@args[:browser][:name] = "Ibrowse"
|
18
18
|
@args[:browser][:version] = "1.X"
|
19
|
-
@args[:machine] = OrderedHash.new
|
19
|
+
@args[:machine] = BSON::OrderedHash.new
|
20
20
|
@args[:machine][:platform] = "Blee"
|
21
21
|
@args[:machine][:os] = "Windoze"
|
22
22
|
@args[:machine][:version] = "10.0"
|
@@ -18,16 +18,16 @@ describe Rackamole::Store::MongoDb do
|
|
18
18
|
before( :each ) do
|
19
19
|
@store.send( :reset! )
|
20
20
|
|
21
|
-
@args = OrderedHash.new
|
21
|
+
@args = BSON::OrderedHash.new
|
22
22
|
@args[:type] = Rackamole.feature
|
23
23
|
@args[:app_name] = "app"
|
24
24
|
@args[:environment] = :test
|
25
25
|
@args[:perf_issue] = false
|
26
26
|
@args[:ip] = "1.1.1.1"
|
27
|
-
@args[:browser] = OrderedHash.new
|
27
|
+
@args[:browser] = BSON::OrderedHash.new
|
28
28
|
@args[:browser][:name] = "Ibrowse"
|
29
29
|
@args[:browser][:version] = "1.X"
|
30
|
-
@args[:machine] = OrderedHash.new
|
30
|
+
@args[:machine] = BSON::OrderedHash.new
|
31
31
|
@args[:machine][:platform] = "Blee"
|
32
32
|
@args[:machine][:os] = "Windoze"
|
33
33
|
@args[:machine][:version] = "10.0"
|
data/tasks/rdoc.rake
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'rake/rdoctask'
|
2
|
-
require 'darkfish-rdoc'
|
2
|
+
# require 'darkfish-rdoc'
|
3
3
|
|
4
4
|
namespace :doc do
|
5
5
|
|
@@ -28,7 +28,7 @@ namespace :doc do
|
|
28
28
|
rd.options << "-t #{title}"
|
29
29
|
rd.options << "-SHN"
|
30
30
|
rd.options << "-f"
|
31
|
-
rd.options << "darkfish"
|
31
|
+
# rd.options << "darkfish"
|
32
32
|
rd.options.concat(rdoc.opts)
|
33
33
|
end
|
34
34
|
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rackamole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 3
|
8
|
+
- 7
|
9
|
+
version: 0.3.7
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Fernand Galiana
|
@@ -9,109 +14,163 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-06-04 00:00:00 -06:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: logging
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 2
|
30
|
+
- 2
|
23
31
|
version: 1.2.2
|
24
|
-
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: hitimes
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 1
|
43
|
+
- 0
|
44
|
+
- 3
|
33
45
|
version: 1.0.3
|
34
|
-
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
35
48
|
- !ruby/object:Gem::Dependency
|
36
49
|
name: mongo
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
52
|
requirements:
|
41
53
|
- - ">="
|
42
54
|
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
|
55
|
+
segments:
|
56
|
+
- 1
|
57
|
+
- 0
|
58
|
+
- 1
|
59
|
+
version: 1.0.1
|
60
|
+
type: :runtime
|
61
|
+
version_requirements: *id003
|
45
62
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
63
|
+
name: bson
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
segments:
|
70
|
+
- 1
|
71
|
+
- 0
|
72
|
+
- 1
|
73
|
+
version: 1.0.1
|
47
74
|
type: :runtime
|
48
|
-
|
49
|
-
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: bson_ext
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
50
80
|
requirements:
|
51
81
|
- - ">="
|
52
82
|
- !ruby/object:Gem::Version
|
53
|
-
|
54
|
-
|
83
|
+
segments:
|
84
|
+
- 1
|
85
|
+
- 0
|
86
|
+
- 1
|
87
|
+
version: 1.0.1
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id005
|
55
90
|
- !ruby/object:Gem::Dependency
|
56
91
|
name: chronic
|
57
|
-
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
60
94
|
requirements:
|
61
95
|
- - ">="
|
62
96
|
- !ruby/object:Gem::Version
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
- 2
|
100
|
+
- 3
|
63
101
|
version: 0.2.3
|
64
|
-
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id006
|
65
104
|
- !ruby/object:Gem::Dependency
|
66
105
|
name: twitter4r
|
67
|
-
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
prerelease: false
|
107
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
70
108
|
requirements:
|
71
109
|
- - ">="
|
72
110
|
- !ruby/object:Gem::Version
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
- 3
|
114
|
+
- 0
|
73
115
|
version: 0.3.0
|
74
|
-
|
116
|
+
type: :runtime
|
117
|
+
version_requirements: *id007
|
75
118
|
- !ruby/object:Gem::Dependency
|
76
119
|
name: erubis
|
77
|
-
|
78
|
-
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
80
122
|
requirements:
|
81
123
|
- - ">="
|
82
124
|
- !ruby/object:Gem::Version
|
125
|
+
segments:
|
126
|
+
- 2
|
127
|
+
- 6
|
128
|
+
- 0
|
83
129
|
version: 2.6.0
|
84
|
-
|
130
|
+
type: :runtime
|
131
|
+
version_requirements: *id008
|
85
132
|
- !ruby/object:Gem::Dependency
|
86
133
|
name: mail
|
87
|
-
|
88
|
-
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
134
|
+
prerelease: false
|
135
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
90
136
|
requirements:
|
91
137
|
- - ">="
|
92
138
|
- !ruby/object:Gem::Version
|
139
|
+
segments:
|
140
|
+
- 2
|
141
|
+
- 1
|
142
|
+
- 3
|
93
143
|
version: 2.1.3
|
94
|
-
|
144
|
+
type: :runtime
|
145
|
+
version_requirements: *id009
|
95
146
|
- !ruby/object:Gem::Dependency
|
96
147
|
name: ruby-growl
|
97
|
-
|
98
|
-
|
99
|
-
version_requirements: !ruby/object:Gem::Requirement
|
148
|
+
prerelease: false
|
149
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
100
150
|
requirements:
|
101
151
|
- - ">="
|
102
152
|
- !ruby/object:Gem::Version
|
153
|
+
segments:
|
154
|
+
- 1
|
155
|
+
- 0
|
156
|
+
- 1
|
103
157
|
version: 1.0.1
|
104
|
-
|
158
|
+
type: :runtime
|
159
|
+
version_requirements: *id010
|
105
160
|
- !ruby/object:Gem::Dependency
|
106
161
|
name: bones
|
107
|
-
|
108
|
-
|
109
|
-
version_requirements: !ruby/object:Gem::Requirement
|
162
|
+
prerelease: false
|
163
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
110
164
|
requirements:
|
111
165
|
- - ">="
|
112
166
|
- !ruby/object:Gem::Version
|
167
|
+
segments:
|
168
|
+
- 2
|
169
|
+
- 5
|
170
|
+
- 1
|
113
171
|
version: 2.5.1
|
114
|
-
|
172
|
+
type: :development
|
173
|
+
version_requirements: *id011
|
115
174
|
description: " The MOle is a rack application that monitors user interactions with your web site. We are not \n talking about counting page hits here. The MOle tracks all the information available to capture\n the essence of a user interaction with your application. Using the MOle, you are able to see\n which feature is a hit or a bust. As an added bonus, the MOle also track performance and exceptions \n that might have escaped your test suites or alpha env. To boot your managers will love you for it! \n\n Whether you are releasing a new application or improving on an old one, it is always a good thing \n to know if anyone is using your application and if they are, how they are using it. \n What features are your users most fond of and which features find their way into the abyss? \n You will be able to rapidly assess whether or not your application is a hit and if\n your coolest features are thought as such by your users. You will be able to elegantly record user\n interactions and leverage these findings for the next iteration of your application. "
|
116
175
|
email: fernand.galiana@gmail.com
|
117
176
|
executables: []
|
@@ -188,20 +247,22 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
247
|
requirements:
|
189
248
|
- - ">="
|
190
249
|
- !ruby/object:Gem::Version
|
250
|
+
segments:
|
251
|
+
- 0
|
191
252
|
version: "0"
|
192
|
-
version:
|
193
253
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
254
|
requirements:
|
195
255
|
- - ">="
|
196
256
|
- !ruby/object:Gem::Version
|
257
|
+
segments:
|
258
|
+
- 0
|
197
259
|
version: "0"
|
198
|
-
version:
|
199
260
|
requirements: []
|
200
261
|
|
201
262
|
rubyforge_project: !binary |
|
202
263
|
AA==
|
203
264
|
|
204
|
-
rubygems_version: 1.3.
|
265
|
+
rubygems_version: 1.3.6
|
205
266
|
signing_key:
|
206
267
|
specification_version: 3
|
207
268
|
summary: The MOle is a rack application that monitors user interactions with your web site
|