Sha256: beefb98b13a8a5d7c37d0a01da0c01f4cebf0f634a9487e1402b14c33d2af6f9
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
#!/usr/bin/env ruby ############################################################################# # This example script shows custom parsing of API requests from a log file. ############################################################################# $:.unshift(File.dirname(__FILE__) + '/../lib') require 'log_stats' require "log_stats/config" require "json" require "uri" parse_time = Proc.new { |line| line[/\b20\d\d-\d\d-\d\dT\d\d:\d\d:\d\d/] } custom_config = { events: LogStats::Config.default_config[:events].merge({ api_calls: { # 2017-02-19T06:21:25.522274+00:00 app[worker.2]: [WARN] [Vac::Request] Slow response time for url=http://sumore02.cmore.dk/api/tve_web/search/categories/160145/assets/ method=get status=304 size= response_time=141 line_pattern: /\s\[Vac::Request\] Slow response time\s/, fields: [ {name: :time, parse: parse_time}, {name: :url}, {name: :method}, {name: :response_time, numeric: true, events: true} ], group_by: { hostname: { id: Proc.new { |api_call| URI(api_call[:url]).host } }, method: { id: Proc.new { |api_call| URI(api_call[:method]) } } } } }), verbose: false } config = LogStats::Config.default_config. merge(custom_config). merge(LogStats::Config.env_config) log_file_data = ARGF.read data = LogStats.get_data(log_file_data, config) data[:requests] = data[:requests][:kpi] # Only output KPI from requests data puts JSON.pretty_generate(data)
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
log_stats-0.4.2 | example/log_stats |
log_stats-0.4.1 | example/log_stats |
log_stats-0.4.0 | example/log_stats |