nais-log-parser 0.25.0 → 0.26.0

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: a18d5e7b70d966fa129a0e82f7478e0c0c3c31dc
4
- data.tar.gz: 0f2f9df2634708b1d7cc655217187fd390f9164f
3
+ metadata.gz: 92f7994d955835f001a575b0ff4001cf77a6483d
4
+ data.tar.gz: 8c49f344e450fced7c2a93fb629c0faa0cf97c6a
5
5
  SHA512:
6
- metadata.gz: b03948e361406ec475863826b01aaef49939512ce2930b01f265decd75ebbe2c1387bcd30b630b1ec6cf971684eecf17e862250a06451fc9dca5bb5ad5f5cdff
7
- data.tar.gz: 5138d0f8abd353a0206d43d4fb016be3befe888cacbdf93e89a9d796e6f2ffe5381c7714cc1886c600f542ee318086a1a6f1a23e3773b45da4e58589bf3e2f7d
6
+ metadata.gz: 434b03929144db889fb7edacd7eb90f0e7c8c7d8be2db7259832d91a53344eea73efcac5f14d6ae7e51340c14d51cf1c94eea9b53312367ecbadd991b43a2a2d
7
+ data.tar.gz: 72000f8b16aa93d318e620636735dd8f70c1cc58c130385ddb0c5b6d912e31bbeb02b0901867942090c4a50fcf68d61c71aed98d3c88bd45fe188eed7f202245
@@ -1,7 +1,7 @@
1
1
  module Nais
2
2
  module Log
3
3
  module Parser
4
- VERSION = "0.25.0"
4
+ VERSION = "0.26.0"
5
5
  end
6
6
  end
7
7
  end
@@ -3,18 +3,23 @@ require "nais/log/parser/version"
3
3
  require "time"
4
4
  require "json"
5
5
  require "logfmt"
6
+ require "uri"
6
7
 
7
8
  module Nais
8
9
  module Log
9
10
  module Parser
10
11
 
11
- def Parser.flatten_hash(hash, path = "")
12
+ def Parser.flatten_hash(hash, path = "", keep = nil)
12
13
  hash.each_with_object({}) do |(k, v), ret|
13
- key = (path + k.to_s).tr('.','_')
14
- if v.is_a? Hash
15
- ret.merge! Parser.flatten_hash(v, key.to_s + "_")
14
+ if path == "" && !keep.nil? && k =~ keep
15
+ ret[k] = v
16
16
  else
17
- ret[key] = v
17
+ key = (path + k.to_s).tr('.','_')
18
+ if v.is_a? Hash
19
+ ret.merge! Parser.flatten_hash(v, key.to_s + "_")
20
+ else
21
+ ret[key] = v
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -137,6 +142,43 @@ module Nais
137
142
  return r.empty? ? nil : r
138
143
  end
139
144
 
145
+ def Parser.parse_uri(str)
146
+ r = {}
147
+ unless str.nil?
148
+ i = str.index('?')
149
+ if i.nil?
150
+ r['path'] = URI.decode(str)
151
+ else
152
+ if i != 0
153
+ r['path'] = URI.decode(str[0,i])
154
+ end
155
+ if i+1 < str.length
156
+ query = str[i+1, str.length]
157
+ kv = {}
158
+ query.scan(/([^=&]+)=([^&]+)/) do |k,v|
159
+ k.gsub!(/\+/, ' ')
160
+ k = URI.decode(k)
161
+ v.gsub!(/\+/, ' ')
162
+ v = URI.decode(v)
163
+ if kv.has_key?(k)
164
+ if kv[k].is_a?(Array)
165
+ next if kv[k].include?(v)
166
+ kv[k].push(v)
167
+ else
168
+ next if kv[k] == v
169
+ kv[k] = [kv[k], v]
170
+ end
171
+ else
172
+ kv[k] = v
173
+ end
174
+ end
175
+ r['query_params'] = kv unless kv.empty?
176
+ end
177
+ end
178
+ end
179
+ r
180
+ end
181
+
140
182
  def Parser.parse_accesslog(str)
141
183
  if !str.nil? && m = str.match(/^(\S+) +(?:(\S+) )?(\S+) \[([^\]]+)\] \"([^\"]*)\" (\S+) (\S+)(.*)/)
142
184
  r = {}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nais-log-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.0
4
+ version: 0.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Terje Sannum
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-13 00:00:00.000000000 Z
11
+ date: 2018-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logfmt