hubrise_initializer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: []