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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11e7ab566f4f3b53ffc1c7d9b2cde45903b5e6ba
4
- data.tar.gz: aa983c266dffc4ec2effd53f0b92f508fa72ea0a
3
+ metadata.gz: f41223ee90ab08944ff0febf8ae290dd59e64ad3
4
+ data.tar.gz: 42259485678d72fb2f8ae10e5e22346c1a55e479
5
5
  SHA512:
6
- metadata.gz: 117df83d6d0b402a8bb938eb0da7dd233416ebef1adddc7c149eb579e850ca3f73b7786f558aec2bba82d81fbcc1819f1ea0a760d41a3ab88acf8a27739bb4e3
7
- data.tar.gz: d1935d9a1c4e00e9d892affd511f505dfdb5d58bd5c7329769e903cb18cad4928e933aec112f7675c39440f29e5f0c642dce2297b1a497cbba4918621129a632
6
+ metadata.gz: 8ee67e9716c153913ad30c99236726e093de962eddf58de69c2159a242421d1b11d5b37e7d263b5a71e722738e8d9c24bce4bdde4e02b3fc344eeeec8b32a285
7
+ data.tar.gz: 0a5416e38a1e5d051bd573036de29ac6c6dfc2877b33942725354c4aba60b8b78dd273b305e39c4ff1b1461b653446b7953a77868d688523eb79cc1d97a86021
data/bin/log_stats CHANGED
@@ -3,6 +3,6 @@
3
3
  require 'log_stats'
4
4
  require "log_stats/config"
5
5
 
6
- log_file_data = ARGF.read
6
+ log_file_data = ARGF.readlines
7
7
  config = LogStats::Config.default_config.merge(LogStats::Config.env_config)
8
8
  LogStats.run(log_file_data, config)
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
- log_file_data = LogStats::Logger.elapsed(config, "Reading file") { ARGF.readlines }
97
- data = LogStats.get_data(log_file_data, config)
98
- puts JSON.pretty_generate(data)
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
@@ -1,3 +1,3 @@
1
1
  module LogStats
2
- VERSION = "0.4.6"
2
+ VERSION = "0.4.7"
3
3
  end
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
- data = get_data(log_data, config)
14
+ stats = get_stats(log_data, config)
15
15
  if config[:output_format] == "text" && request_config = config[:events][:requests]
16
- Requests::TextOutput.print(data[:requests], request_config)
16
+ Requests::TextOutput.print(stats[:requests], request_config)
17
17
  end
18
18
  if config[:output_format] == "json"
19
- puts JSON.pretty_generate(data)
19
+ puts JSON.pretty_generate(stats)
20
20
  end
21
- data
21
+ stats
22
22
  end
23
23
 
24
- def self.get_data(log_data, config)
25
- events = Logger.elapsed(config, "\nParsing #{log_data.length} log lines") do
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|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: log_stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Marklund