Sha256: 3bbb25bcbba7ed5a6b214e7f1e30c7fbcb20774088e917cf25866b6d33c63668
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
require "json" require "log_stats/version" require "log_stats/line_parser" require "log_stats/logger" require "log_stats/requests/stats" require "log_stats/requests/kpi" require "log_stats/requests/text_output" module LogStats def self.run(log_data, config) data = get_data(log_data, config) if config[:stats_format] == "text" && request_config = config[:events][:requests] Requests::TextOutput.print(data[:requests], request_config) end if config[:stats_format] == "json" puts JSON.generate(data) end data end def self.get_data(log_data, config) logger = Logger.new(config[:verbose]) logger.info("\nParsing request lines...") data = LineParser.parse(log_data, config) result = {} if requests = data[:requests] requests_count = requests.size requests_config = config[:events][:requests] logger.info("\nNumber of request lines: #{requests_count}") logger.info("Start time: #{requests[0][:time]}") logger.info("End time: #{requests[-1][:time]}") logger.info("\nCalculating request stats...") stats = Requests::Stats.stats(requests, requests_config) result[:requests] = { requests_count: requests_count, requests: requests, stats: stats, requests_by_status: requests.group_by { |request| request[:status] }, requests_by_code: requests.group_by { |request| request[:code] }, kpi: Requests::KPI.calculate(requests, stats) } end result end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
log_stats-0.3.0 | lib/log_stats.rb |