infinum_graylog 0.4.0 → 0.5.0
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 +3 -3
- data/infinum_graylog.gemspec +2 -3
- data/lib/infinum_graylog/middleware.rb +13 -0
- data/lib/infinum_graylog/notifier.rb +18 -5
- data/lib/infinum_graylog/process_action_controller.rb +1 -1
- data/lib/infinum_graylog/railtie.rb +7 -0
- data/lib/infinum_graylog/subscriber.rb +19 -9
- data/lib/infinum_graylog/version.rb +1 -1
- data/lib/infinum_graylog.rb +2 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c45c6c7d40d3f7b1e94bf35cb63e0f351ed1f05bf8f0ba637124747da3a78da
|
4
|
+
data.tar.gz: d05fb525dc2a5366283b5b6b283afc16fbaf21056bd26d727370b2a0797eea2a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b1706a9b905d35ee7434920dfa64d9b0fc438bd7228d88a3ff37d95505ec2ae74c44610c3ad6e28f8bf65a5b847033337225276c04097b3a57102cd16242fcc
|
7
|
+
data.tar.gz: 2e04061f26cf94800db497ae3f769c1651601217d1b616e5e7a51daebd77d519c9dbee7de6eeb5839ee6ee757f3eb5b69637abaad3a0b31983266a4eebaa4992
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
infinum_graylog (0.
|
4
|
+
infinum_graylog (0.5.0)
|
5
5
|
gelf
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
diff-lcs (1.3)
|
11
|
-
gelf (3.
|
11
|
+
gelf (3.1.0)
|
12
12
|
json
|
13
|
-
json (2.
|
13
|
+
json (2.2.0)
|
14
14
|
rake (10.5.0)
|
15
15
|
rspec (3.8.0)
|
16
16
|
rspec-core (~> 3.8.0)
|
data/infinum_graylog.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'infinum_graylog/version'
|
5
4
|
|
@@ -23,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
23
22
|
'public gem pushes.'
|
24
23
|
end
|
25
24
|
|
26
|
-
spec.files
|
25
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
26
|
f.match(%r{^(test|spec|features)/})
|
28
27
|
end
|
29
28
|
spec.bindir = 'exe'
|
@@ -8,26 +8,39 @@ module InfinumGraylog
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def notify(payload)
|
11
|
-
|
11
|
+
payload = payload.merge(request_id: request_id)
|
12
|
+
Thread.new { @notifier.notify!(payload) }.join
|
13
|
+
end
|
14
|
+
|
15
|
+
def thread_key
|
16
|
+
@thread_key ||= "infinum_graylog_notifier:#{object_id}"
|
12
17
|
end
|
13
18
|
|
14
19
|
def self.notify(payload)
|
15
|
-
return
|
20
|
+
return if payload.blank?
|
21
|
+
|
16
22
|
instance.notify(payload)
|
17
23
|
end
|
18
24
|
|
25
|
+
def self.request_id=(request_id)
|
26
|
+
Thread.current[instance.thread_key] = request_id
|
27
|
+
end
|
28
|
+
|
19
29
|
private
|
20
30
|
|
21
31
|
def options
|
22
32
|
{
|
23
33
|
protocol: configuration.protocol,
|
24
|
-
level: configuration.level
|
34
|
+
level: configuration.level
|
25
35
|
}.merge(configuration.options)
|
26
36
|
end
|
27
37
|
|
28
38
|
def configuration
|
29
|
-
InfinumGraylog.configuration
|
39
|
+
@configuration ||= InfinumGraylog.configuration
|
40
|
+
end
|
41
|
+
|
42
|
+
def request_id
|
43
|
+
Thread.current[thread_key] || SecureRandom.hex
|
30
44
|
end
|
31
45
|
end
|
32
46
|
end
|
33
|
-
|
@@ -40,7 +40,7 @@ module InfinumGraylog
|
|
40
40
|
return nil unless event.payload[:headers]
|
41
41
|
headers = {}
|
42
42
|
|
43
|
-
event.payload[:headers].
|
43
|
+
event.payload[:headers].each do |key, value|
|
44
44
|
if key.to_s.start_with?("HTTP_")
|
45
45
|
header_key = key[5..-1]
|
46
46
|
elsif ["CONTENT_TYPE", "CONTENT_LENGTH"].include?(key)
|
@@ -1,17 +1,27 @@
|
|
1
1
|
module InfinumGraylog
|
2
2
|
class Subscriber
|
3
3
|
def self.subscribe
|
4
|
-
unless
|
5
|
-
|
6
|
-
event = ActiveSupport::Notifications::Event.new(*args)
|
7
|
-
Notifier.notify(ProcessActionController.new(event).format)
|
8
|
-
end
|
4
|
+
return unless tls_and_files_exist?
|
5
|
+
return if InfinumGraylog.configuration.skip_environments.include?(Rails.env)
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
puts '[InfinumGraylog] notifications configured'
|
8
|
+
|
9
|
+
ActiveSupport::Notifications.subscribe 'process_action.action_controller' do |*args|
|
10
|
+
event = ActiveSupport::Notifications::Event.new(*args)
|
11
|
+
Notifier.notify(ProcessActionController.new(event).format)
|
12
|
+
end
|
13
|
+
|
14
|
+
ActiveSupport::Notifications.subscribe 'sql.active_record' do |*args|
|
15
|
+
event = ActiveSupport::Notifications::Event.new(*args)
|
16
|
+
Notifier.notify(SqlActiveRecord.new(event).format)
|
14
17
|
end
|
15
18
|
end
|
19
|
+
|
20
|
+
def self.tls_and_files_exist?
|
21
|
+
tls_configuration = InfinumGraylog.configuration.options[:tls]
|
22
|
+
|
23
|
+
tls_configuration.present? &&
|
24
|
+
File.exist?(tls_configuration[:cert]) && File.exist?(tls_configuration[:key])
|
25
|
+
end
|
16
26
|
end
|
17
27
|
end
|
data/lib/infinum_graylog.rb
CHANGED
@@ -6,6 +6,8 @@ require 'infinum_graylog/process_action_controller'
|
|
6
6
|
require 'infinum_graylog/sql_active_record'
|
7
7
|
require 'infinum_graylog/notifier'
|
8
8
|
require 'infinum_graylog/subscriber'
|
9
|
+
require 'infinum_graylog/middleware'
|
10
|
+
require 'infinum_graylog/railtie' if defined?(Rails::Railtie)
|
9
11
|
|
10
12
|
module InfinumGraylog
|
11
13
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infinum_graylog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stjepan Hadjic
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -88,8 +88,10 @@ files:
|
|
88
88
|
- lib/infinum_graylog.rb
|
89
89
|
- lib/infinum_graylog/cleaner.rb
|
90
90
|
- lib/infinum_graylog/configuration.rb
|
91
|
+
- lib/infinum_graylog/middleware.rb
|
91
92
|
- lib/infinum_graylog/notifier.rb
|
92
93
|
- lib/infinum_graylog/process_action_controller.rb
|
94
|
+
- lib/infinum_graylog/railtie.rb
|
93
95
|
- lib/infinum_graylog/sql_active_record.rb
|
94
96
|
- lib/infinum_graylog/subscriber.rb
|
95
97
|
- lib/infinum_graylog/version.rb
|
@@ -114,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
116
|
version: '0'
|
115
117
|
requirements: []
|
116
118
|
rubyforge_project:
|
117
|
-
rubygems_version: 2.7.
|
119
|
+
rubygems_version: 2.7.6
|
118
120
|
signing_key:
|
119
121
|
specification_version: 4
|
120
122
|
summary: summary
|