sidekiq-expected_failures 0.2.0 → 0.2.1
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.
- data/.gitignore +1 -0
- data/.travis.yml +2 -0
- data/CHANGELOG.md +17 -0
- data/Gemfile +6 -2
- data/README.md +3 -1
- data/lib/sidekiq/expected_failures/version.rb +1 -1
- data/lib/sidekiq/expected_failures/web.rb +9 -0
- data/sidekiq-expected_failures.gemspec +1 -1
- data/test/lib/web_test.rb +28 -0
- metadata +6 -6
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
## 0.2.1
|
2
|
+
|
3
|
+
- added JSON stats path in case you would like to fetch this data from external service.
|
4
|
+
It works similar to sidekiq's _stats_. You can visit: `expected_failures/stats` to
|
5
|
+
get a JSON response with global counters (PR #4)
|
6
|
+
|
7
|
+
``` json
|
8
|
+
{
|
9
|
+
|
10
|
+
"failures": {
|
11
|
+
"ExceptionName": "123",
|
12
|
+
"Other::ExceptionName": "10",
|
13
|
+
}
|
14
|
+
|
15
|
+
}
|
16
|
+
```
|
17
|
+
|
1
18
|
## 0.2.0
|
2
19
|
|
3
20
|
- [**breaking change**] ability to use Sidekiq's build-in `handle_exception`
|
data/Gemfile
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
# Specify your gem's dependencies in sidekiq-expected_failures.gemspec
|
4
2
|
gemspec
|
3
|
+
|
4
|
+
platforms :rbx do
|
5
|
+
gem "rubysl", "~> 2.0" # if using anything in the ruby standard library
|
6
|
+
gem "rubinius-developer_tools", "~> 2.0.0" # if using any of coverage, debugger, profiler
|
7
|
+
gem "minitest" # if using minitest
|
8
|
+
end
|
data/README.md
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
[](https://codeclimate.com/github/emq/sidekiq-expected_failures)
|
4
4
|
[](https://travis-ci.org/emq/sidekiq-expected_failures)
|
5
5
|
[](https://coveralls.io/r/emq/sidekiq-expected_failures)
|
6
|
+
[](https://gemnasium.com/emq/sidekiq-expected_failures)
|
7
|
+
[](http://badge.fury.io/rb/sidekiq-expected_failures)
|
6
8
|
|
7
9
|
If you don't rely on standard sidekiq's retry behavior and you want to track exceptions, that will happen one way, or another - this thing is for you.
|
8
10
|
|
@@ -54,7 +56,7 @@ This is how web interface looks like:
|
|
54
56
|
|
55
57
|

|
56
58
|
|
57
|
-
It logs each failed jobs to to redis list (per day) and keep global counters (per exception class as a single redis hash).
|
59
|
+
It logs each failed jobs to to redis list (per day) and keep global counters (per exception class as a single redis hash). If you would like to get that counter as JSON response (for some external API usage for example) you can use path `expected_failures/stats`.
|
58
60
|
|
59
61
|
### Default expected failures
|
60
62
|
|
@@ -21,6 +21,15 @@ module Sidekiq
|
|
21
21
|
redirect "#{root_path}expected_failures"
|
22
22
|
end
|
23
23
|
|
24
|
+
app.get "/expected_failures/stats" do
|
25
|
+
@counters = Sidekiq::ExpectedFailures.counters
|
26
|
+
|
27
|
+
content_type :json
|
28
|
+
Sidekiq.dump_json({
|
29
|
+
failures: @counters
|
30
|
+
})
|
31
|
+
end
|
32
|
+
|
24
33
|
app.get "/expected_failures/?:date?" do
|
25
34
|
@dates = Sidekiq::ExpectedFailures.dates
|
26
35
|
@count = (params[:count] || 50).to_i
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "rake"
|
24
24
|
spec.add_development_dependency "sinatra"
|
25
25
|
spec.add_development_dependency "rack-test"
|
26
|
-
spec.add_development_dependency "timecop", "~> 0.
|
26
|
+
spec.add_development_dependency "timecop", "~> 0.7.0"
|
27
27
|
spec.add_development_dependency "mocha", "~> 0.14.0"
|
28
28
|
spec.add_development_dependency "coveralls", "~> 0.7.0"
|
29
29
|
end
|
data/test/lib/web_test.rb
CHANGED
@@ -135,5 +135,33 @@ module Sidekiq
|
|
135
135
|
end
|
136
136
|
end
|
137
137
|
end
|
138
|
+
|
139
|
+
describe 'stats' do
|
140
|
+
describe 'when there are no errors' do
|
141
|
+
before do
|
142
|
+
get '/expected_failures/stats'
|
143
|
+
@response = Sidekiq.load_json(last_response.body)
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'can return failures json without any failures' do
|
147
|
+
last_response.status.must_equal(200)
|
148
|
+
assert_equal({}, @response['failures'])
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
describe 'when there are errors' do
|
153
|
+
before do
|
154
|
+
create_sample_counter
|
155
|
+
get '/expected_failures/stats'
|
156
|
+
@response = Sidekiq.load_json(last_response.body)
|
157
|
+
end
|
158
|
+
|
159
|
+
it 'can return json with failures' do
|
160
|
+
last_response.status.must_equal(200)
|
161
|
+
assert_equal "5", @response['failures']['StandardError']
|
162
|
+
assert_equal "10", @response['failures']['Custom::Error']
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
138
166
|
end
|
139
167
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-expected_failures
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-12-
|
12
|
+
date: 2013-12-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sidekiq
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - ~>
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 0.
|
101
|
+
version: 0.7.0
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,7 +106,7 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 0.
|
109
|
+
version: 0.7.0
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
111
|
name: mocha
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,7 +182,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
182
182
|
version: '0'
|
183
183
|
segments:
|
184
184
|
- 0
|
185
|
-
hash:
|
185
|
+
hash: 2728967153757439761
|
186
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
187
|
none: false
|
188
188
|
requirements:
|
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
191
|
version: '0'
|
192
192
|
segments:
|
193
193
|
- 0
|
194
|
-
hash:
|
194
|
+
hash: 2728967153757439761
|
195
195
|
requirements: []
|
196
196
|
rubyforge_project:
|
197
197
|
rubygems_version: 1.8.25
|