production_log_analyzer 1.5.0 → 1.5.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.tar.gz.sig +0 -0
- data/History.txt +10 -6
- data/README.txt +5 -4
- data/Rakefile +8 -10
- data/bin/action_errors +0 -0
- data/bin/action_grep +0 -0
- data/bin/pl_analyze +0 -0
- data/lib/production_log/analyzer.rb +14 -9
- data/lib/production_log/parser.rb +2 -1
- data/test/test.syslog.log +0 -2
- data/test/test_action_grep.rb +0 -0
- data/test/test_analyzer.rb +21 -21
- data/test/test_parser.rb +9 -6
- metadata +98 -55
- metadata.gz.sig +0 -0
data.tar.gz.sig
ADDED
Binary file
|
data/History.txt
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
-
|
1
|
+
=== 1.5.1
|
2
|
+
|
3
|
+
* 1.9 and 1.8.7 compatibility.
|
4
|
+
|
5
|
+
=== 1.5.0
|
2
6
|
|
3
7
|
* Fixed empty log bug. Patch by Tim Lucas.
|
4
8
|
* Fixed bug where sometimes lines would be logged before the
|
5
9
|
Processing line. Patch by Geoff Grosenbach.
|
6
10
|
|
7
|
-
|
11
|
+
=== 1.4.0
|
8
12
|
|
9
13
|
* Switched to Hoe
|
10
14
|
* Allowed action_errors to suppress routing errors with > 3 occurances
|
@@ -13,22 +17,22 @@
|
|
13
17
|
* Added action_errors to extract error counts from logs
|
14
18
|
* Retabbed to match the rest of the world
|
15
19
|
|
16
|
-
|
20
|
+
=== 1.3.0
|
17
21
|
|
18
22
|
* Added action_grep
|
19
23
|
* Added support for newer log format
|
20
24
|
|
21
|
-
|
25
|
+
=== 1.2.0
|
22
26
|
|
23
27
|
* pl_analyze calculates per-action statistics
|
24
28
|
* pl_analyze can send an email with its output
|
25
29
|
|
26
|
-
|
30
|
+
=== 1.1.0
|
27
31
|
|
28
32
|
* RDoc
|
29
33
|
* Other various fixes lost to time.
|
30
34
|
|
31
|
-
|
35
|
+
=== 1.0.0
|
32
36
|
|
33
37
|
* Birthday!
|
34
38
|
|
data/README.txt
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
= production_log_analyzer
|
2
2
|
|
3
|
-
production_log_analyzer
|
4
|
-
|
3
|
+
* http://seattlerb.rubyforge.org/production_log_analyzer
|
4
|
+
* http://rubyforge.org/projects/seattlerb
|
5
5
|
|
6
|
-
|
6
|
+
== DESCRIPTION
|
7
7
|
|
8
|
-
|
8
|
+
production_log_analyzer lets you find out which actions on a Rails
|
9
|
+
site are slowing you down.
|
9
10
|
|
10
11
|
Bug reports:
|
11
12
|
|
data/Rakefile
CHANGED
@@ -1,17 +1,15 @@
|
|
1
|
+
ENV.delete 'GEM_PATH'
|
2
|
+
|
3
|
+
require 'rubygems'
|
1
4
|
require 'hoe'
|
2
5
|
|
3
|
-
|
4
|
-
require 'production_log/analyzer'
|
6
|
+
Hoe.plugin :seattlerb
|
5
7
|
|
6
|
-
Hoe.
|
7
|
-
|
8
|
-
p.description = p.paragraphs_of('README.txt', 7).join ' '
|
9
|
-
p.author = 'Eric Hodel'
|
10
|
-
p.email = 'drbrain@segment7.net'
|
11
|
-
p.url = p.paragraphs_of('README.txt', 2).join ' '
|
8
|
+
Hoe.spec 'production_log_analyzer' do
|
9
|
+
developer 'Eric Hodel', 'drbrain@segment7.net'
|
12
10
|
|
13
|
-
|
11
|
+
self.rubyforge_name = 'seattlerb'
|
14
12
|
|
15
|
-
|
13
|
+
extra_deps << ['rails_analyzer_tools', '>= 1.4.0']
|
16
14
|
end
|
17
15
|
|
data/bin/action_errors
CHANGED
File without changes
|
data/bin/action_grep
CHANGED
File without changes
|
data/bin/pl_analyze
CHANGED
File without changes
|
@@ -95,7 +95,7 @@ class SlowestTimes < SizedList
|
|
95
95
|
|
96
96
|
def initialize(limit)
|
97
97
|
super limit do |arr, new_item|
|
98
|
-
fastest_time = arr.sort_by { |time, name| time }.first
|
98
|
+
fastest_time = arr.sort_by { |time, name| [time, name] }.first
|
99
99
|
if fastest_time.first < new_item.first then
|
100
100
|
arr.delete_at index(fastest_time)
|
101
101
|
true
|
@@ -115,7 +115,7 @@ class Analyzer
|
|
115
115
|
##
|
116
116
|
# The version of the production log analyzer you are using.
|
117
117
|
|
118
|
-
VERSION = '1.5.
|
118
|
+
VERSION = '1.5.1'
|
119
119
|
|
120
120
|
##
|
121
121
|
# The logfile being read by the Analyzer.
|
@@ -161,11 +161,13 @@ class Analyzer
|
|
161
161
|
|
162
162
|
def self.envelope(recipient, subject = nil) # :nodoc:
|
163
163
|
envelope = {}
|
164
|
-
|
164
|
+
|
165
|
+
# HACK: this is a hack and the tests should be made order independent
|
165
166
|
envelope['Subject'] = subject || "pl_analyze"
|
167
|
+
envelope['To'] = recipient
|
166
168
|
envelope['Content-Type'] = "text/html"
|
167
169
|
|
168
|
-
|
170
|
+
envelope.sort.map { |(k,v)| "#{k}: #{v}" }
|
169
171
|
end
|
170
172
|
|
171
173
|
##
|
@@ -328,16 +330,19 @@ class Analyzer
|
|
328
330
|
list << record.join("\t")
|
329
331
|
|
330
332
|
# all requests
|
331
|
-
|
332
|
-
record = [
|
333
|
+
all_times = records.values.flatten
|
334
|
+
record = [
|
335
|
+
all_times.average, all_times.standard_deviation, all_times.min,
|
336
|
+
all_times.max
|
337
|
+
]
|
333
338
|
record.map! { |v| "%0.3f" % v }
|
334
|
-
record.unshift [pad_request_name('ALL REQUESTS'),
|
339
|
+
record.unshift [pad_request_name('ALL REQUESTS'), all_times.size]
|
335
340
|
list << record.join("\t")
|
336
341
|
|
337
342
|
# spacer
|
338
343
|
list << nil
|
339
344
|
|
340
|
-
records.sort_by { |k,v| v.size}.
|
345
|
+
records.sort_by { |k,v| [-v.size, k] }.each do |req, times|
|
341
346
|
record = [times.average, times.standard_deviation, times.min, times.max]
|
342
347
|
record.map! { |v| "%0.3f" % v }
|
343
348
|
record.unshift ["#{pad_request_name req}", times.size]
|
@@ -356,7 +361,7 @@ class Analyzer
|
|
356
361
|
end
|
357
362
|
end
|
358
363
|
|
359
|
-
return slowest_times.sort_by { |time, name| time }
|
364
|
+
return slowest_times.sort_by { |time, name| [-time, name] }
|
360
365
|
end
|
361
366
|
|
362
367
|
def time_average(records) # :nodoc:
|
@@ -71,6 +71,7 @@ module LogParser
|
|
71
71
|
# same request.
|
72
72
|
|
73
73
|
def parse(entry)
|
74
|
+
entry = entry.split(/\n/) if String === entry
|
74
75
|
entry.each do |line|
|
75
76
|
case line
|
76
77
|
when /^Parameters/, /^Cookie set/, /^Rendering/,
|
@@ -149,7 +150,7 @@ module LogParser
|
|
149
150
|
end
|
150
151
|
end
|
151
152
|
|
152
|
-
buckets.each do |bucket, data|
|
153
|
+
buckets.sort.each do |bucket, data|
|
153
154
|
yield LogEntry.new(data)
|
154
155
|
end
|
155
156
|
end
|
data/test/test.syslog.log
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
//src/production_log_analyzer/dev/test/test.syslog.log#1 - add change 3135 (text)
|
2
1
|
Mar 7 00:00:00 online1 newsyslog[61307]: logfile turned over
|
3
2
|
Mar 7 00:00:20 online1 rails[59600]: Goal Load (0.002112) SELECT g.*, gs.score as score FROM goals g, goal_similarities gs WHERE g.id = gs.similar_goal_id AND g.num_active_people > 0 AND gs.goal_similarity_type_id = 1 AND gs.goal_id = 59133 ORDER BY score DESC LIMIT 3
|
4
3
|
Mar 7 00:00:20 online1 rails[59600]: Tag Load (0.001527) SELECT tags.*, count(*) as num_goals FROM tags_teams, tags, teams WHERE tags_teams.tag_id = tags.id AND tags_teams.team_id = teams.id AND teams.num_members > 0 AND teams.goal_id = 59133 GROUP BY tags.id ORDER BY num_goals DESC LIMIT 5
|
@@ -255,4 +254,3 @@ Mar 7 00:00:32 online1 rails[59635]: Processing PeopleController#progress (for
|
|
255
254
|
Mar 7 00:00:32 online1 rails[59635]: Parameters: {:id=>"swirlygirl", :on=>"35926", :action=>"progress", :"people/progress/swirlygirl/35926.html/progress/swirlygirl/35926"=>nil, :controller=>"people"}
|
256
255
|
Mar 7 00:00:32 online1 rails[59635]: Browser Load (0.000698) SELECT * FROM browsers WHERE ubid = 'STUFF' LIMIT 1
|
257
256
|
Mar 7 00:00:32 online1 rails[59635]: Person Load (0.001319) SELECT * FROM people WHERE username = 'swirlygirl' LIMIT 1
|
258
|
-
|
data/test/test_action_grep.rb
CHANGED
File without changes
|
data/test/test_analyzer.rb
CHANGED
@@ -91,18 +91,18 @@ class TestAnalyzer < Test::Unit::TestCase
|
|
91
91
|
email = Analyzer.email('test/test.syslog.log', 'devnull@robotcoop.com',
|
92
92
|
nil, 1)
|
93
93
|
expected = <<-EOF
|
94
|
+
Content-Type: text/html
|
94
95
|
Subject: pl_analyze
|
95
96
|
To: devnull@robotcoop.com
|
96
|
-
Content-Type: text/html
|
97
97
|
|
98
98
|
<pre>Request Times Summary: Count Avg Std Dev Min Max
|
99
99
|
ALL REQUESTS: 11 0.576 0.508 0.000 1.470
|
100
100
|
|
101
101
|
ThingsController#view: 3 0.716 0.387 0.396 1.260
|
102
|
-
TeamsController#progress: 2 0.841 0.629 0.212 1.470
|
103
|
-
RssController#uber: 2 0.035 0.000 0.035 0.035
|
104
102
|
PeopleController#progress: 2 0.489 0.489 0.000 0.977
|
105
103
|
PeopleController#view: 2 0.731 0.371 0.360 1.102
|
104
|
+
RssController#uber: 2 0.035 0.000 0.035 0.035
|
105
|
+
TeamsController#progress: 2 0.841 0.629 0.212 1.470
|
106
106
|
|
107
107
|
Slowest Request Times:
|
108
108
|
\tTeamsController#progress took 1.470s
|
@@ -113,10 +113,10 @@ DB Times Summary: Count Avg Std Dev Min Max
|
|
113
113
|
ALL REQUESTS: 11 0.366 0.393 0.000 1.144
|
114
114
|
|
115
115
|
ThingsController#view: 3 0.403 0.362 0.122 0.914
|
116
|
-
TeamsController#progress: 2 0.646 0.497 0.149 1.144
|
117
|
-
RssController#uber: 2 0.008 0.000 0.008 0.008
|
118
116
|
PeopleController#progress: 2 0.415 0.415 0.000 0.830
|
119
117
|
PeopleController#view: 2 0.338 0.149 0.189 0.486
|
118
|
+
RssController#uber: 2 0.008 0.000 0.008 0.008
|
119
|
+
TeamsController#progress: 2 0.646 0.497 0.149 1.144
|
120
120
|
|
121
121
|
Slowest Total DB Times:
|
122
122
|
\tTeamsController#progress took 1.144s
|
@@ -127,10 +127,10 @@ Render Times Summary: Count Avg Std Dev Min Max
|
|
127
127
|
ALL REQUESTS: 11 0.219 0.253 0.000 0.695
|
128
128
|
|
129
129
|
ThingsController#view: 3 0.270 0.171 0.108 0.506
|
130
|
-
TeamsController#progress: 2 0.000 0.000 0.000 0.000
|
131
|
-
RssController#uber: 2 0.012 0.000 0.012 0.012
|
132
130
|
PeopleController#progress: 2 0.302 0.302 0.000 0.604
|
133
131
|
PeopleController#view: 2 0.487 0.209 0.278 0.695
|
132
|
+
RssController#uber: 2 0.012 0.000 0.012 0.012
|
133
|
+
TeamsController#progress: 2 0.000 0.000 0.000 0.000
|
134
134
|
|
135
135
|
Slowest Total Render Times:
|
136
136
|
\tPeopleController#view took 0.695s
|
@@ -142,9 +142,9 @@ Slowest Total Render Times:
|
|
142
142
|
|
143
143
|
def test_self_envelope
|
144
144
|
expected = [
|
145
|
+
"Content-Type: text/html",
|
145
146
|
"Subject: pl_analyze",
|
146
147
|
"To: devnull@example.com",
|
147
|
-
"Content-Type: text/html"
|
148
148
|
]
|
149
149
|
|
150
150
|
assert_equal expected, Analyzer.envelope('devnull@example.com')
|
@@ -152,9 +152,9 @@ Slowest Total Render Times:
|
|
152
152
|
|
153
153
|
def test_self_envelope_subject
|
154
154
|
expected = [
|
155
|
+
"Content-Type: text/html",
|
155
156
|
"Subject: happy fancy boom",
|
156
157
|
"To: devnull@example.com",
|
157
|
-
"Content-Type: text/html"
|
158
158
|
]
|
159
159
|
|
160
160
|
assert_equal(expected,
|
@@ -183,10 +183,10 @@ DB Times Summary: Count Avg Std Dev Min Max
|
|
183
183
|
ALL REQUESTS: 11 0.366 0.393 0.000 1.144
|
184
184
|
|
185
185
|
ThingsController#view: 3 0.403 0.362 0.122 0.914
|
186
|
-
TeamsController#progress: 2 0.646 0.497 0.149 1.144
|
187
|
-
RssController#uber: 2 0.008 0.000 0.008 0.008
|
188
186
|
PeopleController#progress: 2 0.415 0.415 0.000 0.830
|
189
187
|
PeopleController#view: 2 0.338 0.149 0.189 0.486
|
188
|
+
RssController#uber: 2 0.008 0.000 0.008 0.008
|
189
|
+
TeamsController#progress: 2 0.646 0.497 0.149 1.144
|
190
190
|
EOF
|
191
191
|
|
192
192
|
assert_equal expected, @analyzer.db_times_summary
|
@@ -282,10 +282,10 @@ Render Times Summary: Count Avg Std Dev Min Max
|
|
282
282
|
ALL REQUESTS: 11 0.219 0.253 0.000 0.695
|
283
283
|
|
284
284
|
ThingsController#view: 3 0.270 0.171 0.108 0.506
|
285
|
-
TeamsController#progress: 2 0.000 0.000 0.000 0.000
|
286
|
-
RssController#uber: 2 0.012 0.000 0.012 0.012
|
287
285
|
PeopleController#progress: 2 0.302 0.302 0.000 0.604
|
288
286
|
PeopleController#view: 2 0.487 0.209 0.278 0.695
|
287
|
+
RssController#uber: 2 0.012 0.000 0.012 0.012
|
288
|
+
TeamsController#progress: 2 0.000 0.000 0.000 0.000
|
289
289
|
EOF
|
290
290
|
|
291
291
|
assert_equal expected, @analyzer.render_times_summary
|
@@ -297,10 +297,10 @@ Request Times Summary: Count Avg Std Dev Min Max
|
|
297
297
|
ALL REQUESTS: 11 0.576 0.508 0.000 1.470
|
298
298
|
|
299
299
|
ThingsController#view: 3 0.716 0.387 0.396 1.260
|
300
|
-
TeamsController#progress: 2 0.841 0.629 0.212 1.470
|
301
|
-
RssController#uber: 2 0.035 0.000 0.035 0.035
|
302
300
|
PeopleController#progress: 2 0.489 0.489 0.000 0.977
|
303
301
|
PeopleController#view: 2 0.731 0.371 0.360 1.102
|
302
|
+
RssController#uber: 2 0.035 0.000 0.035 0.035
|
303
|
+
TeamsController#progress: 2 0.841 0.629 0.212 1.470
|
304
304
|
|
305
305
|
Slowest Request Times:
|
306
306
|
\tTeamsController#progress took 1.470s
|
@@ -320,10 +320,10 @@ DB Times Summary: Count Avg Std Dev Min Max
|
|
320
320
|
ALL REQUESTS: 11 0.366 0.393 0.000 1.144
|
321
321
|
|
322
322
|
ThingsController#view: 3 0.403 0.362 0.122 0.914
|
323
|
-
TeamsController#progress: 2 0.646 0.497 0.149 1.144
|
324
|
-
RssController#uber: 2 0.008 0.000 0.008 0.008
|
325
323
|
PeopleController#progress: 2 0.415 0.415 0.000 0.830
|
326
324
|
PeopleController#view: 2 0.338 0.149 0.189 0.486
|
325
|
+
RssController#uber: 2 0.008 0.000 0.008 0.008
|
326
|
+
TeamsController#progress: 2 0.646 0.497 0.149 1.144
|
327
327
|
|
328
328
|
Slowest Total DB Times:
|
329
329
|
\tTeamsController#progress took 1.144s
|
@@ -343,10 +343,10 @@ Render Times Summary: Count Avg Std Dev Min Max
|
|
343
343
|
ALL REQUESTS: 11 0.219 0.253 0.000 0.695
|
344
344
|
|
345
345
|
ThingsController#view: 3 0.270 0.171 0.108 0.506
|
346
|
-
TeamsController#progress: 2 0.000 0.000 0.000 0.000
|
347
|
-
RssController#uber: 2 0.012 0.000 0.012 0.012
|
348
346
|
PeopleController#progress: 2 0.302 0.302 0.000 0.604
|
349
347
|
PeopleController#view: 2 0.487 0.209 0.278 0.695
|
348
|
+
RssController#uber: 2 0.012 0.000 0.012 0.012
|
349
|
+
TeamsController#progress: 2 0.000 0.000 0.000 0.000
|
350
350
|
|
351
351
|
Slowest Total Render Times:
|
352
352
|
\tPeopleController#view took 0.695s
|
@@ -374,10 +374,10 @@ Request Times Summary: Count Avg Std Dev Min Max
|
|
374
374
|
ALL REQUESTS: 11 0.576 0.508 0.000 1.470
|
375
375
|
|
376
376
|
ThingsController#view: 3 0.716 0.387 0.396 1.260
|
377
|
-
TeamsController#progress: 2 0.841 0.629 0.212 1.470
|
378
|
-
RssController#uber: 2 0.035 0.000 0.035 0.035
|
379
377
|
PeopleController#progress: 2 0.489 0.489 0.000 0.977
|
380
378
|
PeopleController#view: 2 0.731 0.371 0.360 1.102
|
379
|
+
RssController#uber: 2 0.035 0.000 0.035 0.035
|
380
|
+
TeamsController#progress: 2 0.841 0.629 0.212 1.470
|
381
381
|
EOF
|
382
382
|
|
383
383
|
assert_equal expected, @analyzer.request_times_summary
|
data/test/test_parser.rb
CHANGED
@@ -222,8 +222,8 @@ Jan 03 12:24:24 duo2 rails[4277]: Completed in 0.00112 (896 reqs/sec) | DB: 0.00
|
|
222
222
|
|
223
223
|
def test_class_parse_multi
|
224
224
|
entries = []
|
225
|
-
|
226
|
-
LogParser.parse
|
225
|
+
open 'test/test.syslog.log' do |io|
|
226
|
+
LogParser.parse io do |entry|
|
227
227
|
entries << entry
|
228
228
|
end
|
229
229
|
end
|
@@ -235,15 +235,18 @@ Jan 03 12:24:24 duo2 rails[4277]: Completed in 0.00112 (896 reqs/sec) | DB: 0.00
|
|
235
235
|
assert_equal 'TeamsController#progress', redirect.page
|
236
236
|
assert_equal 0, redirect.render_time
|
237
237
|
|
238
|
+
second_last = entries[-2]
|
239
|
+
assert_equal 'PeopleController#progress', second_last.page
|
240
|
+
assert_equal 0, second_last.request_time
|
241
|
+
|
238
242
|
last = entries.last
|
239
|
-
assert_equal
|
240
|
-
assert_equal 0, last.request_time
|
243
|
+
assert_equal nil, last.page
|
241
244
|
end
|
242
245
|
|
243
246
|
def test_class_parse_0_14_x
|
244
247
|
entries = []
|
245
|
-
|
246
|
-
LogParser.parse
|
248
|
+
open 'test/test.syslog.0.14.x.log' do |io|
|
249
|
+
LogParser.parse io do |entry|
|
247
250
|
entries << entry
|
248
251
|
end
|
249
252
|
end
|
metadata
CHANGED
@@ -1,33 +1,78 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.2
|
3
|
-
specification_version: 1
|
4
2
|
name: production_log_analyzer
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.5.
|
7
|
-
date: 2007-05-16 00:00:00 -07:00
|
8
|
-
summary: production_log_analyzer lets you find out which actions on a Rails site are slowing you down.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: drbrain@segment7.net
|
12
|
-
homepage: http://seattlerb.rubyforge.org/production_log_analyzer
|
13
|
-
rubyforge_project: seattlerb
|
14
|
-
description: production_log_analyzer provides three tools to analyze log files created by SyslogLogger. pl_analyze for getting daily reports, action_grep for pulling log lines for a single action and action_errors to summarize errors with counts.
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.5.1
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Eric Hodel
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
|
14
|
+
YWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZFgNu
|
15
|
+
ZXQwHhcNMDcxMjIxMDIwNDE0WhcNMDgxMjIwMDIwNDE0WjBBMRAwDgYDVQQDDAdk
|
16
|
+
cmJyYWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZ
|
17
|
+
FgNuZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbgLrGLGIDE76
|
18
|
+
LV/cvxdEzCuYuS3oG9PrSZnuDweySUfdp/so0cDq+j8bqy6OzZSw07gdjwFMSd6J
|
19
|
+
U5ddZCVywn5nnAQ+Ui7jMW54CYt5/H6f2US6U0hQOjJR6cpfiymgxGdfyTiVcvTm
|
20
|
+
Gj/okWrQl0NjYOYBpDi+9PPmaH2RmLJu0dB/NylsDnW5j6yN1BEI8MfJRR+HRKZY
|
21
|
+
mUtgzBwF1V4KIZQ8EuL6I/nHVu07i6IkrpAgxpXUfdJQJi0oZAqXurAV3yTxkFwd
|
22
|
+
g62YrrW26mDe+pZBzR6bpLE+PmXCzz7UxUq3AE0gPHbiMXie3EFE0oxnsU3lIduh
|
23
|
+
sCANiQ8BAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
24
|
+
BBS5k4Z75VSpdM0AclG2UvzFA/VW5DANBgkqhkiG9w0BAQUFAAOCAQEAHagT4lfX
|
25
|
+
kP/hDaiwGct7XPuVGbrOsKRVD59FF5kETBxEc9UQ1clKWngf8JoVuEoKD774dW19
|
26
|
+
bU0GOVWO+J6FMmT/Cp7nuFJ79egMf/gy4gfUfQMuvfcr6DvZUPIs9P/TlK59iMYF
|
27
|
+
DIOQ3DxdF3rMzztNUCizN4taVscEsjCcgW6WkUJnGdqlu3OHWpQxZBJkBTjPCoc6
|
28
|
+
UW6on70SFPmAy/5Cq0OJNGEWBfgD9q7rrs/X8GGwUWqXb85RXnUVi/P8Up75E0ag
|
29
|
+
14jEc90kN+C7oI/AGCBN0j6JnEtYIEJZibjjDJTSMWlUKKkj30kq7hlUC2CepJ4v
|
30
|
+
x52qPcexcYZR7w==
|
31
|
+
-----END CERTIFICATE-----
|
32
|
+
|
33
|
+
date: 2009-06-23 00:00:00 -07:00
|
34
|
+
default_executable:
|
35
|
+
dependencies:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rails_analyzer_tools
|
38
|
+
type: :runtime
|
39
|
+
version_requirement:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.4.0
|
45
|
+
version:
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: hoe
|
48
|
+
type: :development
|
49
|
+
version_requirement:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.2.0
|
55
|
+
version:
|
56
|
+
description: |-
|
57
|
+
production_log_analyzer lets you find out which actions on a Rails
|
58
|
+
site are slowing you down.
|
59
|
+
|
60
|
+
Bug reports:
|
61
|
+
|
62
|
+
http://rubyforge.org/tracker/?func=add&group_id=1513&atid=5921
|
63
|
+
email:
|
64
|
+
- drbrain@segment7.net
|
65
|
+
executables:
|
66
|
+
- action_errors
|
67
|
+
- action_grep
|
68
|
+
- pl_analyze
|
69
|
+
extensions: []
|
70
|
+
|
71
|
+
extra_rdoc_files:
|
72
|
+
- History.txt
|
73
|
+
- LICENSE.txt
|
74
|
+
- Manifest.txt
|
75
|
+
- README.txt
|
31
76
|
files:
|
32
77
|
- History.txt
|
33
78
|
- LICENSE.txt
|
@@ -47,38 +92,36 @@ files:
|
|
47
92
|
- test/test_action_grep.rb
|
48
93
|
- test/test_analyzer.rb
|
49
94
|
- test/test_parser.rb
|
95
|
+
has_rdoc: true
|
96
|
+
homepage: http://seattlerb.rubyforge.org/production_log_analyzer
|
97
|
+
licenses: []
|
98
|
+
|
99
|
+
post_install_message:
|
100
|
+
rdoc_options:
|
101
|
+
- --main
|
102
|
+
- README.txt
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: "0"
|
110
|
+
version:
|
111
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: "0"
|
116
|
+
version:
|
117
|
+
requirements: []
|
118
|
+
|
119
|
+
rubyforge_project: seattlerb
|
120
|
+
rubygems_version: 1.3.4
|
121
|
+
signing_key:
|
122
|
+
specification_version: 3
|
123
|
+
summary: production_log_analyzer lets you find out which actions on a Rails site are slowing you down
|
50
124
|
test_files:
|
51
125
|
- test/test_action_grep.rb
|
52
126
|
- test/test_analyzer.rb
|
53
127
|
- test/test_parser.rb
|
54
|
-
rdoc_options: []
|
55
|
-
|
56
|
-
extra_rdoc_files: []
|
57
|
-
|
58
|
-
executables:
|
59
|
-
- action_errors
|
60
|
-
- action_grep
|
61
|
-
- pl_analyze
|
62
|
-
extensions: []
|
63
|
-
|
64
|
-
requirements: []
|
65
|
-
|
66
|
-
dependencies:
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: rails_analyzer_tools
|
69
|
-
version_requirement:
|
70
|
-
version_requirements: !ruby/object:Gem::Version::Requirement
|
71
|
-
requirements:
|
72
|
-
- - ">="
|
73
|
-
- !ruby/object:Gem::Version
|
74
|
-
version: 1.4.0
|
75
|
-
version:
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: hoe
|
78
|
-
version_requirement:
|
79
|
-
version_requirements: !ruby/object:Gem::Version::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: 1.2.0
|
84
|
-
version:
|
metadata.gz.sig
ADDED
Binary file
|