juan_pelota 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/lib/juan_pelota/logger.rb +5 -0
- data/lib/juan_pelota/middlewares/logging.rb +16 -7
- data/lib/juan_pelota/version.rb +1 -1
- data/spec/juan_pelota/logger_spec.rb +52 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 315922e2e7df1add35a7311bf721a65c424a8659
|
4
|
+
data.tar.gz: dbe4269b6ec24d713a9dcc42971989a53244682c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 46b741affd4584ba2653259e02646db0d1bfc93850afe8b012f8499b34c96433c28c054c08e45d5111966dbda451904f1d6d8b8bc089223339a40f6cdba49caf
|
7
|
+
data.tar.gz: 7c3f48f596254ed5151b8ea28f8b2491d87b898c7482c34f2741ab29df963434b569a13226c4767634d6120d3bd229110404bf482534704574117559f0df804f
|
data/lib/juan_pelota/logger.rb
CHANGED
@@ -52,6 +52,11 @@ class Logger < Sidekiq::Logging::Pretty
|
|
52
52
|
'message' => @raw_message,
|
53
53
|
'class' => @raw_message.split(' ')[1],
|
54
54
|
}
|
55
|
+
elsif @raw_message.respond_to?(:match) &&
|
56
|
+
@raw_message.match(/:\d+:in\s`/)
|
57
|
+
{
|
58
|
+
'message' => @raw_message.lines.first(10).map(&:chomp),
|
59
|
+
}
|
55
60
|
else
|
56
61
|
{
|
57
62
|
'message' => @raw_message,
|
@@ -12,7 +12,7 @@ class Logging
|
|
12
12
|
'bid' => job['bid'],
|
13
13
|
'run_time' => nil,
|
14
14
|
'class' => worker.class.to_s,
|
15
|
-
'args' => filtered_arguments(job['args']),
|
15
|
+
'args' => filtered_arguments(job['args'].try(:first)),
|
16
16
|
)
|
17
17
|
end
|
18
18
|
|
@@ -25,20 +25,27 @@ class Logging
|
|
25
25
|
'bid' => job['bid'],
|
26
26
|
'run_time' => elapsed(start),
|
27
27
|
'class' => worker.class.to_s,
|
28
|
-
'args' => filtered_arguments(job['args']),
|
28
|
+
'args' => filtered_arguments(job['args'].try(:first)),
|
29
29
|
)
|
30
30
|
end
|
31
|
-
rescue Exception
|
31
|
+
rescue Exception => e
|
32
|
+
message = {
|
33
|
+
'error_class' => e.class.name,
|
34
|
+
'error_message' => e.message,
|
35
|
+
'error_backtrace' => e.backtrace.first(10),
|
36
|
+
}
|
37
|
+
|
32
38
|
logger.info(
|
33
39
|
'status' => 'fail',
|
34
40
|
'jid' => job['jid'],
|
35
41
|
'bid' => job['bid'],
|
36
42
|
'run_time' => elapsed(start),
|
37
43
|
'class' => worker.class.to_s,
|
38
|
-
'
|
44
|
+
'message' => message,
|
45
|
+
'args' => filtered_arguments(job['args'].try(:first)),
|
39
46
|
)
|
40
47
|
|
41
|
-
raise
|
48
|
+
raise e
|
42
49
|
end
|
43
50
|
# rubocop:enable Lint/RescueException, Metrics/AbcSize, Metrics/MethodLength
|
44
51
|
|
@@ -51,10 +58,12 @@ class Logging
|
|
51
58
|
end
|
52
59
|
|
53
60
|
def filtered_arguments(args)
|
54
|
-
return if args.nil?
|
61
|
+
return if args.nil?
|
55
62
|
|
56
63
|
@filtered_arguments ||=
|
57
|
-
args.
|
64
|
+
args.each_with_object({}) do |(key, value), filtered_hash|
|
65
|
+
value = filtered_arguments(value) if value.is_a? Hash
|
66
|
+
|
58
67
|
filtered_hash[key] = value unless config.filtered_arguments.include? key
|
59
68
|
end
|
60
69
|
end
|
data/lib/juan_pelota/version.rb
CHANGED
@@ -56,6 +56,58 @@ describe Logger do
|
|
56
56
|
)
|
57
57
|
end
|
58
58
|
|
59
|
+
# rubocop:disable Metrics/LineLength
|
60
|
+
it 'take message as a string and can detect if its a backtrace',
|
61
|
+
:time_mock do
|
62
|
+
|
63
|
+
backtrace = <<-HEREDOC
|
64
|
+
/Users/hhd418/Projects/goodscout/good_products/app/workers/good_products/workers/process_item.rb:50:in `perform'
|
65
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:75:in `execute_job'
|
66
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:52:in `block (2 levels) in process'
|
67
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:127:in `block in invoke'
|
68
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:11:in `block in call'
|
69
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:62:in `instrument'
|
70
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:18:in `instrument'
|
71
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:10:in `call'
|
72
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
|
73
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-unique-jobs-3.0.14/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb:16:in `call'
|
74
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
|
75
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
|
76
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
|
77
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call'
|
78
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
|
79
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-failures-0.4.4/lib/sidekiq/failures/middleware.rb:9:in `call'
|
80
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
|
81
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'
|
82
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-skylight-0.0.4/lib/sidekiq/skylight/server_middleware.rb:8:in `block in call'
|
83
|
+
/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/skylight-0.6.0/lib/skylight/core.rb:70:in `trace'
|
84
|
+
HEREDOC
|
85
|
+
|
86
|
+
json = JuanPelota::Logger.new.call('high',
|
87
|
+
Time.now.utc,
|
88
|
+
'our tests',
|
89
|
+
backtrace)
|
90
|
+
|
91
|
+
json_data = JSON.parse(json)
|
92
|
+
|
93
|
+
expect(json_data).to include(
|
94
|
+
'@status' => 'dead',
|
95
|
+
'@message' => [
|
96
|
+
"/Users/hhd418/Projects/goodscout/good_products/app/workers/good_products/workers/process_item.rb:50:in `perform'",
|
97
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:75:in `execute_job'",
|
98
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/processor.rb:52:in `block (2 levels) in process'",
|
99
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:127:in `block in invoke'",
|
100
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:11:in `block in call'",
|
101
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:62:in `instrument'",
|
102
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/trace.rb:18:in `instrument'",
|
103
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/honeybadger-2.0.11/lib/honeybadger/plugins/sidekiq.rb:10:in `call'",
|
104
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-3.4.1/lib/sidekiq/middleware/chain.rb:129:in `block in invoke'",
|
105
|
+
"/usr/local/var/rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/sidekiq-unique-jobs-3.0.14/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb:16:in `call'",
|
106
|
+
],
|
107
|
+
)
|
108
|
+
end
|
109
|
+
# rubocop:enable Metrics/LineLength
|
110
|
+
|
59
111
|
it 'set the status to dead and returns a nil worker if it gets a string without ' \
|
60
112
|
'"queueing" in the message',
|
61
113
|
:time_mock do
|
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: 1.
|
4
|
+
version: 1.1.0
|
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-07-
|
12
|
+
date: 2015-07-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sidekiq
|