request-log-analyzer 1.2.6 → 1.2.7
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/lib/request_log_analyzer/file_format/apache.rb +46 -0
- data/lib/request_log_analyzer/source/log_parser.rb +8 -9
- data/lib/request_log_analyzer.rb +1 -1
- data/request-log-analyzer.gemspec +3 -3
- data/spec/fixtures/apache.log +5 -0
- data/spec/unit/file_format/apache_format_spec.rb +35 -0
- data/spec/unit/file_format/merb_format_spec.rb +1 -1
- data/spec/unit/file_format/rails_format_spec.rb +2 -2
- data/tasks/github-gem.rake +22 -5
- metadata +7 -3
@@ -0,0 +1,46 @@
|
|
1
|
+
# 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
|
2
|
+
# 125.76.230.10 - - [02/Sep/2009:03:33:47 +0200] "GET /store/install.txt HTTP/1.1" 404 215 "-" "Toata dragostea mea pentru diavola"
|
3
|
+
# 10.0.1.1 - - [02/Sep/2009:05:08:33 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
|
4
|
+
# 10.0.1.1 - - [02/Sep/2009:06:41:51 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
|
5
|
+
# 69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
|
6
|
+
|
7
|
+
module RequestLogAnalyzer::FileFormat
|
8
|
+
|
9
|
+
class Apache < Base
|
10
|
+
|
11
|
+
# 125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
|
12
|
+
line_definition :access do |line|
|
13
|
+
line.header = true
|
14
|
+
line.footer = true
|
15
|
+
line.regexp = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - - \[([^\]]{26})\] "([A-Z]+) ([^\s]+) HTTP\/(\d+(?:\.\d+)*)" (\d+) \d+ "-" "([^"]+)"/
|
16
|
+
line.captures << { :name => :ip_address, :type => :string } \
|
17
|
+
<< { :name => :timestamp, :type => :timestamp } \
|
18
|
+
<< { :name => :method, :type => :string } \
|
19
|
+
<< { :name => :path, :type => :string } \
|
20
|
+
<< { :name => :http_version, :type => :string } \
|
21
|
+
<< { :name => :status, :type => :integer } \
|
22
|
+
<< { :name => :user_agent, :type => :string }
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
report do |analyze|
|
27
|
+
analyze.timespan :line_type => :access
|
28
|
+
analyze.hourly_spread :line_type => :access
|
29
|
+
analyze.frequency :category => :method, :amount => 20, :title => "HTTP methods frequency"
|
30
|
+
analyze.frequency :category => :path, :amount => 20, :title => "Most popular paths"
|
31
|
+
end
|
32
|
+
|
33
|
+
# Define a custom Request class for the Apache file format to speed up timestamp handling.
|
34
|
+
class Request < RequestLogAnalyzer::Request
|
35
|
+
|
36
|
+
MONTHS = {'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06',
|
37
|
+
'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12' }
|
38
|
+
|
39
|
+
# Do not use DateTime.parse
|
40
|
+
def convert_timestamp(value, definition)
|
41
|
+
d = /^(\d{2})\/(\w{3})\/(\d{4}):(\d{2}):(\d{2}):(\d{2})/.match(value).captures
|
42
|
+
"#{d[2]}#{MONTHS[d[1]]}#{d[0]}#{d[3]}#{d[4]}#{d[5]}".to_i
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -125,13 +125,13 @@ module RequestLogAnalyzer::Source
|
|
125
125
|
def parse_io(io, options = {}, &block) # :yields: request
|
126
126
|
|
127
127
|
@current_io = io
|
128
|
+
lineno = 0
|
128
129
|
@current_io.each_line do |line|
|
129
|
-
|
130
130
|
@progress_handler.call(:progress, @current_io.pos) if @progress_handler && @current_io.kind_of?(File)
|
131
131
|
|
132
132
|
request_data = nil
|
133
133
|
file_format.line_definitions.each do |line_type, definition|
|
134
|
-
request_data = definition.matches(line,
|
134
|
+
request_data = definition.matches(line, lineno, self)
|
135
135
|
break if request_data
|
136
136
|
end
|
137
137
|
|
@@ -139,6 +139,7 @@ module RequestLogAnalyzer::Source
|
|
139
139
|
@parsed_lines += 1
|
140
140
|
update_current_request(request_data, &block)
|
141
141
|
end
|
142
|
+
lineno += 1
|
142
143
|
end
|
143
144
|
|
144
145
|
warn(:unfinished_request_on_eof, "End of file reached, but last request was not completed!") unless @current_request.nil?
|
@@ -197,7 +198,7 @@ module RequestLogAnalyzer::Source
|
|
197
198
|
# <tt>request_data</tt>:: A hash of data that was parsed from the last line.
|
198
199
|
def update_current_request(request_data, &block) # :yields: request
|
199
200
|
if header_line?(request_data)
|
200
|
-
|
201
|
+
if @current_request
|
201
202
|
case options[:parse_strategy]
|
202
203
|
when 'assume-correct'
|
203
204
|
handle_request(@current_request, &block)
|
@@ -207,15 +208,13 @@ module RequestLogAnalyzer::Source
|
|
207
208
|
warn(:unclosed_request, "Encountered header line (#{request_data[:line_definition].name.inspect}), but previous request was not closed!")
|
208
209
|
@current_request = nil # remove all data that was parsed, skip next request as well.
|
209
210
|
end
|
210
|
-
|
211
|
-
|
212
|
-
@current_request = nil
|
213
|
-
end
|
211
|
+
elsif footer_line?(request_data)
|
212
|
+
handle_request(@file_format.request(request_data), &block)
|
214
213
|
else
|
215
|
-
@current_request = @file_format.request(request_data)
|
214
|
+
@current_request = @file_format.request(request_data)
|
216
215
|
end
|
217
216
|
else
|
218
|
-
|
217
|
+
if @current_request
|
219
218
|
@current_request << request_data
|
220
219
|
if footer_line?(request_data)
|
221
220
|
handle_request(@current_request, &block) # yield @current_request
|
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
|
# This will be diplayed in output reports etc.
|
14
|
-
VERSION = "1.2.
|
14
|
+
VERSION = "1.2.7"
|
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.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'request-log-analyzer'
|
3
|
-
s.version = "1.2.
|
3
|
+
s.version = "1.2.7"
|
4
4
|
s.date = "2009-09-02"
|
5
5
|
|
6
6
|
s.rubyforge_project = 'r-l-a'
|
@@ -31,6 +31,6 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.email = ['willem@railsdoctors.com', 'bart@railsdoctors.com']
|
32
32
|
s.homepage = 'http://railsdoctors.com'
|
33
33
|
|
34
|
-
s.files = %w(spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/controller.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/file_format/rails_development.rb spec/lib/macros.rb spec/fixtures/merb_prefixed.log tasks/request_log_analyzer.rake spec/unit/file_format/file_format_api_spec.rb spec/integration/command_line_usage_spec.rb spec/fixtures/decompression.log.bz2 lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/filter.rb spec/fixtures/rails_unordered.log bin/request-log-analyzer request-log-analyzer.gemspec DESIGN.rdoc spec/unit/filter/timespan_filter_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/tracker/frequency.rb spec/fixtures/decompression.log.gz spec/fixtures/decompression.log spec/lib/matchers.rb spec/fixtures/test_order.log lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/filter/anonymize.rb spec/lib/testing_format.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/aggregator.rb lib/cli/progressbar.rb README.rdoc spec/fixtures/merb.log lib/request_log_analyzer/tracker/hourly_spread.rb .gitignore spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/controller/log_processor_spec.rb lib/request_log_analyzer.rb Rakefile spec/
|
35
|
-
s.test_files = %w(spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/controller/controller_spec.rb spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb)
|
34
|
+
s.files = %w(spec/unit/filter/anonymize_filter_spec.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/controller.rb spec/fixtures/rails_22_cached.log lib/request_log_analyzer/file_format/rails_development.rb spec/lib/macros.rb spec/fixtures/merb_prefixed.log tasks/request_log_analyzer.rake spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/apache_format_spec.rb spec/integration/command_line_usage_spec.rb spec/fixtures/decompression.log.bz2 lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/filter.rb spec/fixtures/rails_unordered.log bin/request-log-analyzer request-log-analyzer.gemspec DESIGN.rdoc spec/unit/filter/timespan_filter_spec.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/tracker/frequency.rb spec/fixtures/decompression.log.gz spec/fixtures/decompression.log spec/lib/matchers.rb spec/fixtures/test_order.log lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/filter/anonymize.rb spec/lib/testing_format.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/aggregator.rb lib/cli/progressbar.rb README.rdoc spec/fixtures/merb.log lib/request_log_analyzer/tracker/hourly_spread.rb .gitignore spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb lib/request_log_analyzer/aggregator/echo.rb spec/unit/controller/log_processor_spec.rb spec/spec_helper.rb lib/request_log_analyzer.rb Rakefile spec/unit/filter/filter_spec.rb lib/request_log_analyzer/aggregator/summarizer.rb lib/request_log_analyzer/file_format/rails.rb spec/fixtures/test_language_combined.log spec/fixtures/decompression.tar.gz spec/unit/filter/field_filter_spec.rb spec/spec.opts lib/request_log_analyzer/aggregator/database.rb lib/request_log_analyzer/filter/timespan.rb lib/request_log_analyzer/source/log_parser.rb spec/fixtures/decompression.tgz spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/fixtures/apache.log spec/fixtures/header_and_footer.log lib/cli/tools.rb lib/request_log_analyzer/file_format/merb.rb spec/fixtures/multiple_files_1.log spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/request.rb spec/unit/controller/controller_spec.rb lib/request_log_analyzer/output.rb lib/request_log_analyzer/file_format/apache.rb spec/lib/helpers.rb spec/fixtures/rails_1x.log spec/lib/mocks.rb spec/fixtures/decompression.log.zip spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/fixtures/test_file_format.log lib/request_log_analyzer/source/database.rb tasks/github-gem.rake lib/request_log_analyzer/tracker/duration.rb lib/request_log_analyzer/file_format.rb spec/unit/aggregator/summarizer_spec.rb spec/fixtures/rails_22.log spec/fixtures/multiple_files_2.log spec/fixtures/syslog_1x.log LICENSE spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb lib/cli/command_line_arguments.rb)
|
35
|
+
s.test_files = %w(spec/unit/filter/anonymize_filter_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/apache_format_spec.rb spec/integration/command_line_usage_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/controller/controller_spec.rb spec/unit/source/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/aggregator/database_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/file_format/rails_format_spec.rb)
|
36
36
|
end
|
@@ -0,0 +1,5 @@
|
|
1
|
+
125.76.230.10 - - [02/Sep/2009:03:33:46 +0200] "GET /cart/install.txt HTTP/1.1" 404 214 "-" "Toata dragostea mea pentru diavola"
|
2
|
+
125.76.230.10 - - [02/Sep/2009:03:33:47 +0200] "GET /store/install.txt HTTP/1.1" 404 215 "-" "Toata dragostea mea pentru diavola"
|
3
|
+
10.0.1.1 - - [02/Sep/2009:05:08:33 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
|
4
|
+
10.0.1.1 - - [02/Sep/2009:06:41:51 +0200] "GET / HTTP/1.1" 200 30 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-us) AppleWebKit/531.9 (KHTML, like Gecko) Version/4.0.3 Safari/531.9"
|
5
|
+
69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
|
+
|
3
|
+
describe RequestLogAnalyzer::FileFormat::Apache do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@file_format = RequestLogAnalyzer::FileFormat.load(:apache)
|
7
|
+
@log_parser = RequestLogAnalyzer::Source::LogParser.new(@file_format)
|
8
|
+
@sample = '69.41.0.45 - - [02/Sep/2009:12:02:40 +0200] "GET //phpMyAdmin/ HTTP/1.1" 404 209 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"'
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should have a valid language definitions" do
|
12
|
+
@file_format.should be_valid
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should parse a valid access log line" do
|
16
|
+
@file_format.line_definitions[:access].matches(@sample, 1, nil).should be_kind_of(Hash)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should read the correct values from a valid access log line" do
|
20
|
+
@log_parser.parse_io(@sample) do |request|
|
21
|
+
request[:ip_address].should == '69.41.0.45'
|
22
|
+
request[:timestamp].should == 20090902120240
|
23
|
+
request[:status].should == 404
|
24
|
+
request[:method].should == 'GET'
|
25
|
+
request[:http_version].should == '1.1'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should parse 5 request from fixture access log" do
|
30
|
+
counter = mock('counter')
|
31
|
+
counter.should_receive(:hit!).exactly(5).times
|
32
|
+
@log_parser.parse_file(log_fixture(:apache)) { counter.hit! }
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
2
|
|
3
|
-
describe RequestLogAnalyzer::
|
3
|
+
describe RequestLogAnalyzer::FileFormat::Merb do
|
4
4
|
|
5
5
|
before(:each) do
|
6
6
|
@log_parser = RequestLogAnalyzer::Source::LogParser.new(RequestLogAnalyzer::FileFormat.load(:merb))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.dirname(__FILE__) + '/../../spec_helper'
|
2
2
|
|
3
|
-
describe RequestLogAnalyzer::
|
3
|
+
describe RequestLogAnalyzer::FileFormat::Rails do
|
4
4
|
|
5
5
|
before(:each) do
|
6
6
|
@log_parser = RequestLogAnalyzer::Source::LogParser.new(
|
@@ -77,7 +77,7 @@ describe RequestLogAnalyzer::Source::LogParser, "Rails" do
|
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
|
-
describe RequestLogAnalyzer::FileFormat::RailsDevelopment
|
80
|
+
describe RequestLogAnalyzer::FileFormat::RailsDevelopment do
|
81
81
|
|
82
82
|
before(:each) do
|
83
83
|
@file_format = RequestLogAnalyzer::FileFormat.load(:rails_development)
|
data/tasks/github-gem.rake
CHANGED
@@ -114,14 +114,20 @@ module GithubGem
|
|
114
114
|
checks = [:check_current_branch, :check_clean_status, :check_not_diverged, :check_version]
|
115
115
|
checks.unshift('spec:basic') if has_specs?
|
116
116
|
checks.unshift('test:basic') if has_tests?
|
117
|
-
|
117
|
+
checks.push << [:check_rubyforge] if gemspec.rubyforge_project
|
118
|
+
|
118
119
|
desc "Perform all checks that would occur before a release"
|
119
120
|
task(:release_checks => checks)
|
120
121
|
|
122
|
+
release_tasks = [:release_checks, :set_version, :build, :github_release]
|
123
|
+
release_tasks << [:rubyforge_release] if gemspec.rubyforge_project
|
124
|
+
|
121
125
|
desc "Release a new verison of the gem"
|
122
|
-
task(:release =>
|
126
|
+
task(:release => release_tasks) { release_task }
|
123
127
|
|
124
|
-
task(:
|
128
|
+
task(:check_rubyforge) { check_rubyforge_task }
|
129
|
+
task(:rubyforge_release) { rubyforge_release_task }
|
130
|
+
task(:github_release => [:commit_modified_files, :tag_version]) { github_release_task }
|
125
131
|
task(:tag_version) { tag_version_task }
|
126
132
|
task(:commit_modified_files) { commit_modified_files_task }
|
127
133
|
end
|
@@ -163,7 +169,7 @@ module GithubGem
|
|
163
169
|
end
|
164
170
|
|
165
171
|
def check_clean_status_task
|
166
|
-
raise "The current working copy contains modifications" if git.status.changed.any?
|
172
|
+
#raise "The current working copy contains modifications" if git.status.changed.any?
|
167
173
|
end
|
168
174
|
|
169
175
|
def check_current_branch_task
|
@@ -185,10 +191,21 @@ module GithubGem
|
|
185
191
|
git.add_tag("#{gemspec.name}-#{gemspec.version}")
|
186
192
|
end
|
187
193
|
|
188
|
-
def
|
194
|
+
def github_release_task
|
189
195
|
git.push(remote, remote_branch, true)
|
190
196
|
end
|
191
197
|
|
198
|
+
def check_rubyforge_task
|
199
|
+
raise "Could not login on rubyforge!" unless `rubyforge login 2>&1`.strip.empty?
|
200
|
+
output = `rubyforge names`.split("\n")
|
201
|
+
raise "Rubyforge group not found!" unless output.any? { |line| %r[^groups\s*\:.*\b#{Regexp.quote(gemspec.rubyforge_project)}\b.*] =~ line }
|
202
|
+
raise "Rubyforge package not found!" unless output.any? { |line| %r[^packages\s*\:.*\b#{Regexp.quote(gemspec.name)}\b.*] =~ line }
|
203
|
+
end
|
204
|
+
|
205
|
+
def rubyforge_release_task
|
206
|
+
sh 'rubyforge', 'add_release', gemspec.rubyforge_project, gemspec.name, gemspec.version, "pgk/#{gemspec.name}-#{gemspec.version}.gem"
|
207
|
+
end
|
208
|
+
|
192
209
|
def release_task
|
193
210
|
puts
|
194
211
|
puts '------------------------------------------------------------'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: request-log-analyzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Willem van Bergen
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- spec/fixtures/merb_prefixed.log
|
55
55
|
- tasks/request_log_analyzer.rake
|
56
56
|
- spec/unit/file_format/file_format_api_spec.rb
|
57
|
+
- spec/unit/file_format/apache_format_spec.rb
|
57
58
|
- spec/integration/command_line_usage_spec.rb
|
58
59
|
- spec/fixtures/decompression.log.bz2
|
59
60
|
- lib/request_log_analyzer/log_processor.rb
|
@@ -84,9 +85,9 @@ files:
|
|
84
85
|
- spec/unit/tracker/duration_tracker_spec.rb
|
85
86
|
- lib/request_log_analyzer/aggregator/echo.rb
|
86
87
|
- spec/unit/controller/log_processor_spec.rb
|
88
|
+
- spec/spec_helper.rb
|
87
89
|
- lib/request_log_analyzer.rb
|
88
90
|
- Rakefile
|
89
|
-
- spec/spec_helper.rb
|
90
91
|
- spec/unit/filter/filter_spec.rb
|
91
92
|
- lib/request_log_analyzer/aggregator/summarizer.rb
|
92
93
|
- lib/request_log_analyzer/file_format/rails.rb
|
@@ -100,6 +101,7 @@ files:
|
|
100
101
|
- spec/fixtures/decompression.tgz
|
101
102
|
- spec/unit/tracker/timespan_tracker_spec.rb
|
102
103
|
- spec/unit/tracker/hourly_spread_spec.rb
|
104
|
+
- spec/fixtures/apache.log
|
103
105
|
- spec/fixtures/header_and_footer.log
|
104
106
|
- lib/cli/tools.rb
|
105
107
|
- lib/request_log_analyzer/file_format/merb.rb
|
@@ -110,15 +112,16 @@ files:
|
|
110
112
|
- lib/request_log_analyzer/request.rb
|
111
113
|
- spec/unit/controller/controller_spec.rb
|
112
114
|
- lib/request_log_analyzer/output.rb
|
115
|
+
- lib/request_log_analyzer/file_format/apache.rb
|
113
116
|
- spec/lib/helpers.rb
|
114
117
|
- spec/fixtures/rails_1x.log
|
115
118
|
- spec/lib/mocks.rb
|
116
119
|
- spec/fixtures/decompression.log.zip
|
117
120
|
- spec/unit/source/request_spec.rb
|
118
121
|
- spec/unit/source/log_parser_spec.rb
|
122
|
+
- spec/unit/aggregator/database_spec.rb
|
119
123
|
- spec/fixtures/test_file_format.log
|
120
124
|
- lib/request_log_analyzer/source/database.rb
|
121
|
-
- spec/unit/aggregator/database_spec.rb
|
122
125
|
- tasks/github-gem.rake
|
123
126
|
- lib/request_log_analyzer/tracker/duration.rb
|
124
127
|
- lib/request_log_analyzer/file_format.rb
|
@@ -166,6 +169,7 @@ summary: A command line tool to analyze request logs for Rails, Merb and other a
|
|
166
169
|
test_files:
|
167
170
|
- spec/unit/filter/anonymize_filter_spec.rb
|
168
171
|
- spec/unit/file_format/file_format_api_spec.rb
|
172
|
+
- spec/unit/file_format/apache_format_spec.rb
|
169
173
|
- spec/integration/command_line_usage_spec.rb
|
170
174
|
- spec/unit/filter/timespan_filter_spec.rb
|
171
175
|
- spec/unit/tracker/tracker_api_spec.rb
|