opbeat 3.0.6 → 3.0.7
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/HISTORY.md +7 -0
- data/README.md +8 -0
- data/lib/opbeat.rb +13 -0
- data/lib/opbeat/client.rb +11 -1
- data/lib/opbeat/configuration.rb +2 -0
- data/lib/opbeat/version.rb +1 -1
- data/spec/opbeat/client_spec.rb +45 -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: bf5b5eeb0ede28475a3290ad8fc105b5fbf62db3
|
4
|
+
data.tar.gz: c06e9dabae76fe0a072ebdb5c042339d451eab6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d77abf28473b178c296f39ba161514b0d90106801546dafe75a3edef8e3b4dbd7c94ccdbf2797248fea18139b4f4e42d26f733cf2353bf5a22f0e40fef28052
|
7
|
+
data.tar.gz: 3735cf0fc7fb86d5bcab6b590daf82b91a36a9f5f5214b4c913b6f4cb7ff5b5aaab4e8f5338a3f45da85d812fa2355bf3408f562908ecb18a03d8439071d719a
|
data/HISTORY.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# 3.0.7
|
2
|
+
|
3
|
+
**Features**
|
4
|
+
|
5
|
+
- Add `config.worker_quit_timeout` (default is 5 secs) ([@jensnockert](https://github.com/jensnockert))
|
6
|
+
- Add `Opbeat.with_context` for block-specific contexts ([@jensnockert](https://github.com/jensnockert))
|
7
|
+
|
1
8
|
# 3.0.6
|
2
9
|
|
3
10
|
**Fixes**
|
data/README.md
CHANGED
@@ -103,6 +103,14 @@ class DashboardController < ApplicationController
|
|
103
103
|
end
|
104
104
|
```
|
105
105
|
|
106
|
+
or by specifying it as a block using `Opbeat.context` eg:
|
107
|
+
|
108
|
+
```ruby
|
109
|
+
Opbeat.with_context(user_id: @user.id) do
|
110
|
+
UserMailer.welcome_email(@user).deliver_now
|
111
|
+
end
|
112
|
+
```
|
113
|
+
|
106
114
|
## Background processing
|
107
115
|
|
108
116
|
Opbeat automatically catches exceptions in [delayed_job](https://github.com/collectiveidea/delayed_job) or [sidekiq](http://sidekiq.org/).
|
data/lib/opbeat.rb
CHANGED
@@ -86,6 +86,19 @@ module Opbeat
|
|
86
86
|
client.set_context context
|
87
87
|
end
|
88
88
|
|
89
|
+
# Updates context for errors within the block
|
90
|
+
#
|
91
|
+
# @param context [Hash]
|
92
|
+
# @yield [Trace] Block in which the context is used
|
93
|
+
def self.with_context context, &block
|
94
|
+
unless client
|
95
|
+
return yield if block_given?
|
96
|
+
return nil
|
97
|
+
end
|
98
|
+
|
99
|
+
client.context context, &block
|
100
|
+
end
|
101
|
+
|
89
102
|
# Send an exception to Opbeat
|
90
103
|
#
|
91
104
|
# @param exception [Exception]
|
data/lib/opbeat/client.rb
CHANGED
@@ -173,6 +173,16 @@ module Opbeat
|
|
173
173
|
@context = context
|
174
174
|
end
|
175
175
|
|
176
|
+
def with_context context, &block
|
177
|
+
current = @context
|
178
|
+
|
179
|
+
set_context((current || {}).merge(context))
|
180
|
+
|
181
|
+
yield if block_given?
|
182
|
+
ensure
|
183
|
+
set_context(current)
|
184
|
+
end
|
185
|
+
|
176
186
|
def report exception, opts = {}
|
177
187
|
return if config.disable_errors
|
178
188
|
return unless exception
|
@@ -260,7 +270,7 @@ module Opbeat
|
|
260
270
|
def kill_worker
|
261
271
|
return unless worker_running?
|
262
272
|
@queue << Worker::StopMessage.new
|
263
|
-
unless @worker_thread.join
|
273
|
+
unless @worker_thread.join(config.worker_quit_timeout)
|
264
274
|
error "Failed to wait for worker, not all messages sent"
|
265
275
|
end
|
266
276
|
@worker_thread = nil
|
data/lib/opbeat/configuration.rb
CHANGED
@@ -16,6 +16,7 @@ module Opbeat
|
|
16
16
|
current_user_method: :current_user,
|
17
17
|
environment: ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'default',
|
18
18
|
transaction_post_interval: 60,
|
19
|
+
worker_quit_timeout: 5,
|
19
20
|
|
20
21
|
disable_performance: false,
|
21
22
|
disable_errors: false,
|
@@ -43,6 +44,7 @@ module Opbeat
|
|
43
44
|
attr_accessor :current_user_method
|
44
45
|
attr_accessor :environment
|
45
46
|
attr_accessor :transaction_post_interval
|
47
|
+
attr_accessor :worker_quit_timeout
|
46
48
|
|
47
49
|
attr_accessor :disable_performance
|
48
50
|
attr_accessor :disable_errors
|
data/lib/opbeat/version.rb
CHANGED
data/spec/opbeat/client_spec.rb
CHANGED
@@ -114,6 +114,51 @@ module Opbeat
|
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
117
|
+
describe "#with_context" do
|
118
|
+
it "sets context for future errors" do
|
119
|
+
subject.with_context(additional_information: 'remember me') do
|
120
|
+
exception = Exception.new('BOOM')
|
121
|
+
subject.report exception
|
122
|
+
end
|
123
|
+
|
124
|
+
expect(subject.queue.length).to be 1
|
125
|
+
expect(subject.queue.pop.data[:extra]).to eq(additional_information: 'remember me')
|
126
|
+
end
|
127
|
+
|
128
|
+
it "supports nested contexts" do
|
129
|
+
subject.with_context(info: 'a') do
|
130
|
+
subject.with_context(more_info: 'b') do
|
131
|
+
exception = Exception.new('BOOM')
|
132
|
+
subject.report exception
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
expect(subject.queue.length).to be 1
|
137
|
+
expect(subject.queue.pop.data[:extra]).to eq(info: 'a', more_info: 'b')
|
138
|
+
end
|
139
|
+
|
140
|
+
it "restores context for future errors" do
|
141
|
+
subject.set_context(info: 'hello')
|
142
|
+
|
143
|
+
subject.with_context(additional_information: 'remember me') do
|
144
|
+
end
|
145
|
+
|
146
|
+
exception = Exception.new('BOOM')
|
147
|
+
subject.report exception
|
148
|
+
|
149
|
+
expect(subject.queue.length).to be 1
|
150
|
+
expect(subject.queue.pop.data[:extra]).to eq(info: 'hello')
|
151
|
+
end
|
152
|
+
|
153
|
+
it "returns what is yielded" do
|
154
|
+
result = subject.with_context(additional_information: 'remember me') do
|
155
|
+
42
|
156
|
+
end
|
157
|
+
|
158
|
+
expect(result).to be 42
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
117
162
|
describe "#report" do
|
118
163
|
it "builds and posts an exception" do
|
119
164
|
exception = Exception.new('BOOM')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opbeat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikkel Malmberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|