juan_pelota 0.0.2 → 0.0.3
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/lib/juan_pelota/configuration.rb +18 -0
- data/lib/juan_pelota/logger.rb +11 -0
- data/lib/juan_pelota/middlewares/logging.rb +38 -19
- data/lib/juan_pelota/version.rb +1 -1
- data/lib/juan_pelota.rb +1 -0
- data/spec/juan_pelota/logger_spec.rb +5 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 301ef9aeb35ef31a91023dbd37d61d0d50cf63c7
|
4
|
+
data.tar.gz: a7ff459f84b3a86b2c56e91ae6a1c3b0a55ad313
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8bee44669e7d913f8f98eefe73443480587be17a3866d67749d042729a83ec02818f5aa4f73cd84ed95572dbf75a9e70db73be2435c629a1f7e97d7fec7eb46
|
7
|
+
data.tar.gz: d6c91172fddec7d2ccdd11d40c855a677ba381804142a9f00fb1416876e8d1d1c5c491a2c58c8cffc732373e2fc8ed18dceeaf668375bf3c38936790e1e22d6b
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
module JuanPelota
|
4
|
+
def self.configure
|
5
|
+
if block_given?
|
6
|
+
yield Configuration.instance
|
7
|
+
else
|
8
|
+
return Configuration.instance
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class Configuration
|
13
|
+
include Singleton
|
14
|
+
|
15
|
+
attr_accessor :filtered_arguments,
|
16
|
+
:filtered_workers
|
17
|
+
end
|
18
|
+
end
|
data/lib/juan_pelota/logger.rb
CHANGED
@@ -4,17 +4,23 @@ require 'json'
|
|
4
4
|
|
5
5
|
module JuanPelota
|
6
6
|
class Logger < Sidekiq::Logging::Pretty
|
7
|
+
IGNORABLE_STATUSES = %w{start done queueing}
|
8
|
+
|
7
9
|
attr_accessor :severity,
|
8
10
|
:timestamp,
|
9
11
|
:program_name,
|
10
12
|
:raw_message
|
11
13
|
|
14
|
+
# rubocop:disable Metrics/AbcSize
|
12
15
|
def call(severity, time, program_name, message)
|
13
16
|
self.severity = severity
|
14
17
|
self.timestamp = time.utc.iso8601
|
15
18
|
self.program_name = program_name
|
16
19
|
self.raw_message = message
|
17
20
|
|
21
|
+
return if config.filtered_workers.include?(worker_name.to_s) &&
|
22
|
+
IGNORABLE_STATUSES.include?(status)
|
23
|
+
|
18
24
|
{
|
19
25
|
'@type' => 'sidekiq',
|
20
26
|
'@timestamp' => timestamp,
|
@@ -32,6 +38,7 @@ class Logger < Sidekiq::Logging::Pretty
|
|
32
38
|
},
|
33
39
|
}.to_json + "\n"
|
34
40
|
end
|
41
|
+
# rubocop:enable Metrics/AbcSize
|
35
42
|
|
36
43
|
private
|
37
44
|
|
@@ -86,5 +93,9 @@ class Logger < Sidekiq::Logging::Pretty
|
|
86
93
|
def self.tid
|
87
94
|
::Thread.current.object_id.to_s(36)
|
88
95
|
end
|
96
|
+
|
97
|
+
def config
|
98
|
+
Configuration.instance
|
99
|
+
end
|
89
100
|
end
|
90
101
|
end
|
@@ -1,29 +1,33 @@
|
|
1
1
|
module JuanPelota
|
2
2
|
module Middlewares
|
3
3
|
class Logging
|
4
|
-
# rubocop:disable Lint/RescueException, Metrics/AbcSize
|
4
|
+
# rubocop:disable Lint/RescueException, Metrics/AbcSize, Metrics/MethodLength
|
5
5
|
def call(worker, job, _queue)
|
6
6
|
start = Time.now
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
unless config.filtered_workers.include? worker.class.name
|
9
|
+
logger.info(
|
10
|
+
'status' => 'start',
|
11
|
+
'jid' => job['jid'],
|
12
|
+
'bid' => job['bid'],
|
13
|
+
'run_time' => nil,
|
14
|
+
'class' => worker.class.to_s,
|
15
|
+
'args' => filtered_arguments(job['args']),
|
16
|
+
)
|
17
|
+
end
|
16
18
|
|
17
19
|
yield
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
21
|
+
unless config.filtered_workers.include? worker.class.name
|
22
|
+
logger.info(
|
23
|
+
'status' => 'done',
|
24
|
+
'jid' => job['jid'],
|
25
|
+
'bid' => job['bid'],
|
26
|
+
'run_time' => elapsed(start),
|
27
|
+
'class' => worker.class.to_s,
|
28
|
+
'args' => filtered_arguments(job['args']),
|
29
|
+
)
|
30
|
+
end
|
27
31
|
rescue Exception
|
28
32
|
logger.info(
|
29
33
|
'status' => 'fail',
|
@@ -31,12 +35,12 @@ class Logging
|
|
31
35
|
'bid' => job['bid'],
|
32
36
|
'run_time' => elapsed(start),
|
33
37
|
'class' => worker.class.to_s,
|
34
|
-
'args' => job['args'],
|
38
|
+
'args' => filtered_arguments(job['args']),
|
35
39
|
)
|
36
40
|
|
37
41
|
raise
|
38
42
|
end
|
39
|
-
# rubocop:enable Lint/RescueException, Metrics/AbcSize
|
43
|
+
# rubocop:enable Lint/RescueException, Metrics/AbcSize, Metrics/MethodLength
|
40
44
|
|
41
45
|
def elapsed(start)
|
42
46
|
(Time.now - start).to_f.round(3)
|
@@ -45,6 +49,21 @@ class Logging
|
|
45
49
|
def logger
|
46
50
|
Sidekiq.logger
|
47
51
|
end
|
52
|
+
|
53
|
+
def filtered_arguments(args)
|
54
|
+
return unless args
|
55
|
+
|
56
|
+
@filtered_arguments ||=
|
57
|
+
args.each_with_object({}) do | (key, value), filtered_hash|
|
58
|
+
filtered_hash[key] = value unless config.filtered_arguments.include? key
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def config
|
65
|
+
Configuration.instance
|
66
|
+
end
|
48
67
|
end
|
49
68
|
end
|
50
69
|
end
|
data/lib/juan_pelota/version.rb
CHANGED
data/lib/juan_pelota.rb
CHANGED
@@ -2,6 +2,11 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module JuanPelota
|
4
4
|
describe Logger do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
Configuration.instance.filtered_workers = 'my_filtered_worker'
|
8
|
+
end
|
9
|
+
|
5
10
|
it 'takes message as a hash and logs what we want', :time_mock do
|
6
11
|
json = JuanPelota::Logger.new.call('high',
|
7
12
|
Time.now.utc,
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: juan_pelota
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- thekompanee
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sidekiq
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- README.md
|
92
92
|
- Rakefile
|
93
93
|
- lib/juan_pelota.rb
|
94
|
+
- lib/juan_pelota/configuration.rb
|
94
95
|
- lib/juan_pelota/logger.rb
|
95
96
|
- lib/juan_pelota/middlewares/logging.rb
|
96
97
|
- lib/juan_pelota/version.rb
|