lib/log_stats.rb in log_stats-0.4.5 vs lib/log_stats.rb in log_stats-0.4.6
- old
+ new
@@ -5,10 +5,11 @@
require "log_stats/logger"
require "log_stats/stats"
require "log_stats/requests/stats"
require "log_stats/requests/kpi"
require "log_stats/requests/text_output"
+require "time"
module LogStats
def self.run(log_data, config)
data = get_data(log_data, config)
if config[:output_format] == "text" && request_config = config[:events][:requests]
@@ -21,9 +22,21 @@
end
def self.get_data(log_data, config)
events = Logger.elapsed(config, "\nParsing #{log_data.length} log lines") do
LineParser.parse(log_data, config)
+ end
+ if config[:start_time] || config[:end_time]
+ events = Logger.elapsed(config, "\nFiltering by start_time/end_time") do
+ events.keys.reduce({}) do |acc, key|
+ acc[key] = events[key].select do |event|
+ event_time = Time.parse(event[:time])
+ (config[:start_time].nil? || config[:start_time] < event_time) &&
+ (config[:end_time].nil? || config[:end_time] > event_time)
+ end
+ acc
+ end
+ end
end
result = {}
if requests = events[:requests]
result[:requests] = get_requests_data(requests, config)
end