log_stats 0.4.6 → 0.4.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.
- 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|
|