heavylog 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/heavylog/formatters/ecs.rb +26 -9
- data/lib/heavylog/log_subscriber.rb +9 -0
- data/lib/heavylog/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1e5698a7bfa3d9476d9b35f0a0da99a7faeeb230df8889599cf343b017745488
|
4
|
+
data.tar.gz: 74d24b9be2f75463929bc5de1cb076fca87cb7b707a7123474a95682b3899e4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dde2fc6a5912a2345729bd7150d1a6c39b55ab4f90800ee2cbe61acb3f351c978ecadea820981ba1cc94180140d8ddbab0f0f6890901c6251a906b2be9343a7
|
7
|
+
data.tar.gz: b7a5930b2cba4fa6501798ac200978a5c172cda4af2b0d1dd55dc23bf0373edde9c722b1b3cbf658f68163d03adee190814f3d342bf621bf5d11c7eeab03dbaa
|
data/Gemfile.lock
CHANGED
@@ -11,7 +11,8 @@ module Heavylog
|
|
11
11
|
"messages" => "message",
|
12
12
|
"request_id" => "http.request.id",
|
13
13
|
"method" => "http.request.method",
|
14
|
-
"
|
14
|
+
"referrer" => "http.request.referrer",
|
15
|
+
"format" => "http.response.format",
|
15
16
|
"status" => "http.response.status_code",
|
16
17
|
"location" => "http.response.location",
|
17
18
|
"ip" => "source.address",
|
@@ -27,22 +28,38 @@ module Heavylog
|
|
27
28
|
|
28
29
|
def call(data)
|
29
30
|
ECS_MAP.each do |original, correct|
|
30
|
-
data
|
31
|
+
dig_set(data, correct.split("."), data.delete(original)) if data[original]
|
31
32
|
end
|
32
33
|
|
33
|
-
data[
|
34
|
-
data[
|
35
|
-
data["event.dataset"] ||= data["heavylog.controller"] == "SidekiqLogger" ? "heavylog.sidekiq" : "heavylog.rails"
|
34
|
+
dig_set(data, %w[event module], "heavylog")
|
35
|
+
dig_set(data, %w[event category], "web")
|
36
36
|
|
37
|
-
|
38
|
-
|
37
|
+
unless data.dig("event", "dataset")
|
38
|
+
value = data.dig("heavylog", "controller") == "SidekiqLogger" ? "heavylog.sidekiq" : "heavylog.rails"
|
39
|
+
dig_set(data, %w[event dataset], value)
|
39
40
|
end
|
40
41
|
|
41
|
-
data
|
42
|
-
|
42
|
+
if (code = data.dig("http", "response", "status_code"))
|
43
|
+
dig_set(data, %w[event outcome], (200..399).cover?(code) ? "success" : "failure")
|
44
|
+
end
|
45
|
+
|
46
|
+
dig_set(data, %w[source ip], data.dig("source", "address")) unless data.dig("source", "ip")
|
47
|
+
dig_set(data, %w[url path], data.dig("url", "original")) unless data.dig("url", "path")
|
43
48
|
|
44
49
|
::JSON.dump(data)
|
45
50
|
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def dig_set(obj, keys, value)
|
55
|
+
key = keys.first
|
56
|
+
if keys.length == 1
|
57
|
+
obj[key] = value
|
58
|
+
else
|
59
|
+
obj[key] = {} unless obj[key]
|
60
|
+
dig_set(obj[key], keys.slice(1..-1), value)
|
61
|
+
end
|
62
|
+
end
|
46
63
|
end
|
47
64
|
end
|
48
65
|
end
|
@@ -31,6 +31,7 @@ module Heavylog
|
|
31
31
|
data.merge!(extract_runtimes(event, payload))
|
32
32
|
data.merge!(extract_location)
|
33
33
|
data.merge!(extract_unpermitted_params)
|
34
|
+
data.merge!(extract_referrer(payload))
|
34
35
|
data.merge!(custom_options(event))
|
35
36
|
end
|
36
37
|
|
@@ -101,5 +102,13 @@ module Heavylog
|
|
101
102
|
RequestStore.store[:heavylog_unpermitted_params] = nil
|
102
103
|
{ unpermitted_params: unpermitted_params }
|
103
104
|
end
|
105
|
+
|
106
|
+
def extract_referrer(payload)
|
107
|
+
if payload[:request].is_a?(ActionDispatch::Request) && payload[:request].referrer
|
108
|
+
return { referrer: payload[:request].referrer }
|
109
|
+
end
|
110
|
+
|
111
|
+
{}
|
112
|
+
end
|
104
113
|
end
|
105
114
|
end
|
data/lib/heavylog/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heavylog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristjan Rang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-05-
|
11
|
+
date: 2021-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|