bmc-daemon-lib 0.3.16 → 0.3.18

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
  SHA1:
3
- metadata.gz: 979aa39471d0f78ea2463c44e0471def495dbfc9
4
- data.tar.gz: 3fab11319297f7f7c77c1cb2b6056cf72f492856
3
+ metadata.gz: 2e5609f9590972c691a3756c1af6bd9ad1ee0282
4
+ data.tar.gz: 6a3ee2207696ebc991abb0992a8334f5db0e0856
5
5
  SHA512:
6
- metadata.gz: 4c005bc13c44b365c8b207e12412ff710c0605dfbf0685ec5962c8c620c27fa37d633c2f3f3f7ced7c251a9f2d37dd7214c1d8de2bf64a1c7a3f661d498930ce
7
- data.tar.gz: 2a2813cd028bbfd6d656aca6f33bf6d1be415032dc75f16e35f2a16fa93c1eccd1f2f17961935b5f17afc5240acc693acd85e22772b294393c375f1e4e99ae84
6
+ metadata.gz: 94186c5a6810b5c363bc6991ed5a8fc4d83cda7db8a3bcdb36442a2793efb411aa47e1dc2c957a90d6d810318556baf9f07dae00e81861c568f9115ce22ac1e9
7
+ data.tar.gz: 2c04229dd313885efd3b7cebc8202f8074d4fc46f6e01fe6e86b75445452ac17859f41397fc43a70d36754945c2f7fbad71a1b169a66584f89b787f268b3cb76
@@ -1,22 +1,17 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bmc-daemon-lib (0.3.16)
4
+ bmc-daemon-lib (0.3.18)
5
5
  chamber (~> 2.9)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- ast (2.3.0)
11
10
  chamber (2.9.1)
12
11
  hashie (~> 3.3)
13
12
  thor (~> 0.19.1)
14
13
  diff-lcs (1.2.5)
15
- hashie (3.4.4)
16
- parser (2.3.1.2)
17
- ast (~> 2.2)
18
- powerpack (0.1.1)
19
- rainbow (2.1.0)
14
+ hashie (3.4.6)
20
15
  rake (11.2.2)
21
16
  rspec (3.5.0)
22
17
  rspec-core (~> 3.5.0)
@@ -31,15 +26,7 @@ GEM
31
26
  diff-lcs (>= 1.2.0, < 2.0)
32
27
  rspec-support (~> 3.5.0)
33
28
  rspec-support (3.5.0)
34
- rubocop (0.42.0)
35
- parser (>= 2.3.1.1, < 3.0)
36
- powerpack (~> 0.1)
37
- rainbow (>= 1.99.1, < 3.0)
38
- ruby-progressbar (~> 1.7)
39
- unicode-display_width (~> 1.0, >= 1.0.1)
40
- ruby-progressbar (1.8.1)
41
29
  thor (0.19.1)
42
- unicode-display_width (1.1.1)
43
30
 
44
31
  PLATFORMS
45
32
  ruby
@@ -49,7 +36,6 @@ DEPENDENCIES
49
36
  bundler (~> 1.6)
50
37
  rake
51
38
  rspec
52
- rubocop
53
39
 
54
40
  BUNDLED WITH
55
41
  1.12.5
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  Gem::Specification.new do |spec|
3
3
  # Project version
4
- spec.version = "0.3.16"
4
+ spec.version = "0.3.18"
5
5
 
6
6
  # Project description
7
7
  spec.name = "bmc-daemon-lib"
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.6"
24
24
  spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "rspec"
26
- spec.add_development_dependency "rubocop"
27
26
 
28
27
  # Runtime dependencies
29
28
  spec.add_runtime_dependency "chamber", "~> 2.9"
@@ -78,10 +78,6 @@ module BmcDaemonLib
78
78
  Encoding.default_internal = "utf-8"
79
79
  Encoding.default_external = "utf-8"
80
80
 
81
- # Init New Relic, Rollbar
82
- # prepare_newrelic
83
- #prepare_rollbar if self.feature?(:rollbar)
84
-
85
81
  # Try to access any key to force parsing of the files
86
82
  self[:dummy]
87
83
 
@@ -108,21 +104,30 @@ module BmcDaemonLib
108
104
  path.reduce(Conf) { |m, key| m && m[key.to_s] }
109
105
  end
110
106
 
111
- def self.logfile_path pipe
112
- # Access configuration
113
- path = Conf.at :logs, :path
114
- specific = Conf.at :logs, pipe
115
- default = Conf.at :logs, :default
116
-
117
- # Ignore if explicitely disabled
118
- return nil if specific.nil?
119
-
120
- # Fallback on default path if not provided,
121
- specific ||= default
122
- specific ||= "default.log"
107
+ def self.logfile pipe
108
+ # Build logfile from Conf
109
+ logfile = self.logfile_path(pipe)
110
+ return nil if logfile.nil?
111
+
112
+ # Check that we'll be able to create logfiles
113
+ if File.exists?(logfile)
114
+ # File is there, is it writable ?
115
+ unless File.writable?(logfile)
116
+ log :conf, "logging [#{pipe}] disabled: file not writable [#{logfile}]"
117
+ return nil
118
+ end
119
+ else
120
+ # No file here, can we create it ?
121
+ logdir = File.dirname(logfile)
122
+ unless File.writable?(logdir)
123
+ log :conf, "logging [#{pipe}] disabled: directory not writable [#{logdir}]"
124
+ return nil
125
+ end
126
+ end
123
127
 
124
- # Build logfile_path
125
- File.expand_path specific.to_s, path.to_s
128
+ # OK, return a clean file path
129
+ log :conf, "logging [#{pipe}] to [#{logfile}]"
130
+ return logfile
126
131
  end
127
132
 
128
133
  def self.feature? name
@@ -178,16 +183,14 @@ module BmcDaemonLib
178
183
  def self.prepare_newrelic
179
184
  # Disable if no config present
180
185
  return unless self.feature?(:newrelic)
186
+
187
+ # Ok, let's start
181
188
  section = self[:newrelic]
189
+ log :conf, "prepare NewRelic"
182
190
 
183
191
  # Enable GC profiler
184
192
  GC::Profiler.enable
185
193
 
186
- # Set logfile, license, monitor mode
187
- ENV["NEW_RELIC_LOG"] = logfile_path(:newrelic)
188
- ENV["NEW_RELIC_LICENSE_KEY"] = section[:license].to_s
189
- ENV["NEW_RELIC_MONITOR_MODE"] = "true"
190
-
191
194
  # Build NewRelic app_name if not provided as-is
192
195
  if !section[:app_name]
193
196
  stack = []
@@ -197,10 +200,15 @@ module BmcDaemonLib
197
200
  text = stack.join('-')
198
201
  section[:app_name] = "#{text}; #{text}-#{host}"
199
202
  end
200
- ENV["NEW_RELIC_APP_NAME"] = section[:app_name].to_s
201
203
 
202
- # Enable module
203
- ENV["NEWRELIC_AGENT_ENABLED"] = "true"
204
+ # Start the agent
205
+ NewRelic::Agent.manual_start({
206
+ agent_enabled: true,
207
+ log: LoggerPool.instance.get(:newrelic),
208
+ env: @app_env,
209
+ license_key: section[:license].to_s,
210
+ app_name: section[:app_name].to_s,
211
+ })
204
212
  end
205
213
 
206
214
  def self.prepare_rollbar
@@ -212,7 +220,9 @@ module BmcDaemonLib
212
220
  return
213
221
  end
214
222
 
223
+ # Ok, let's start
215
224
  section = self[:rollbar]
225
+ log :conf, "prepare Rollbar"
216
226
 
217
227
  # Configure
218
228
  Rollbar.configure do |config|
@@ -220,8 +230,7 @@ module BmcDaemonLib
220
230
  config.access_token = section[:token].to_s
221
231
  config.code_version = @app_version
222
232
  config.environment = @app_env
223
- #config.logger = Logger.new(logfile_path(:rollbar))
224
- config.logger = LoggerPool.instance.get :rollbar
233
+ config.logger = LoggerPool.instance.get(:rollbar)
225
234
  config.use_async = true
226
235
  end
227
236
 
@@ -231,7 +240,7 @@ module BmcDaemonLib
231
240
 
232
241
  def self.log origin, message
233
242
  printf(
234
- "%s %-10s %s \n",
243
+ "%s %-14s %s \n",
235
244
  Time.now.strftime("%Y-%m-%d %H:%M:%S"),
236
245
  origin,
237
246
  message
@@ -248,6 +257,24 @@ module BmcDaemonLib
248
257
  @files << File.expand_path(path) if path && File.readable?(path)
249
258
  end
250
259
 
260
+ def self.logfile_path pipe
261
+ # Access configuration
262
+ path = self.at :logs, :path
263
+ specific = self.at :logs, pipe
264
+ default = self.at :logs, :default
265
+
266
+ # Ignore if explicitely disabled
267
+ return nil if specific.nil?
268
+ return nil if specific == false
269
+
270
+ # Fallback on default path if not provided,
271
+ specific ||= default
272
+ specific ||= "default.log"
273
+
274
+ # Build logfile_path
275
+ File.expand_path specific.to_s, path.to_s
276
+ end
277
+
251
278
  private
252
279
 
253
280
  def self.ensure_init
@@ -5,20 +5,20 @@ require "singleton"
5
5
  module BmcDaemonLib
6
6
  class LoggerPool
7
7
  include Singleton
8
-
9
8
  LOG_ROTATION = "daily"
10
9
 
11
10
  def get pipe = nil
12
11
  # If not provided, use :default
13
12
  pipe = :default if pipe.to_s.empty?
14
13
 
14
+ # Instantiate a logger or return the existing one
15
15
  @loggers ||= {}
16
16
  @loggers[pipe] ||= create(pipe)
17
17
  end
18
18
 
19
19
  def create pipe
20
20
  # Compute logfile or STDERR, and declare what we're doing
21
- filename = logfile(pipe)
21
+ filename = Conf.logfile(pipe)
22
22
 
23
23
  # Create the logger and return it
24
24
  logger = Logger.new(filename, LOG_ROTATION) #, 10, 1024000)
@@ -29,42 +29,7 @@ module BmcDaemonLib
29
29
  logger
30
30
 
31
31
  rescue Errno::EACCES
32
- log "create [#{pipe}]: access error"
33
- end
34
-
35
- protected
36
-
37
- def logfile pipe
38
- # Disabled if no valid config
39
- #return nil unless Conf[:logs].is_a?(Hash) && Conf.at(:logs, pipe)
40
-
41
- # Build logfile from Conf
42
- logfile = Conf.logfile_path pipe
43
- return nil if logfile.nil?
44
-
45
- # Check that we'll be able to create logfiles
46
- if File.exists?(logfile)
47
- # File is there, is it writable ?
48
- unless File.writable?(logfile)
49
- log "logging [#{pipe}] to [#{logfile}] disabled: file not writable [#{logfile}]"
50
- return nil
51
- end
52
- else
53
- # No file here, can we create it ?
54
- logdir = File.dirname(logfile)
55
- unless File.writable?(logdir)
56
- log "logging [#{pipe}] [#{logfile}] disabled: directory not writable [#{logdir}]"
57
- return nil
58
- end
59
- end
60
-
61
- # OK, return a clean file path
62
- log "logging [#{pipe}] to [#{logfile}]"
63
- return logfile
64
- end
65
-
66
- def log message
67
- Conf.log :logger, message
32
+ $stderr.puts "LoggerPool: create [#{pipe}]: access error"
68
33
  end
69
34
 
70
35
  end
@@ -47,6 +47,7 @@ module BmcDaemonLib
47
47
  payload_bytesize = payload.bytesize
48
48
  log_message MSG_RECV, msg_topic, msg_rkey, msg_data, {
49
49
  app_id: metadata.app_id,
50
+ sent_at: msg_headers['sent_at'],
50
51
  channel_tag: "#{@channel.id}.#{msg_tag}",
51
52
  content_type: metadata.content_type,
52
53
  delay_ms: extract_delay(msg_headers),
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmc-daemon-lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.16
4
+ version: 0.3.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bruno MEDICI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-13 00:00:00.000000000 Z
11
+ date: 2016-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rubocop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: chamber
71
57
  requirement: !ruby/object:Gem::Requirement