log_stats 0.4.6 → 0.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/log_stats +1 -1
- data/example/log_stats +26 -3
- data/lib/log_stats/version.rb +1 -1
- data/lib/log_stats.rb +14 -6
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f41223ee90ab08944ff0febf8ae290dd59e64ad3
|
4
|
+
data.tar.gz: 42259485678d72fb2f8ae10e5e22346c1a55e479
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ee67e9716c153913ad30c99236726e093de962eddf58de69c2159a242421d1b11d5b37e7d263b5a71e722738e8d9c24bce4bdde4e02b3fc344eeeec8b32a285
|
7
|
+
data.tar.gz: 0a5416e38a1e5d051bd573036de29ac6c6dfc2877b33942725354c4aba60b8b78dd273b305e39c4ff1b1461b653446b7953a77868d688523eb79cc1d97a86021
|
data/bin/log_stats
CHANGED
data/example/log_stats
CHANGED
@@ -93,6 +93,29 @@ config = LogStats::Config.default_config.
|
|
93
93
|
merge(custom_config).
|
94
94
|
merge(LogStats::Config.env_config)
|
95
95
|
|
96
|
-
|
97
|
-
|
98
|
-
|
96
|
+
file_path = ARGV[0]
|
97
|
+
dir_path = file_path[/^.+(?=\.[^.]+$)/] # File path minus extension
|
98
|
+
events_path = File.join(dir_path, 'events.json')
|
99
|
+
stats_path = File.join(dir_path, 'stats.json')
|
100
|
+
|
101
|
+
if File.exists?(events_path)
|
102
|
+
# NOTE: it's faster to read cached JSON events data than processing the log file
|
103
|
+
events = LogStats::Logger.elapsed(config, "Reading and parsing #{events_path}") do
|
104
|
+
JSON.parse(IO.read("events.json"))
|
105
|
+
end
|
106
|
+
else
|
107
|
+
log_file_data = LogStats::Logger.elapsed(config, "Reading log file #{file_path}") do
|
108
|
+
IO.readlines(file_path)
|
109
|
+
end
|
110
|
+
events = LogStats.get_events(log_file_data, config)
|
111
|
+
LogStats::Logger.elapsed(config, "Writing #{events_path}") do
|
112
|
+
Dir.mkdir(dir_path) if !File.exists?(dir_path)
|
113
|
+
File.write(events_path, JSON.pretty_generate(events))
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
stats = LogStats.process_events(events, config)
|
118
|
+
|
119
|
+
LogStats::Logger.elapsed(config, "Writing stats output to #{stats_path}") do
|
120
|
+
File.write(stats_path, JSON.pretty_generate(stats))
|
121
|
+
end
|
data/lib/log_stats/version.rb
CHANGED
data/lib/log_stats.rb
CHANGED
@@ -11,20 +11,28 @@ require "time"
|
|
11
11
|
|
12
12
|
module LogStats
|
13
13
|
def self.run(log_data, config)
|
14
|
-
|
14
|
+
stats = get_stats(log_data, config)
|
15
15
|
if config[:output_format] == "text" && request_config = config[:events][:requests]
|
16
|
-
Requests::TextOutput.print(
|
16
|
+
Requests::TextOutput.print(stats[:requests], request_config)
|
17
17
|
end
|
18
18
|
if config[:output_format] == "json"
|
19
|
-
puts JSON.pretty_generate(
|
19
|
+
puts JSON.pretty_generate(stats)
|
20
20
|
end
|
21
|
-
|
21
|
+
stats
|
22
22
|
end
|
23
23
|
|
24
|
-
def self.
|
25
|
-
events =
|
24
|
+
def self.get_stats(log_data, config)
|
25
|
+
events = get_events(log_data, config)
|
26
|
+
process_events(events, config)
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.get_events(log_data, config)
|
30
|
+
Logger.elapsed(config, "\nParsing #{log_data.length} log lines") do
|
26
31
|
LineParser.parse(log_data, config)
|
27
32
|
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.process_events(events, config)
|
28
36
|
if config[:start_time] || config[:end_time]
|
29
37
|
events = Logger.elapsed(config, "\nFiltering by start_time/end_time") do
|
30
38
|
events.keys.reduce({}) do |acc, key|
|