request-log-analyzer 1.12.0 → 1.12.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/.travis.yml +9 -5
- data/bin/request-log-analyzer +3 -3
- data/lib/request_log_analyzer.rb +1 -1
- data/lib/request_log_analyzer/aggregator/database_inserter.rb +7 -2
- data/lib/request_log_analyzer/controller.rb +1 -1
- data/lib/request_log_analyzer/database/base.rb +15 -4
- data/lib/request_log_analyzer/database/connection.rb +4 -4
- data/request-log-analyzer.gemspec +10 -4
- data/spec/integration/mailer_spec.rb +6 -0
- data/spec/unit/database/base_class_spec.rb +4 -4
- metadata +70 -62
data/.travis.yml
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
language: ruby
|
1
2
|
script: bundle exec rake
|
2
3
|
rvm:
|
3
4
|
- 1.8.7
|
4
|
-
- 1.9.1
|
5
5
|
- 1.9.2
|
6
|
-
-
|
6
|
+
- 1.9.3
|
7
7
|
- ree
|
8
|
-
-
|
9
|
-
|
10
|
-
-
|
8
|
+
- jruby-18mode
|
9
|
+
#- jruby-19mode
|
10
|
+
#- rbx-18mode
|
11
|
+
#- rbx-19mode
|
12
|
+
notifications:
|
13
|
+
email:
|
14
|
+
- info@railsdoctors.com
|
data/bin/request-log-analyzer
CHANGED
@@ -119,9 +119,9 @@ when :strip
|
|
119
119
|
RequestLogAnalyzer::LogProcessor.build(:strip, arguments).run!
|
120
120
|
else
|
121
121
|
unless arguments[:silent]
|
122
|
-
puts "Request-log-analyzer, by Willem van Bergen and Bart ten Brinke - version #{RequestLogAnalyzer::VERSION}"
|
123
|
-
puts "Website: http://railsdoctors.com"
|
124
|
-
puts
|
122
|
+
STDERR.puts "Request-log-analyzer, by Willem van Bergen and Bart ten Brinke - version #{RequestLogAnalyzer::VERSION}"
|
123
|
+
STDERR.puts "Website: http://railsdoctors.com"
|
124
|
+
STDERR.puts
|
125
125
|
end
|
126
126
|
|
127
127
|
# Run the request_log_analyzer!
|
data/lib/request_log_analyzer.rb
CHANGED
@@ -13,7 +13,7 @@ module RequestLogAnalyzer
|
|
13
13
|
|
14
14
|
# The current version of request-log-analyzer.
|
15
15
|
# Do not change the value by hand; it will be updated automatically by the gem release script.
|
16
|
-
VERSION = "1.12.
|
16
|
+
VERSION = "1.12.1"
|
17
17
|
|
18
18
|
# Convert a string/symbol in camelcase ({RequestLogAnalyzer::Controller}) to underscores
|
19
19
|
# (<tt>request_log_analyzer/controller</tt>). This function can be used to load the file (using
|
@@ -35,8 +35,13 @@ module RequestLogAnalyzer::Aggregator
|
|
35
35
|
@request_object = RequestLogAnalyzer::Database::Request.new(:first_lineno => request.first_lineno, :last_lineno => request.last_lineno)
|
36
36
|
request.lines.each do |line|
|
37
37
|
class_columns = database.get_class(line[:line_type]).column_names.reject { |column| ['id', 'source_id', 'request_id'].include?(column) }
|
38
|
-
attributes = Hash[*line.select { |(k, v)| class_columns.include?(k.to_s)
|
39
|
-
|
38
|
+
attributes = Hash[*line.select { |(k, v)| class_columns.include?(k.to_s)}.flatten]
|
39
|
+
|
40
|
+
# Fix encoding patch for 1.9.2
|
41
|
+
attributes.each do |k,v|
|
42
|
+
attributes[k] = v.force_encoding("UTF-8") if v.is_a?(String) && "".respond_to?("force_encoding")
|
43
|
+
end
|
44
|
+
|
40
45
|
@request_object.send("#{line[:line_type]}_lines").build(attributes)
|
41
46
|
end
|
42
47
|
@request_object.save!
|
@@ -262,7 +262,7 @@ module RequestLogAnalyzer
|
|
262
262
|
def handle_progress(message, value = nil)
|
263
263
|
case message
|
264
264
|
when :started
|
265
|
-
@progress_bar = CommandLine::ProgressBar.new(File.basename(value), File.size(value),
|
265
|
+
@progress_bar = CommandLine::ProgressBar.new(File.basename(value), File.size(value), STDERR)
|
266
266
|
when :finished
|
267
267
|
@progress_bar.finish
|
268
268
|
@progress_bar = nil
|
@@ -9,17 +9,26 @@ class RequestLogAnalyzer::Database::Base < ActiveRecord::Base
|
|
9
9
|
source_comparison
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
13
|
+
# Handle format manually, because it is prohibidado in Rails 3.2.1
|
14
|
+
def format=(arg)
|
15
|
+
self.attributes[:format] = arg
|
16
|
+
end
|
17
|
+
|
18
|
+
def format(arg)
|
19
|
+
self.attributes[:format]
|
20
|
+
end
|
12
21
|
|
13
22
|
def line_type
|
14
23
|
self.class.name.underscore.gsub(/_line$/, '').to_sym
|
15
24
|
end
|
16
25
|
|
17
|
-
|
26
|
+
class_attribute :line_definition
|
18
27
|
cattr_accessor :database
|
19
28
|
|
20
29
|
def self.subclass_from_line_definition(definition)
|
21
30
|
klass = Class.new(RequestLogAnalyzer::Database::Base)
|
22
|
-
klass.
|
31
|
+
klass.table_name = "#{definition.name}_lines"
|
23
32
|
|
24
33
|
klass.line_definition = definition
|
25
34
|
|
@@ -42,7 +51,7 @@ class RequestLogAnalyzer::Database::Base < ActiveRecord::Base
|
|
42
51
|
raise "Table #{table} not found!" unless database.connection.table_exists?(table)
|
43
52
|
|
44
53
|
klass = Class.new(RequestLogAnalyzer::Database::Base)
|
45
|
-
klass.
|
54
|
+
klass.table_name = table
|
46
55
|
|
47
56
|
if klass.column_names.include?('request_id')
|
48
57
|
klass.belongs_to :request, :class_name => RequestLogAnalyzer::Database::Request.name
|
@@ -75,8 +84,10 @@ class RequestLogAnalyzer::Database::Base < ActiveRecord::Base
|
|
75
84
|
t.column :lineno, :integer
|
76
85
|
|
77
86
|
line_definition.captures.each do |capture|
|
87
|
+
column_name = capture[:name]
|
88
|
+
column_name = 'file_format' if column_name == 'format'
|
78
89
|
# Add a field for every capture
|
79
|
-
t.column(
|
90
|
+
t.column(column_name, column_type(capture[:type]))
|
80
91
|
|
81
92
|
# If the capture provides other field as well, create columns for them, too
|
82
93
|
capture[:provides].each { |field, field_type| t.column(field, column_type(field_type)) } if capture[:provides].kind_of?(Hash)
|
@@ -13,13 +13,13 @@ module RequestLogAnalyzer::Database::Connection
|
|
13
13
|
|
14
14
|
def connect(connection_identifier)
|
15
15
|
if connection_identifier.kind_of?(Hash)
|
16
|
-
|
16
|
+
ActiveRecord::Base.establish_connection(connection_identifier)
|
17
17
|
elsif connection_identifier == ':memory:'
|
18
|
-
|
18
|
+
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
|
19
19
|
elsif connection_hash = RequestLogAnalyzer::Database::Connection.from_string(connection_identifier)
|
20
|
-
|
20
|
+
ActiveRecord::Base.establish_connection(connection_hash)
|
21
21
|
elsif connection_identifier.kind_of?(String) # Normal SQLite 3 database file
|
22
|
-
|
22
|
+
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => connection_identifier)
|
23
23
|
elsif connection_identifier.nil?
|
24
24
|
nil
|
25
25
|
else
|
@@ -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.12.
|
6
|
-
s.date = "2012-
|
5
|
+
s.version = "1.12.1"
|
6
|
+
s.date = "2012-02-20"
|
7
7
|
|
8
8
|
s.rubyforge_project = 'r-l-a'
|
9
9
|
|
@@ -31,8 +31,14 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.add_development_dependency('rspec', '~> 2.0')
|
32
32
|
|
33
33
|
s.add_development_dependency('activerecord')
|
34
|
-
s.add_development_dependency('sqlite3')
|
35
34
|
|
35
|
+
if defined?(JRUBY_VERSION)
|
36
|
+
s.add_development_dependency('jdbc-sqlite3')
|
37
|
+
s.add_development_dependency('activerecord-jdbcsqlite3-adapter')
|
38
|
+
else
|
39
|
+
s.add_development_dependency('sqlite3')
|
40
|
+
end
|
41
|
+
|
36
42
|
s.authors = ['Willem van Bergen', 'Bart ten Brinke']
|
37
43
|
s.email = ['willem@railsdoctors.com', 'bart@railsdoctors.com']
|
38
44
|
s.homepage = 'http://railsdoctors.com'
|
@@ -41,4 +47,4 @@ Gem::Specification.new do |s|
|
|
41
47
|
# Do not change them by hand, but make sure to add the files to the git repository.
|
42
48
|
s.files = %w(.gitignore .infinity_test .travis.yml DESIGN.rdoc Gemfile LICENSE README.rdoc Rakefile bin/request-log-analyzer lib/cli/command_line_arguments.rb lib/cli/database_console.rb lib/cli/database_console_init.rb lib/cli/progressbar.rb lib/cli/tools.rb lib/request_log_analyzer.rb lib/request_log_analyzer/aggregator.rb lib/request_log_analyzer/aggregator/database_inserter.rb lib/request_log_analyzer/aggregator/echo.rb lib/request_log_analyzer/aggregator/summarizer.rb lib/request_log_analyzer/controller.rb lib/request_log_analyzer/database.rb lib/request_log_analyzer/database/base.rb lib/request_log_analyzer/database/connection.rb lib/request_log_analyzer/database/request.rb lib/request_log_analyzer/database/source.rb lib/request_log_analyzer/database/warning.rb lib/request_log_analyzer/file_format.rb lib/request_log_analyzer/file_format/amazon_s3.rb lib/request_log_analyzer/file_format/apache.rb lib/request_log_analyzer/file_format/delayed_job.rb lib/request_log_analyzer/file_format/delayed_job2.rb lib/request_log_analyzer/file_format/delayed_job21.rb lib/request_log_analyzer/file_format/haproxy.rb lib/request_log_analyzer/file_format/merb.rb lib/request_log_analyzer/file_format/mysql.rb lib/request_log_analyzer/file_format/oink.rb lib/request_log_analyzer/file_format/postgresql.rb lib/request_log_analyzer/file_format/rack.rb lib/request_log_analyzer/file_format/rails.rb lib/request_log_analyzer/file_format/rails3.rb lib/request_log_analyzer/file_format/rails_development.rb lib/request_log_analyzer/file_format/w3c.rb lib/request_log_analyzer/filter.rb lib/request_log_analyzer/filter/anonymize.rb lib/request_log_analyzer/filter/field.rb lib/request_log_analyzer/filter/timespan.rb lib/request_log_analyzer/line_definition.rb lib/request_log_analyzer/log_processor.rb lib/request_log_analyzer/mailer.rb lib/request_log_analyzer/output.rb lib/request_log_analyzer/output/fixed_width.rb lib/request_log_analyzer/output/html.rb lib/request_log_analyzer/request.rb lib/request_log_analyzer/source.rb lib/request_log_analyzer/source/log_parser.rb lib/request_log_analyzer/tracker.rb lib/request_log_analyzer/tracker/duration.rb lib/request_log_analyzer/tracker/frequency.rb lib/request_log_analyzer/tracker/hourly_spread.rb lib/request_log_analyzer/tracker/numeric_value.rb lib/request_log_analyzer/tracker/timespan.rb lib/request_log_analyzer/tracker/traffic.rb request-log-analyzer.gemspec spec/database.yml spec/fixtures/apache_combined.log spec/fixtures/apache_common.log spec/fixtures/decompression.log spec/fixtures/decompression.log.bz2 spec/fixtures/decompression.log.gz spec/fixtures/decompression.log.zip spec/fixtures/decompression.tar.gz spec/fixtures/decompression.tgz spec/fixtures/header_and_footer.log spec/fixtures/merb.log spec/fixtures/merb_prefixed.log spec/fixtures/multiple_files_1.log spec/fixtures/multiple_files_2.log spec/fixtures/mysql_slow_query.log spec/fixtures/oink_22.log spec/fixtures/oink_22_failure.log spec/fixtures/postgresql.log spec/fixtures/rails.db spec/fixtures/rails_1x.log spec/fixtures/rails_22.log spec/fixtures/rails_22_cached.log spec/fixtures/rails_unordered.log spec/fixtures/sinatra.log spec/fixtures/syslog_1x.log spec/fixtures/test_file_format.log spec/fixtures/test_language_combined.log spec/fixtures/test_order.log spec/integration/command_line_usage_spec.rb spec/integration/mailer_spec.rb spec/integration/munin_plugins_rails_spec.rb spec/integration/scout_spec.rb spec/lib/helpers.rb spec/lib/macros.rb spec/lib/matchers.rb spec/lib/mocks.rb spec/lib/testing_format.rb spec/spec_helper.rb spec/unit/aggregator/database_inserter_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/controller/controller_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/database/base_class_spec.rb spec/unit/database/connection_spec.rb spec/unit/database/database_spec.rb spec/unit/file_format/amazon_s3_format_spec.rb spec/unit/file_format/apache_format_spec.rb spec/unit/file_format/common_regular_expressions_spec.rb spec/unit/file_format/delayed_job21_format_spec.rb spec/unit/file_format/delayed_job2_format_spec.rb spec/unit/file_format/delayed_job_format_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/format_autodetection_spec.rb spec/unit/file_format/haproxy_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/mysql_format_spec.rb spec/unit/file_format/oink_format_spec.rb spec/unit/file_format/postgresql_format_spec.rb spec/unit/file_format/rack_format_spec.rb spec/unit/file_format/rails3_format_spec.rb spec/unit/file_format/rails_format_spec.rb spec/unit/file_format/w3c_format_spec.rb spec/unit/filter/anonymize_filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/mailer_spec.rb spec/unit/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/tracker/numeric_value_tracker_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/traffic_tracker_spec.rb tasks/github-gem.rake tasks/request_log_analyzer.rake)
|
43
49
|
s.test_files = %w(spec/integration/command_line_usage_spec.rb spec/integration/mailer_spec.rb spec/integration/munin_plugins_rails_spec.rb spec/integration/scout_spec.rb spec/unit/aggregator/database_inserter_spec.rb spec/unit/aggregator/summarizer_spec.rb spec/unit/controller/controller_spec.rb spec/unit/controller/log_processor_spec.rb spec/unit/database/base_class_spec.rb spec/unit/database/connection_spec.rb spec/unit/database/database_spec.rb spec/unit/file_format/amazon_s3_format_spec.rb spec/unit/file_format/apache_format_spec.rb spec/unit/file_format/common_regular_expressions_spec.rb spec/unit/file_format/delayed_job21_format_spec.rb spec/unit/file_format/delayed_job2_format_spec.rb spec/unit/file_format/delayed_job_format_spec.rb spec/unit/file_format/file_format_api_spec.rb spec/unit/file_format/format_autodetection_spec.rb spec/unit/file_format/haproxy_format_spec.rb spec/unit/file_format/line_definition_spec.rb spec/unit/file_format/merb_format_spec.rb spec/unit/file_format/mysql_format_spec.rb spec/unit/file_format/oink_format_spec.rb spec/unit/file_format/postgresql_format_spec.rb spec/unit/file_format/rack_format_spec.rb spec/unit/file_format/rails3_format_spec.rb spec/unit/file_format/rails_format_spec.rb spec/unit/file_format/w3c_format_spec.rb spec/unit/filter/anonymize_filter_spec.rb spec/unit/filter/field_filter_spec.rb spec/unit/filter/filter_spec.rb spec/unit/filter/timespan_filter_spec.rb spec/unit/mailer_spec.rb spec/unit/request_spec.rb spec/unit/source/log_parser_spec.rb spec/unit/tracker/duration_tracker_spec.rb spec/unit/tracker/frequency_tracker_spec.rb spec/unit/tracker/hourly_spread_spec.rb spec/unit/tracker/numeric_value_tracker_spec.rb spec/unit/tracker/timespan_tracker_spec.rb spec/unit/tracker/tracker_api_spec.rb spec/unit/tracker/traffic_tracker_spec.rb)
|
44
|
-
end
|
50
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'socket'
|
3
3
|
|
4
|
+
unless defined?(JRUBY_VERSION) #No Fork on JRUBY
|
5
|
+
|
4
6
|
describe RequestLogAnalyzer, 'running mailer integration' do
|
5
7
|
|
6
8
|
before(:each) do
|
@@ -193,3 +195,7 @@ class Mailtrap
|
|
193
195
|
write( from, to_list, lines.join( "\n" ) )
|
194
196
|
end
|
195
197
|
end
|
198
|
+
|
199
|
+
else
|
200
|
+
p 'Skipping mailer integration specs, because of missing Process.fork()'
|
201
|
+
end
|
@@ -12,7 +12,7 @@ describe RequestLogAnalyzer::Database::Base do
|
|
12
12
|
|
13
13
|
before(:each) do
|
14
14
|
@orm_class = mock('Line ActiveRecord::Base class')
|
15
|
-
@orm_class.stub!(
|
15
|
+
@orm_class.stub!("table_name=")
|
16
16
|
@orm_class.stub!(:belongs_to)
|
17
17
|
@orm_class.stub!(:serialize)
|
18
18
|
@orm_class.stub!(:line_definition=)
|
@@ -37,7 +37,7 @@ describe RequestLogAnalyzer::Database::Base do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it "should set the table name for the subclass" do
|
40
|
-
@orm_class.should_receive(
|
40
|
+
@orm_class.should_receive("table_name=").with('test_lines')
|
41
41
|
RequestLogAnalyzer::Database::Base.subclass_from_line_definition(@line_definition)
|
42
42
|
end
|
43
43
|
|
@@ -80,7 +80,7 @@ describe RequestLogAnalyzer::Database::Base do
|
|
80
80
|
|
81
81
|
@klass = mock('ActiveRecord ORM class')
|
82
82
|
@klass.stub!(:column_names).and_return(['id', 'request_id', 'source_id', 'lineno', 'duration'])
|
83
|
-
@klass.stub!(
|
83
|
+
@klass.stub!("table_name=")
|
84
84
|
@klass.stub!(:belongs_to)
|
85
85
|
Class.stub!(:new).with(RequestLogAnalyzer::Database::Base).and_return(@klass)
|
86
86
|
end
|
@@ -91,7 +91,7 @@ describe RequestLogAnalyzer::Database::Base do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should set the table name" do
|
94
|
-
@klass.should_receive(
|
94
|
+
@klass.should_receive("table_name=").with('completed_lines')
|
95
95
|
RequestLogAnalyzer::Database::Base.subclass_from_table('completed_lines')
|
96
96
|
end
|
97
97
|
|
metadata
CHANGED
@@ -1,73 +1,80 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: request-log-analyzer
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.12.1
|
4
5
|
prerelease:
|
5
|
-
version: 1.12.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Willem van Bergen
|
9
9
|
- Bart ten Brinke
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-02-20 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: rake
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
+
requirement: &70250250928960 !ruby/object:Gem::Requirement
|
20
18
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
25
23
|
type: :development
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rspec
|
29
24
|
prerelease: false
|
30
|
-
|
25
|
+
version_requirements: *70250250928960
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: rspec
|
28
|
+
requirement: &70250247206980 !ruby/object:Gem::Requirement
|
31
29
|
none: false
|
32
|
-
requirements:
|
30
|
+
requirements:
|
33
31
|
- - ~>
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version:
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '2.0'
|
36
34
|
type: :development
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: activerecord
|
40
35
|
prerelease: false
|
41
|
-
|
36
|
+
version_requirements: *70250247206980
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: activerecord
|
39
|
+
requirement: &70250247206200 !ruby/object:Gem::Requirement
|
42
40
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version:
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
47
45
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: sqlite3
|
51
46
|
prerelease: false
|
52
|
-
|
47
|
+
version_requirements: *70250247206200
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: sqlite3
|
50
|
+
requirement: &70250247205540 !ruby/object:Gem::Requirement
|
53
51
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
58
56
|
type: :development
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *70250247205540
|
59
|
+
description: ! " Request log analyzer's purpose is to find out how your web application
|
60
|
+
is being used, how it performs and to\n focus your optimization efforts. This
|
61
|
+
tool will parse all requests in the application's log file and aggregate the \n
|
62
|
+
\ information. Once it is finished parsing the log file(s), it will show the requests
|
63
|
+
that take op most server time \n using various metrics. It can also insert all
|
64
|
+
parsed request information into a database so you can roll your own\n analysis.
|
65
|
+
It supports Rails-, Merb- and Rack-based applications logs, Apache and Amazon S3
|
66
|
+
access logs and MySQL \n slow query logs out of the box, but file formats of
|
67
|
+
other applications can easily be supported by supplying an \n easy to write log
|
68
|
+
file format definition.\n"
|
69
|
+
email:
|
62
70
|
- willem@railsdoctors.com
|
63
71
|
- bart@railsdoctors.com
|
64
|
-
executables:
|
72
|
+
executables:
|
65
73
|
- request-log-analyzer
|
66
74
|
extensions: []
|
67
|
-
|
68
|
-
extra_rdoc_files:
|
75
|
+
extra_rdoc_files:
|
69
76
|
- README.rdoc
|
70
|
-
files:
|
77
|
+
files:
|
71
78
|
- .gitignore
|
72
79
|
- .infinity_test
|
73
80
|
- .travis.yml
|
@@ -212,37 +219,38 @@ files:
|
|
212
219
|
- tasks/request_log_analyzer.rake
|
213
220
|
homepage: http://railsdoctors.com
|
214
221
|
licenses: []
|
215
|
-
|
216
222
|
post_install_message:
|
217
|
-
rdoc_options:
|
223
|
+
rdoc_options:
|
218
224
|
- --title
|
219
225
|
- request-log-analyzer
|
220
226
|
- --main
|
221
227
|
- README.rdoc
|
222
228
|
- --line-numbers
|
223
229
|
- --inline-source
|
224
|
-
require_paths:
|
230
|
+
require_paths:
|
225
231
|
- lib
|
226
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
232
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
227
233
|
none: false
|
228
|
-
requirements:
|
229
|
-
- -
|
230
|
-
- !ruby/object:Gem::Version
|
231
|
-
version:
|
232
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
234
|
+
requirements:
|
235
|
+
- - ! '>='
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '0'
|
238
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
239
|
none: false
|
234
|
-
requirements:
|
235
|
-
- -
|
236
|
-
- !ruby/object:Gem::Version
|
237
|
-
version:
|
238
|
-
requirements:
|
239
|
-
- To use the database inserter, ActiveRecord and an appropriate database adapter are
|
240
|
+
requirements:
|
241
|
+
- - ! '>='
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
requirements:
|
245
|
+
- To use the database inserter, ActiveRecord and an appropriate database adapter are
|
246
|
+
required.
|
240
247
|
rubyforge_project: r-l-a
|
241
|
-
rubygems_version: 1.8.
|
248
|
+
rubygems_version: 1.8.10
|
242
249
|
signing_key:
|
243
250
|
specification_version: 3
|
244
|
-
summary: A command line tool to analyze request logs for Apache, Rails, Merb, MySQL
|
245
|
-
|
251
|
+
summary: A command line tool to analyze request logs for Apache, Rails, Merb, MySQL
|
252
|
+
and other web application servers
|
253
|
+
test_files:
|
246
254
|
- spec/integration/command_line_usage_spec.rb
|
247
255
|
- spec/integration/mailer_spec.rb
|
248
256
|
- spec/integration/munin_plugins_rails_spec.rb
|