hubrise_initializer 0.1.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/hubrise_initializer.rb +94 -0
  3. metadata +85 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 238cbbf14dd0089e4e4467873b7456377ea6f5161207a2c3f57cc4b42f3d7fe8
4
+ data.tar.gz: 2e7fe3e75dace24be20f91ee8d846073ac20c658a7d8de8efffeef3622b8f3ad
5
+ SHA512:
6
+ metadata.gz: 0f943319281a6d08f3d26e421297f659a5890c43a2f50b16437135cea1c5384cc8b9c8bd0cf5b169b218454492749af755a6cb49747d7adf0fb00f697712b285
7
+ data.tar.gz: 16b2059447a02c2db78c8abb1537e00aa157240500a2ffb0f4d36c55ce937a704dd3f428c5cee7988f829a52eabf4414cba39fcd28148dda4ccf8b19325eb2e4
@@ -0,0 +1,94 @@
1
+ class HubriseInitializer
2
+ def self.configure(config, *initializers)
3
+ initializers.each do |initializer|
4
+ case initializer
5
+ when :logger
6
+ configure_logger(config)
7
+ when :lograge
8
+ configure_lograge(config)
9
+ when :delayed_job_logger
10
+ configure_delayed_job_logger(config)
11
+ when :web_console
12
+ configure_web_console(config)
13
+ end
14
+ end
15
+ end
16
+
17
+ private
18
+
19
+ def self.configure_logger(config)
20
+ case ENV['RAILS_LOGGER']
21
+ when 'stdout'
22
+ # Log to STDOUT (docker-compose)
23
+ config.logger = Logger.new(STDOUT)
24
+
25
+ when 'fluentd'
26
+ # Log to fluentd (kubernetes)
27
+ # ENV['FLUENTD_URL'] is used internally by this logger
28
+ config.logger = ActFluentLoggerRails::Logger.new
29
+
30
+ else
31
+ # Log to a file (Rails default)
32
+ end
33
+ end
34
+
35
+ def self.configure_lograge(config)
36
+ case ENV['RAILS_LOGGER']
37
+ when 'stdout'
38
+ # Log to STDOUT (docker-compose)
39
+
40
+ when 'fluentd'
41
+ # Log to fluentd (kubernetes)
42
+ config.lograge.enabled = true
43
+ config.lograge.formatter = Lograge::Formatters::Logstash.new
44
+ config.lograge.formatter = Lograge::Formatters::Json.new
45
+
46
+ config.lograge.ignore_actions = ["HealthCheck::HealthCheckController#index"]
47
+
48
+ config.lograge.custom_options = lambda do |event|
49
+ exceptions = %w(controller action format id)
50
+ {
51
+ params: event.payload[:params].except(*exceptions),
52
+ # payload: event.payload.inspect,
53
+ }
54
+ end
55
+
56
+ config.lograge.custom_payload do |controller|
57
+ {
58
+ host: controller.request.host,
59
+ ip: controller.request.ip,
60
+ user_agent: controller.request.user_agent
61
+ }
62
+ end
63
+ else
64
+ # Log to a file (Rails default)
65
+ end
66
+ end
67
+
68
+ def self.configure_delayed_job_logger(config)
69
+ case ENV['RAILS_LOGGER']
70
+ when 'stdout'
71
+ # Log to STDOUT (docker-compose)
72
+ Delayed::Worker.logger = Logger.new(STDOUT)
73
+
74
+ when 'fluentd'
75
+ # Log to fluentd (kubernetes)
76
+ # ENV['FLUENTD_URL'] is used internally by this logger
77
+ Delayed::Worker.logger = ActFluentLoggerRails::Logger.new
78
+
79
+ else
80
+ # Log to a file
81
+ Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))
82
+ end
83
+ end
84
+
85
+ def self.configure_web_console(config)
86
+ # web_console is generally enabled on dev only
87
+ return if !config.respond_to?(:web_console)
88
+
89
+ # - 172.0.0.0/8: host in docker-compose
90
+ # - 192.168.0.0/16: inter containers network in docker-compose
91
+ # - 10.244.0.0/16: pod networks in Kubernetes
92
+ config.web_console.whitelisted_ips = ['172.0.0.0/8', '192.168.0.0/16', '10.244.0.0/16']
93
+ end
94
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hubrise_initializer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Antoine Monnier
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-10-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lograge
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.11'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.11'
27
+ - !ruby/object:Gem::Dependency
28
+ name: act-fluent-logger-rails
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: logstash-event
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.2'
55
+ description:
56
+ email:
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - lib/hubrise_initializer.rb
62
+ homepage: https://github.com/hubrise/rails-initializer.git
63
+ licenses:
64
+ - MIT
65
+ metadata: {}
66
+ post_install_message:
67
+ rdoc_options: []
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ requirements: []
81
+ rubygems_version: 3.0.5
82
+ signing_key:
83
+ specification_version: 4
84
+ summary: Rails app initializers optimized for HubRise
85
+ test_files: []