log-analyzer 0.3.0 → 0.4.0
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.
- checksums.yaml +4 -4
- data/README.md +10 -5
- data/lib/log-analyzer/command/log-analyzer.rb +2 -0
- data/lib/log-analyzer/config.rb +3 -2
- data/lib/log-analyzer/log.rb +5 -1
- data/lib/log-analyzer/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 866eefaeda010bc822f01b13b9e4d15bf2b7cfbe
|
4
|
+
data.tar.gz: 5407e578aee2608481dadb66d5e9b4b351d97b4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 784514f2e132c8558990f4076d197cfe76a16183e91b7f769a67a264a7746f2139a1fc262a3bc218c8325579ffa1bba6601654116a4f1a9d1160951dc3699ac9
|
7
|
+
data.tar.gz: f97b7d88c249fd621ce9b50f6191c946d8afbd9138d64373fee8c280935f34dca5055b5f3c45673217a0e742dac4656f574908fa9286416f37d082cd252cad08
|
data/README.md
CHANGED
@@ -40,6 +40,7 @@ Usage: log-analyzer [options] <file ...>
|
|
40
40
|
-h, --help output usage information
|
41
41
|
-V, --version output the version number
|
42
42
|
-r FILE routing format file
|
43
|
+
-S, --log-separator VALUE log separator
|
43
44
|
-R, --route-regexp VALUE route regexp
|
44
45
|
-L, --log-regexp VALUE log regexp
|
45
46
|
```
|
@@ -48,11 +49,15 @@ Example:
|
|
48
49
|
|
49
50
|
```shell
|
50
51
|
$ log-analyzer -r path/to/routes.txt path/to/application.log
|
51
|
-
|
52
|
-
┃ method ┃ endpoint
|
53
|
-
|
54
|
-
┃ GET ┃ /
|
55
|
-
|
52
|
+
┏━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
|
53
|
+
┃ method ┃ endpoint ┃ count ┃ response_time(avg) ┃ response_time(max) ┃ response_time(min) ┃
|
54
|
+
┣━━━━━━━━╊━━━━━━━━━━━━╊━━━━━━━╊━━━━━━━━━━━━━━━━━━━━╊━━━━━━━━━━━━━━━━━━━━╊━━━━━━━━━━━━━━━━━━━━┫
|
55
|
+
┃ GET ┃ / ┃ 10 ┃ 20.5 ┃ 55 ┃ 3 ┃
|
56
|
+
┃ GET ┃ /users ┃ 5 ┃ 10.3 ┃ 30 ┃ 3 ┃
|
57
|
+
┃ GET ┃ /users/:id ┃ 3 ┃ 10 ┃ 15 ┃ 5 ┃
|
58
|
+
┃ POST ┃ /users ┃ 2 ┃ 30 ┃ 40 ┃ 20 ┃
|
59
|
+
┃ DELETE ┃ /users/:id ┃ 0 ┃ ┃ ┃ ┃
|
60
|
+
┗━━━━━━━━┻━━━━━━━━━━━━┻━━━━━━━┻━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━┛
|
56
61
|
```
|
57
62
|
|
58
63
|
## Development
|
@@ -19,6 +19,7 @@ op.on('-V', '--version', 'output the version number') do |v|
|
|
19
19
|
end
|
20
20
|
|
21
21
|
op.on('-r FILE', 'routing format file') { |v| opts[:routing_file] = v }
|
22
|
+
op.on('-S VALUE', '--log-separator', 'log separator') { |v| opts[:log_separator] = v }
|
22
23
|
op.on('-R VALUE', '--route-regexp', 'route regexp') { |v| opts[:route_regexp] = v }
|
23
24
|
op.on('-L VALUE', '--log-regexp', 'log regexp') { |v| opts[:log_regexp] = v }
|
24
25
|
|
@@ -30,6 +31,7 @@ else
|
|
30
31
|
Log::Analyzer.configure do |config|
|
31
32
|
config.route_regexp = Regexp.new(opts[:route_regexp]) if opts[:route_regexp]
|
32
33
|
config.log_regexp = Regexp.new(opts[:log_regexp]) if opts[:log_regexp]
|
34
|
+
config.log_separator = opts[:log_separator] if opts[:log_separator]
|
33
35
|
end
|
34
36
|
|
35
37
|
Log::Analyzer::CLI.run(ARGV, opts)
|
data/lib/log-analyzer/config.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
module Log::Analyzer
|
2
2
|
class Config
|
3
|
-
attr_accessor :log_regexp, :route_regexp
|
3
|
+
attr_accessor :log_regexp, :route_regexp, :log_separator
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
@route_regexp = /(GET|POST|DELETE|PATCH|PUT)\s+([^\s]*)\s/i
|
7
|
-
@log_regexp = /Started (?<request_method>GET|POST|DELETE|PATCH|PUT) "(?<path_info>[^"]+)"/
|
7
|
+
@log_regexp = /Started (?<request_method>GET|POST|DELETE|PATCH|PUT) "(?<path_info>[^"]+)".*in (?<response_time>[0-9]+)ms/im
|
8
|
+
@log_separator = "\n\n\n"
|
8
9
|
end
|
9
10
|
end
|
10
11
|
end
|
data/lib/log-analyzer/log.rb
CHANGED
@@ -5,7 +5,7 @@ module Log::Analyzer
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def each_line(&block)
|
8
|
-
@file.each_line do |line|
|
8
|
+
@file.each_line(separator) do |line|
|
9
9
|
next unless md = line.match(regexp)
|
10
10
|
env = md.names.inject({}) do |hash, name|
|
11
11
|
hash[name.upcase] = md[name]
|
@@ -19,5 +19,9 @@ module Log::Analyzer
|
|
19
19
|
def regexp
|
20
20
|
::Log::Analyzer.config.log_regexp
|
21
21
|
end
|
22
|
+
|
23
|
+
def separator
|
24
|
+
::Log::Analyzer.config.log_separator
|
25
|
+
end
|
22
26
|
end
|
23
27
|
end
|
data/lib/log-analyzer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: log-analyzer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- shiro16
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
175
|
version: '0'
|
176
176
|
requirements: []
|
177
177
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.4.5
|
178
|
+
rubygems_version: 2.4.5.1
|
179
179
|
signing_key:
|
180
180
|
specification_version: 4
|
181
181
|
summary: Analyze the performance of each endpoint from the routing file
|