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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d938340a9fc57747dc46c35aadb0a9b92c08da6466f3d333479e7b0c4de63d4
4
- data.tar.gz: f31b3c1ec5566d8de8c6199b21dfae45b00b22c5710dd1eecb07e676a55b3a2e
3
+ metadata.gz: 1e5698a7bfa3d9476d9b35f0a0da99a7faeeb230df8889599cf343b017745488
4
+ data.tar.gz: 74d24b9be2f75463929bc5de1cb076fca87cb7b707a7123474a95682b3899e4a
5
5
  SHA512:
6
- metadata.gz: 44fa9815cb453c895d70db9912558f9b16cf775caaa83d1d723fde9252ced6a6c4a07072d0b0db8b352236a11701330af9ec0adf7de8bc94c41a89e96c6e5dfa
7
- data.tar.gz: 993f3cb991245997f89827c4bd6581060b35eadd64d4c229419c5dbe6cbc1f8467319e66514c91af9d445bd683231144d8393419729b4ab513f7a7996ffe1854
6
+ metadata.gz: 1dde2fc6a5912a2345729bd7150d1a6c39b55ab4f90800ee2cbe61acb3f351c978ecadea820981ba1cc94180140d8ddbab0f0f6890901c6251a906b2be9343a7
7
+ data.tar.gz: b7a5930b2cba4fa6501798ac200978a5c172cda4af2b0d1dd55dc23bf0373edde9c722b1b3cbf658f68163d03adee190814f3d342bf621bf5d11c7eeab03dbaa
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- heavylog (0.0.20)
4
+ heavylog (0.0.21)
5
5
  actionpack (>= 5)
6
6
  activesupport (>= 5)
7
7
  railties (>= 5)
@@ -11,7 +11,8 @@ module Heavylog
11
11
  "messages" => "message",
12
12
  "request_id" => "http.request.id",
13
13
  "method" => "http.request.method",
14
- "format" => "http.request.mime_type",
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[correct] = data.delete(original) if data[original]
31
+ dig_set(data, correct.split("."), data.delete(original)) if data[original]
31
32
  end
32
33
 
33
- data["event.module"] = "heavylog"
34
- data["event.category"] = "web"
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
- if data["http.response.status_code"]
38
- data["event.outcome"] = (200..399).cover?(data["http.response.status_code"]) ? "success" : "failure"
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["source.ip"] ||= data["source.address"]
42
- data["url.path"] ||= data["url.original"]
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Heavylog
4
- VERSION = "0.0.20"
4
+ VERSION = "0.0.21"
5
5
  end
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.20
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 00:00:00.000000000 Z
11
+ date: 2021-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler