request-log-analyzer 1.6.4 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
data/bin/request-log-analyzer
CHANGED
@@ -57,6 +57,8 @@ begin
|
|
57
57
|
|
58
58
|
command_line.switch(:debug)
|
59
59
|
command_line.switch(:no_progress)
|
60
|
+
command_line.switch(:gets_memory_protection)
|
61
|
+
command_line.switch(:silent)
|
60
62
|
|
61
63
|
command_line.minimum_parameters = 1
|
62
64
|
end
|
@@ -87,6 +89,7 @@ rescue CommandLine::Error => e
|
|
87
89
|
puts " --output <format> Output format. Supports 'html' and 'fixed_width'."
|
88
90
|
puts " --report-width <amount> Width of ASCII report. Defaults to terminal width."
|
89
91
|
puts " --report-amount <amount> Maximum numer of results per report."
|
92
|
+
puts " --silent Skip the commercials (includes --no-progress)."
|
90
93
|
puts " --yaml <filename> Dump the results in YAML format in the given file."
|
91
94
|
puts
|
92
95
|
puts "Examples:"
|
@@ -112,9 +115,11 @@ when :strip
|
|
112
115
|
require File.dirname(__FILE__) + '/../lib/request_log_analyzer/log_processor'
|
113
116
|
RequestLogAnalyzer::LogProcessor.build(:strip, arguments).run!
|
114
117
|
else
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
+
unless arguments[:silent]
|
119
|
+
puts "Request-log-analyzer, by Willem van Bergen and Bart ten Brinke - version #{RequestLogAnalyzer::VERSION}"
|
120
|
+
puts "Website: http://railsdoctors.com"
|
121
|
+
puts
|
122
|
+
end
|
118
123
|
|
119
124
|
# Run the request_log_analyzer!
|
120
125
|
RequestLogAnalyzer::Controller.build_from_arguments(arguments).run!
|
@@ -0,0 +1,80 @@
|
|
1
|
+
class File
|
2
|
+
alias_method :gets_original, :gets
|
3
|
+
# The size of the reads we will use to add to the line buffer.
|
4
|
+
MAX_READ_SIZE=1024*100
|
5
|
+
|
6
|
+
#
|
7
|
+
# This method returns the next line of the File.
|
8
|
+
#
|
9
|
+
# It works by moving the file pointer forward +MAX_READ_SIZE+ at a time,
|
10
|
+
# storing seen lines in <tt>@line_buffer</tt>. Once the buffer contains at
|
11
|
+
# least two lines (ensuring we have seen on full line) or the file pointer
|
12
|
+
# reaches the end of the File, the last line from the buffer is returned.
|
13
|
+
# When the buffer is exhausted, this will throw +nil+ (from the empty Array).
|
14
|
+
#
|
15
|
+
# Read portions of the file that do not contain the +sep_string+ are not added to
|
16
|
+
# the buffer. This prevents <tt>@line_buffer<tt> from growing signficantly when parsing
|
17
|
+
# large lines.
|
18
|
+
#
|
19
|
+
def gets(sep_string = $/)
|
20
|
+
@read_size ||= MAX_READ_SIZE
|
21
|
+
# A buffer to hold lines read, but not yet returned.
|
22
|
+
@line_buffer ||= Array.new
|
23
|
+
|
24
|
+
# Record where we are.
|
25
|
+
@current_pos ||= pos
|
26
|
+
|
27
|
+
# Last Position in the file
|
28
|
+
@last_pos ||= nil
|
29
|
+
if @last_pos.nil?
|
30
|
+
seek(0, IO::SEEK_END)
|
31
|
+
@last_pos = pos
|
32
|
+
seek(0,0)
|
33
|
+
end
|
34
|
+
|
35
|
+
#
|
36
|
+
# If we have more than one line in the buffer or we have reached the
|
37
|
+
# beginning of the file, send the last line in the buffer to the caller.
|
38
|
+
# (This may be +nil+, if the buffer has been exhausted.)
|
39
|
+
#
|
40
|
+
if @line_buffer.size > 2 or @current_pos >= @last_pos
|
41
|
+
self.lineno += 1
|
42
|
+
return @line_buffer.shift
|
43
|
+
end
|
44
|
+
|
45
|
+
sep =
|
46
|
+
|
47
|
+
chunk = String.new
|
48
|
+
while chunk and chunk !~ /#{sep_string}/
|
49
|
+
chunk = read(@read_size)
|
50
|
+
end
|
51
|
+
|
52
|
+
# Appends new lines to the last element of the buffer
|
53
|
+
line_buffer_pos = @line_buffer.any? ? @line_buffer.size-1 : 0
|
54
|
+
|
55
|
+
if chunk
|
56
|
+
@line_buffer[line_buffer_pos] = @line_buffer[line_buffer_pos].to_s<< chunk
|
57
|
+
else
|
58
|
+
# at the end
|
59
|
+
return @line_buffer.shift
|
60
|
+
end
|
61
|
+
|
62
|
+
#
|
63
|
+
# Divide the last line of the buffer based on +sep_string+ and #flatten!
|
64
|
+
# those new lines into the buffer.
|
65
|
+
#
|
66
|
+
@line_buffer[line_buffer_pos] = @line_buffer[line_buffer_pos].scan(/.*?#{Regexp.escape(sep_string)}|.+/)
|
67
|
+
@line_buffer.flatten!
|
68
|
+
|
69
|
+
#
|
70
|
+
# If we made it this far, we need to read more data to try and find the
|
71
|
+
# end of a line or the end of the file. Move the file pointer
|
72
|
+
# forward a step, to give us new bytes to read.
|
73
|
+
#
|
74
|
+
@current_pos += @read_size
|
75
|
+
seek(@current_pos, IO::SEEK_SET)
|
76
|
+
|
77
|
+
# We have more data now, so try again to read a line...
|
78
|
+
gets(sep_string)
|
79
|
+
end
|
80
|
+
end
|
data/lib/request_log_analyzer.rb
CHANGED
@@ -11,7 +11,7 @@ module RequestLogAnalyzer
|
|
11
11
|
|
12
12
|
# The current version of request-log-analyzer.
|
13
13
|
# Do not change the value by hand; it will be updated automatically by the gem release script.
|
14
|
-
VERSION = "1.
|
14
|
+
VERSION = "1.7.0"
|
15
15
|
|
16
16
|
# Loads constants in the RequestLogAnalyzer namespace using self.load_default_class_file(base, const)
|
17
17
|
# <tt>const</tt>:: The constant that is not yet loaded in the RequestLogAnalyzer namespace. This should be passed as a string or symbol.
|
@@ -21,6 +21,8 @@ module RequestLogAnalyzer
|
|
21
21
|
# <tt>arguments<tt> A CommandLine::Arguments hash containing parsed commandline parameters.
|
22
22
|
def self.build_from_arguments(arguments)
|
23
23
|
|
24
|
+
require 'lib/mixins/gets_memory_protection' if arguments[:gets_memory_protection]
|
25
|
+
|
24
26
|
options = {}
|
25
27
|
|
26
28
|
# Copy fields
|
@@ -43,6 +45,7 @@ module RequestLogAnalyzer
|
|
43
45
|
options[:report_sort] = arguments[:report_sort]
|
44
46
|
options[:report_amount] = arguments[:report_amount]
|
45
47
|
options[:mailhost] = arguments[:mailhost]
|
48
|
+
options[:silent] = arguments[:silent]
|
46
49
|
|
47
50
|
# Apache format workaround
|
48
51
|
if arguments[:rails_format]
|
@@ -112,6 +115,7 @@ module RequestLogAnalyzer
|
|
112
115
|
# * <tt>:select</tt> Select specific {:field => :value} combination (expects a single hash).
|
113
116
|
# * <tt>:source_files</tt> Source files to analyze. Provide either File, array of files or STDIN.
|
114
117
|
# * <tt>:yaml</tt> Output to YAML file.
|
118
|
+
# * <tt>:silent</tt> Minimal output automatically implies :no_progress
|
115
119
|
#
|
116
120
|
# === Example
|
117
121
|
# RequestLogAnalyzer::Controller.build(
|
@@ -133,6 +137,9 @@ module RequestLogAnalyzer
|
|
133
137
|
options[:report_amount] ||= 20
|
134
138
|
options[:report_sort] ||= 'sum,mean'
|
135
139
|
options[:boring] ||= false
|
140
|
+
options[:silent] ||= false
|
141
|
+
|
142
|
+
options[:no_progress] = true if options[:silent]
|
136
143
|
|
137
144
|
# Deprecation warnings
|
138
145
|
if options[:dump]
|
@@ -179,7 +186,9 @@ module RequestLogAnalyzer
|
|
179
186
|
:database => options[:database], # FUGLY!
|
180
187
|
:yaml => options[:yaml],
|
181
188
|
:reset_database => options[:reset_database],
|
182
|
-
:no_progress => options[:no_progress]
|
189
|
+
:no_progress => options[:no_progress],
|
190
|
+
:silent => options[:silent],
|
191
|
+
})
|
183
192
|
|
184
193
|
# register filters
|
185
194
|
if options[:after] || options[:before]
|
@@ -224,6 +233,7 @@ module RequestLogAnalyzer
|
|
224
233
|
# * <tt>:yaml</tt> Yaml Dump the contrller should use.
|
225
234
|
# * <tt>:output</tt> All report outputs get << through this output.
|
226
235
|
# * <tt>:no_progress</tt> No progress bar
|
236
|
+
# * <tt>:silent</tt> Minimal output, only error
|
227
237
|
def initialize(source, options = {})
|
228
238
|
|
229
239
|
@source = source
|
@@ -331,11 +341,13 @@ module RequestLogAnalyzer
|
|
331
341
|
@source.finalize
|
332
342
|
|
333
343
|
if @output.io.kind_of?(File)
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
344
|
+
unless @options[:silent]
|
345
|
+
puts
|
346
|
+
puts "Report written to: " + File.expand_path(@output.io.path)
|
347
|
+
puts "Need an expert to analyze your application?"
|
348
|
+
puts "Mail to contact@railsdoctors.com or visit us at http://railsdoctors.com"
|
349
|
+
puts "Thanks for using request-log-analyzer!"
|
350
|
+
end
|
339
351
|
@output.io.close
|
340
352
|
elsif @output.io.kind_of?(RequestLogAnalyzer::Mailer)
|
341
353
|
@output.io.mail
|
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
|
|
2
2
|
s.name = "request-log-analyzer"
|
3
3
|
|
4
4
|
# Do not set the version and date field manually, this is done by the release script
|
5
|
-
s.version = "1.
|
6
|
-
s.date = "2010-
|
5
|
+
s.version = "1.7.0"
|
6
|
+
s.date = "2010-04-28"
|
7
7
|
|
8
8
|
s.rubyforge_project = 'r-l-a'
|
9
9
|
|
@@ -36,6 +36,6 @@ Gem::Specification.new do |s|
|
|
36
36
|
|
37
37
|
# The files and test_files directives are set automatically by the release script.
|
38
38
|
# Do not change them by hand, but make sure to add the files to the git repository.
|
39
|
-
s.files = %w(spec/unit/
|
40
|
-
s.test_files = %w(spec/unit/
|
39
|
+
s.files = %w(spec/unit/file_format/delayed_job_format_spec.rb spec/fixtures/rails_unordered.log spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/output/fancy_html.rb README.rdoc lib/cli/progressbar.rb spec/fixtures/rails.db lib/request_log_analyzer/file_format/rails_development.rb spec/fixtures/rails_22.log spec/fixtures/test_order.log spec/fixtures/header_and_footer.log lib/mixins/gets_memory_protection.rb spec/fixtures/decompression.log spec/fixtures/rails_1x.log lib/request_log_analyzer/file_format/apache.rb lib/request_log_analyzer/output.rb lib/request_log_analyzer/tracker/numeric_value.rb spec/unit/file_format/line_definition_spec.rb spec/unit/request_spec.rb spec/unit/filter/filter_spec.rb spec/unit/aggregator/summarizer_spec.rb lib/request_log_analyzer/file_format/rails.rb spec/database.yml spec/unit/tracker/numeric_value_tracker_spec.rb spec/spec_helper.rb lib/request_log_analyzer/database/base.rb spec/unit/aggregator/database_inserter_spec.rb spec/fixtures/decompression.log.bz2 spec/unit/database/connection_spec.rb spec/fixtures/sinatra.log lib/request_log_analyzer/database/warning.rb spec/fixtures/merb_prefixed.log spec/unit/file_format/postgresql_format_spec.rb lib/request_log_analyzer/filter/timespan.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/tracker/traffic.rb spec/unit/file_format/format_autodetection_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/file_format/delayed_job.rb lib/request_log_analyzer/file_format/merb.rb lib/request_log_analyzer/filter/anonymize.rb lib/request_log_analyzer/file_format/amazon_s3.rb LICENSE lib/request_log_analyzer/file_format.rb lib/cli/database_console.rb spec/integration/mailer_spec.rb spec/fixtures/merb.log lib/request_log_analyzer/line_definition.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/mailer_spec.rb spec/fixtures/postgresql.log spec/lib/mocks.rb lib/request_log_analyzer/tracker/hourly_spread.rb spec/fixtures/syslog_1x.log spec/unit/file_format/rails3_format_spec.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/file_format/rails3.rb spec/unit/controller/log_processor_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/filter/field_filter_spec.rb DESIGN.rdoc lib/request_log_analyzer/log_processor.rb spec/fixtures/multiple_files_1.log spec/unit/source/log_parser_spec.rb spec/fixtures/decompression.tar.gz spec/unit/database/base_class_spec.rb lib/request_log_analyzer/aggregator/database_inserter.rb lib/request_log_analyzer/database/connection.rb lib/request_log_analyzer/aggregator.rb lib/request_log_analyzer/database.rb spec/unit/file_format/rails_format_spec.rb lib/request_log_analyzer/source/database_loader.rb lib/request_log_analyzer/output/fixed_width.rb spec/integration/command_line_usage_spec.rb tasks/request_log_analyzer.rake lib/request_log_analyzer/tracker/duration.rb spec/fixtures/test_language_combined.log bin/request-log-analyzer lib/request_log_analyzer/tracker.rb tasks/github-gem.rake lib/cli/command_line_arguments.rb lib/request_log_analyzer.rb .gitignore lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/database/request.rb lib/cli/database_console_init.rb lib/request_log_analyzer/database/source.rb spec/unit/file_format/amazon_s3_format_spec.rb lib/request_log_analyzer/filter.rb spec/fixtures/apache_combined.log spec/unit/tracker/duration_tracker_spec.rb spec/fixtures/test_file_format.log lib/request_log_analyzer/aggregator/summarizer.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/file_format/common_regular_expressions_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/file_format_api_spec.rb lib/request_log_analyzer/file_format/mysql.rb spec/unit/file_format/rack_format_spec.rb spec/unit/file_format/mysql_format_spec.rb spec/fixtures/decompression.log.gz lib/request_log_analyzer/tracker/frequency.rb request-log-analyzer.gemspec spec/fixtures/apache_common.log Rakefile spec/unit/tracker/traffic_tracker_spec.rb lib/request_log_analyzer/file_format/postgresql.rb lib/request_log_analyzer/tracker/timespan.rb spec/lib/macros.rb spec/integration/scout_spec.rb spec/unit/controller/controller_spec.rb lib/request_log_analyzer/mailer.rb lib/cli/tools.rb spec/unit/tracker/timespan_tracker_spec.rb spec/lib/testing_format.rb spec/lib/matchers.rb lib/request_log_analyzer/controller.rb spec/unit/tracker/tracker_api_spec.rb lib/request_log_analyzer/request.rb spec/fixtures/multiple_files_2.log spec/unit/database/database_spec.rb spec/fixtures/decompression.log.zip spec/fixtures/decompression.tgz lib/request_log_analyzer/file_format/rack.rb spec/integration/munin_plugins_rails_spec.rb spec/fixtures/mysql_slow_query.log spec/lib/helpers.rb lib/request_log_analyzer/source/log_parser.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/file_format/apache_format_spec.rb)
|
40
|
+
s.test_files = %w(spec/unit/file_format/delayed_job_format_spec.rb spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/request_spec.rb spec/unit/filter/filter_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/numeric_value_tracker_spec.rb spec/unit/aggregator/database_inserter_spec.rb spec/unit/database/connection_spec.rb spec/unit/file_format/postgresql_format_spec.rb spec/unit/file_format/format_autodetection_spec.rb spec/integration/mailer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/mailer_spec.rb spec/unit/file_format/rails3_format_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/database/base_class_spec.rb spec/unit/file_format/rails_format_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/file_format/amazon_s3_format_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/file_format/common_regular_expressions_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/rack_format_spec.rb spec/unit/file_format/mysql_format_spec.rb spec/unit/tracker/traffic_tracker_spec.rb spec/integration/scout_spec.rb spec/unit/controller/controller_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/database/database_spec.rb spec/integration/munin_plugins_rails_spec.rb spec/unit/file_format/apache_format_spec.rb)
|
41
41
|
end
|
@@ -15,6 +15,11 @@ describe RequestLogAnalyzer, 'running from command line' do
|
|
15
15
|
output.any? { |line| /^Parsed requests\:\s*4\s/ =~ line }.should be_true
|
16
16
|
end
|
17
17
|
|
18
|
+
it "should function correctly with the gets mixin" do
|
19
|
+
output = run("#{log_fixture(:rails_1x)} --gets-memory-protection")
|
20
|
+
output.any? { |line| /^Parsed requests\:\s*4\s/ =~ line }.should be_true
|
21
|
+
end
|
22
|
+
|
18
23
|
it "should find 2 requests when parsing a compressed file" do
|
19
24
|
output = run("#{log_fixture(:decompression, :tgz)}")
|
20
25
|
output.any? { |line| /^Parsed requests\:\s*2\s/ =~ line }.should be_true
|
@@ -31,6 +36,12 @@ describe RequestLogAnalyzer, 'running from command line' do
|
|
31
36
|
output.any? { |line| /^Skipped requests\:\s*3\s/ =~ line }.should be_true
|
32
37
|
end
|
33
38
|
|
39
|
+
it "should not write output with the --silent option" do
|
40
|
+
output = run("#{log_fixture(:rails_1x)} --silent --file #{temp_output_file(:report)}")
|
41
|
+
output.to_s.should eql("")
|
42
|
+
File.exist?(temp_output_file(:report)).should be_true
|
43
|
+
end
|
44
|
+
|
34
45
|
it "should write output to a file with the --file option" do
|
35
46
|
run("#{log_fixture(:rails_1x)} --file #{temp_output_file(:report)}")
|
36
47
|
File.exist?(temp_output_file(:report)).should be_true
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 1
|
7
|
-
-
|
8
|
-
-
|
9
|
-
version: 1.
|
7
|
+
- 7
|
8
|
+
- 0
|
9
|
+
version: 1.7.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Willem van Bergen
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-04-28 00:00:00 +02:00
|
19
19
|
default_executable: request-log-analyzer
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -57,135 +57,136 @@ extensions: []
|
|
57
57
|
extra_rdoc_files:
|
58
58
|
- README.rdoc
|
59
59
|
files:
|
60
|
-
- spec/unit/
|
61
|
-
- lib/request_log_analyzer/output/html.rb
|
62
|
-
- DESIGN.rdoc
|
60
|
+
- spec/unit/file_format/delayed_job_format_spec.rb
|
63
61
|
- spec/fixtures/rails_unordered.log
|
64
|
-
- spec/
|
65
|
-
- lib/request_log_analyzer/
|
62
|
+
- spec/unit/filter/anonymize_filter_spec.rb
|
63
|
+
- lib/request_log_analyzer/output/fancy_html.rb
|
66
64
|
- README.rdoc
|
67
|
-
-
|
65
|
+
- lib/cli/progressbar.rb
|
66
|
+
- spec/fixtures/rails.db
|
68
67
|
- lib/request_log_analyzer/file_format/rails_development.rb
|
69
68
|
- spec/fixtures/rails_22.log
|
70
69
|
- spec/fixtures/test_order.log
|
71
|
-
- spec/
|
72
|
-
- lib/
|
73
|
-
- lib/request_log_analyzer/aggregator.rb
|
70
|
+
- spec/fixtures/header_and_footer.log
|
71
|
+
- lib/mixins/gets_memory_protection.rb
|
74
72
|
- spec/fixtures/decompression.log
|
73
|
+
- spec/fixtures/rails_1x.log
|
75
74
|
- lib/request_log_analyzer/file_format/apache.rb
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
-
|
80
|
-
- tasks/github-gem.rake
|
75
|
+
- lib/request_log_analyzer/output.rb
|
76
|
+
- lib/request_log_analyzer/tracker/numeric_value.rb
|
77
|
+
- spec/unit/file_format/line_definition_spec.rb
|
78
|
+
- spec/unit/request_spec.rb
|
81
79
|
- spec/unit/filter/filter_spec.rb
|
82
|
-
- .
|
83
|
-
-
|
80
|
+
- spec/unit/aggregator/summarizer_spec.rb
|
81
|
+
- lib/request_log_analyzer/file_format/rails.rb
|
82
|
+
- spec/database.yml
|
83
|
+
- spec/unit/tracker/numeric_value_tracker_spec.rb
|
84
84
|
- spec/spec_helper.rb
|
85
|
+
- lib/request_log_analyzer/database/base.rb
|
86
|
+
- spec/unit/aggregator/database_inserter_spec.rb
|
85
87
|
- spec/fixtures/decompression.log.bz2
|
86
88
|
- spec/unit/database/connection_spec.rb
|
87
|
-
-
|
88
|
-
-
|
89
|
-
- spec/fixtures/
|
90
|
-
- spec/unit/
|
89
|
+
- spec/fixtures/sinatra.log
|
90
|
+
- lib/request_log_analyzer/database/warning.rb
|
91
|
+
- spec/fixtures/merb_prefixed.log
|
92
|
+
- spec/unit/file_format/postgresql_format_spec.rb
|
93
|
+
- lib/request_log_analyzer/filter/timespan.rb
|
94
|
+
- spec/fixtures/rails_22_cached.log
|
91
95
|
- lib/request_log_analyzer/tracker/traffic.rb
|
92
|
-
- spec/unit/file_format/merb_format_spec.rb
|
93
96
|
- spec/unit/file_format/format_autodetection_spec.rb
|
94
|
-
- spec/unit/file_format/file_format_api_spec.rb
|
95
97
|
- lib/request_log_analyzer/filter/field.rb
|
98
|
+
- lib/request_log_analyzer/file_format/delayed_job.rb
|
96
99
|
- lib/request_log_analyzer/file_format/merb.rb
|
97
100
|
- lib/request_log_analyzer/filter/anonymize.rb
|
98
101
|
- lib/request_log_analyzer/file_format/amazon_s3.rb
|
102
|
+
- LICENSE
|
103
|
+
- lib/request_log_analyzer/file_format.rb
|
99
104
|
- lib/cli/database_console.rb
|
100
105
|
- spec/integration/mailer_spec.rb
|
106
|
+
- spec/fixtures/merb.log
|
101
107
|
- lib/request_log_analyzer/line_definition.rb
|
102
108
|
- spec/unit/tracker/frequency_tracker_spec.rb
|
109
|
+
- spec/unit/mailer_spec.rb
|
103
110
|
- spec/fixtures/postgresql.log
|
104
|
-
- spec/fixtures/multiple_files_2.log
|
105
111
|
- spec/lib/mocks.rb
|
106
|
-
-
|
112
|
+
- lib/request_log_analyzer/tracker/hourly_spread.rb
|
107
113
|
- spec/fixtures/syslog_1x.log
|
108
114
|
- spec/unit/file_format/rails3_format_spec.rb
|
109
|
-
-
|
115
|
+
- lib/request_log_analyzer/source.rb
|
110
116
|
- lib/request_log_analyzer/file_format/rails3.rb
|
111
|
-
- spec/
|
112
|
-
- spec/unit/
|
113
|
-
- spec/
|
117
|
+
- spec/unit/controller/log_processor_spec.rb
|
118
|
+
- spec/unit/tracker/hourly_spread_spec.rb
|
119
|
+
- spec/unit/filter/field_filter_spec.rb
|
120
|
+
- DESIGN.rdoc
|
121
|
+
- lib/request_log_analyzer/log_processor.rb
|
122
|
+
- spec/fixtures/multiple_files_1.log
|
114
123
|
- spec/unit/source/log_parser_spec.rb
|
124
|
+
- spec/fixtures/decompression.tar.gz
|
125
|
+
- spec/unit/database/base_class_spec.rb
|
115
126
|
- lib/request_log_analyzer/aggregator/database_inserter.rb
|
116
|
-
-
|
117
|
-
-
|
127
|
+
- lib/request_log_analyzer/database/connection.rb
|
128
|
+
- lib/request_log_analyzer/aggregator.rb
|
118
129
|
- lib/request_log_analyzer/database.rb
|
119
130
|
- spec/unit/file_format/rails_format_spec.rb
|
120
|
-
- lib/request_log_analyzer/
|
131
|
+
- lib/request_log_analyzer/source/database_loader.rb
|
121
132
|
- lib/request_log_analyzer/output/fixed_width.rb
|
122
133
|
- spec/integration/command_line_usage_spec.rb
|
123
|
-
-
|
124
|
-
- lib/request_log_analyzer/tracker/
|
134
|
+
- tasks/request_log_analyzer.rake
|
135
|
+
- lib/request_log_analyzer/tracker/duration.rb
|
125
136
|
- spec/fixtures/test_language_combined.log
|
126
|
-
-
|
137
|
+
- bin/request-log-analyzer
|
138
|
+
- lib/request_log_analyzer/tracker.rb
|
139
|
+
- tasks/github-gem.rake
|
127
140
|
- lib/cli/command_line_arguments.rb
|
128
141
|
- lib/request_log_analyzer.rb
|
129
|
-
-
|
130
|
-
- lib/request_log_analyzer/
|
131
|
-
- spec/unit/aggregator/database_inserter_spec.rb
|
142
|
+
- .gitignore
|
143
|
+
- lib/request_log_analyzer/output/html.rb
|
132
144
|
- lib/request_log_analyzer/database/request.rb
|
133
|
-
- lib/request_log_analyzer/output/fancy_html.rb
|
134
145
|
- lib/cli/database_console_init.rb
|
135
|
-
- lib/
|
136
|
-
-
|
137
|
-
-
|
146
|
+
- lib/request_log_analyzer/database/source.rb
|
147
|
+
- spec/unit/file_format/amazon_s3_format_spec.rb
|
148
|
+
- lib/request_log_analyzer/filter.rb
|
138
149
|
- spec/fixtures/apache_combined.log
|
139
150
|
- spec/unit/tracker/duration_tracker_spec.rb
|
140
|
-
- spec/fixtures/
|
151
|
+
- spec/fixtures/test_file_format.log
|
141
152
|
- lib/request_log_analyzer/aggregator/summarizer.rb
|
142
|
-
- spec/unit/
|
153
|
+
- spec/unit/filter/timespan_filter_spec.rb
|
143
154
|
- spec/unit/file_format/common_regular_expressions_spec.rb
|
144
|
-
- spec/
|
145
|
-
-
|
146
|
-
- lib/request_log_analyzer/output.rb
|
147
|
-
- spec/unit/file_format/line_definition_spec.rb
|
155
|
+
- spec/unit/file_format/merb_format_spec.rb
|
156
|
+
- spec/unit/file_format/file_format_api_spec.rb
|
148
157
|
- lib/request_log_analyzer/file_format/mysql.rb
|
158
|
+
- spec/unit/file_format/rack_format_spec.rb
|
149
159
|
- spec/unit/file_format/mysql_format_spec.rb
|
160
|
+
- spec/fixtures/decompression.log.gz
|
161
|
+
- lib/request_log_analyzer/tracker/frequency.rb
|
150
162
|
- request-log-analyzer.gemspec
|
151
163
|
- spec/fixtures/apache_common.log
|
152
|
-
- spec/unit/mailer_spec.rb
|
153
|
-
- lib/request_log_analyzer/file_format/rails.rb
|
154
164
|
- Rakefile
|
155
|
-
- lib/request_log_analyzer/tracker/hourly_spread.rb
|
156
|
-
- spec/unit/aggregator/summarizer_spec.rb
|
157
165
|
- spec/unit/tracker/traffic_tracker_spec.rb
|
158
|
-
- spec/unit/tracker/numeric_value_tracker_spec.rb
|
159
166
|
- lib/request_log_analyzer/file_format/postgresql.rb
|
160
167
|
- lib/request_log_analyzer/tracker/timespan.rb
|
161
|
-
- spec/
|
162
|
-
- spec/
|
163
|
-
- spec/fixtures/sinatra.log
|
164
|
-
- spec/fixtures/merb_prefixed.log
|
165
|
-
- lib/request_log_analyzer/log_processor.rb
|
166
|
-
- lib/request_log_analyzer/filter/timespan.rb
|
168
|
+
- spec/lib/macros.rb
|
169
|
+
- spec/integration/scout_spec.rb
|
167
170
|
- spec/unit/controller/controller_spec.rb
|
168
171
|
- lib/request_log_analyzer/mailer.rb
|
169
172
|
- lib/cli/tools.rb
|
170
|
-
- spec/fixtures/decompression.tar.gz
|
171
173
|
- spec/unit/tracker/timespan_tracker_spec.rb
|
174
|
+
- spec/lib/testing_format.rb
|
172
175
|
- spec/lib/matchers.rb
|
173
176
|
- lib/request_log_analyzer/controller.rb
|
174
177
|
- spec/unit/tracker/tracker_api_spec.rb
|
175
|
-
- lib/request_log_analyzer/
|
176
|
-
- spec/fixtures/
|
177
|
-
- LICENSE
|
178
|
-
- lib/request_log_analyzer/file_format.rb
|
179
|
-
- tasks/request_log_analyzer.rake
|
178
|
+
- lib/request_log_analyzer/request.rb
|
179
|
+
- spec/fixtures/multiple_files_2.log
|
180
180
|
- spec/unit/database/database_spec.rb
|
181
181
|
- spec/fixtures/decompression.log.zip
|
182
182
|
- spec/fixtures/decompression.tgz
|
183
|
-
-
|
184
|
-
-
|
185
|
-
- lib/request_log_analyzer/source.rb
|
183
|
+
- lib/request_log_analyzer/file_format/rack.rb
|
184
|
+
- spec/integration/munin_plugins_rails_spec.rb
|
186
185
|
- spec/fixtures/mysql_slow_query.log
|
186
|
+
- spec/lib/helpers.rb
|
187
187
|
- lib/request_log_analyzer/source/log_parser.rb
|
188
188
|
- lib/request_log_analyzer/aggregator/echo.rb
|
189
|
+
- spec/unit/file_format/apache_format_spec.rb
|
189
190
|
has_rdoc: true
|
190
191
|
homepage: http://railsdoctors.com
|
191
192
|
licenses: []
|
@@ -222,41 +223,41 @@ signing_key:
|
|
222
223
|
specification_version: 3
|
223
224
|
summary: A command line tool to analyze request logs for Apache, Rails, Merb, MySQL and other web application servers
|
224
225
|
test_files:
|
225
|
-
- spec/unit/
|
226
|
-
- spec/unit/
|
227
|
-
- spec/unit/
|
228
|
-
- spec/unit/
|
226
|
+
- spec/unit/file_format/delayed_job_format_spec.rb
|
227
|
+
- spec/unit/filter/anonymize_filter_spec.rb
|
228
|
+
- spec/unit/file_format/line_definition_spec.rb
|
229
|
+
- spec/unit/request_spec.rb
|
229
230
|
- spec/unit/filter/filter_spec.rb
|
231
|
+
- spec/unit/aggregator/summarizer_spec.rb
|
232
|
+
- spec/unit/tracker/numeric_value_tracker_spec.rb
|
233
|
+
- spec/unit/aggregator/database_inserter_spec.rb
|
230
234
|
- spec/unit/database/connection_spec.rb
|
231
|
-
- spec/
|
232
|
-
- spec/unit/filter/timespan_filter_spec.rb
|
233
|
-
- spec/unit/file_format/merb_format_spec.rb
|
235
|
+
- spec/unit/file_format/postgresql_format_spec.rb
|
234
236
|
- spec/unit/file_format/format_autodetection_spec.rb
|
235
|
-
- spec/unit/file_format/file_format_api_spec.rb
|
236
237
|
- spec/integration/mailer_spec.rb
|
237
238
|
- spec/unit/tracker/frequency_tracker_spec.rb
|
238
|
-
- spec/unit/
|
239
|
+
- spec/unit/mailer_spec.rb
|
239
240
|
- spec/unit/file_format/rails3_format_spec.rb
|
240
|
-
- spec/
|
241
|
-
- spec/unit/
|
241
|
+
- spec/unit/controller/log_processor_spec.rb
|
242
|
+
- spec/unit/tracker/hourly_spread_spec.rb
|
243
|
+
- spec/unit/filter/field_filter_spec.rb
|
242
244
|
- spec/unit/source/log_parser_spec.rb
|
245
|
+
- spec/unit/database/base_class_spec.rb
|
243
246
|
- spec/unit/file_format/rails_format_spec.rb
|
244
247
|
- spec/integration/command_line_usage_spec.rb
|
245
|
-
- spec/unit/
|
246
|
-
- spec/unit/aggregator/database_inserter_spec.rb
|
247
|
-
- spec/unit/filter/anonymize_filter_spec.rb
|
248
|
+
- spec/unit/file_format/amazon_s3_format_spec.rb
|
248
249
|
- spec/unit/tracker/duration_tracker_spec.rb
|
249
|
-
- spec/unit/
|
250
|
+
- spec/unit/filter/timespan_filter_spec.rb
|
250
251
|
- spec/unit/file_format/common_regular_expressions_spec.rb
|
251
|
-
- spec/unit/file_format/
|
252
|
+
- spec/unit/file_format/merb_format_spec.rb
|
253
|
+
- spec/unit/file_format/file_format_api_spec.rb
|
254
|
+
- spec/unit/file_format/rack_format_spec.rb
|
252
255
|
- spec/unit/file_format/mysql_format_spec.rb
|
253
|
-
- spec/unit/mailer_spec.rb
|
254
|
-
- spec/unit/aggregator/summarizer_spec.rb
|
255
256
|
- spec/unit/tracker/traffic_tracker_spec.rb
|
256
|
-
- spec/
|
257
|
-
- spec/unit/controller/log_processor_spec.rb
|
258
|
-
- spec/unit/filter/field_filter_spec.rb
|
257
|
+
- spec/integration/scout_spec.rb
|
259
258
|
- spec/unit/controller/controller_spec.rb
|
260
259
|
- spec/unit/tracker/timespan_tracker_spec.rb
|
261
260
|
- spec/unit/tracker/tracker_api_spec.rb
|
262
261
|
- spec/unit/database/database_spec.rb
|
262
|
+
- spec/integration/munin_plugins_rails_spec.rb
|
263
|
+
- spec/unit/file_format/apache_format_spec.rb
|