heavylog 0.0.20 → 0.0.21

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
  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