honeybadger 2.5.3 → 2.6.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/CHANGELOG.md +12 -0
- data/README.md +7 -2
- data/lib/honeybadger.rb +14 -0
- data/lib/honeybadger/agent.rb +10 -1
- data/lib/honeybadger/backend/server.rb +1 -0
- data/lib/honeybadger/config/defaults.rb +7 -2
- data/lib/honeybadger/util/sanitizer.rb +1 -1
- data/lib/honeybadger/version.rb +1 -1
- 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: 2222a4433ac78457a32df416c829a8e0723a7a4e
|
4
|
+
data.tar.gz: 2b86c78e7f197cb536bc113b0f529fbe1c8922f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5df00423284aa557dcf82df4d6e951e63fe0c4cd1c1cd019332c03f5b60cccaab0169e39692e40369ba4e5a5d01c145f4abd740ecce2f6b609c83a55c94cee90
|
7
|
+
data.tar.gz: 052aab1703d0ab8895754725423791079bf675ca274442b8b5ba475bc8b28b5a7febe13906c1eed7bd946a427b8646dd36675e36b5a0f2d6335918e6eabf5921
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,18 @@ adheres to [Semantic Versioning](http://semver.org/).
|
|
5
5
|
|
6
6
|
## [Unreleased][unreleased]
|
7
7
|
|
8
|
+
## [2.6.0] - 2016-04-22
|
9
|
+
### Added
|
10
|
+
- Automatically report unhandled exceptions at exit.
|
11
|
+
- Add `Honeybadger.get_context` method. -@homanchou
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- Filter Authorization header (HTTP\_AUTHORIZATION) by default.
|
15
|
+
|
16
|
+
### Fixed
|
17
|
+
- Always convert to string when sanitizing strings.
|
18
|
+
- Fix potential performance issue due to and `ensure` block. See #186.
|
19
|
+
|
8
20
|
## [2.5.3] - 2016-03-10
|
9
21
|
### Fixed
|
10
22
|
- Squashed a bug where the wrong source extract was sent for some instances of
|
data/README.md
CHANGED
@@ -146,6 +146,10 @@ run app
|
|
146
146
|
|
147
147
|
There are a few ways to configure the Honeybadger gem. You can use a YAML config file. You can use environment variables. Or you can use a combination of the two.
|
148
148
|
|
149
|
+
We put together a short video highligting a few of the most common configuration options:
|
150
|
+
|
151
|
+
[](https://honeybadger.wistia.com/medias/vv9qq9x39d)
|
152
|
+
|
149
153
|
|
150
154
|
### YAML Configuration File
|
151
155
|
|
@@ -167,7 +171,7 @@ Some configuration options are written in YAML as nested hashes. For example, he
|
|
167
171
|
logging:
|
168
172
|
path: "/path/to/honeybadger.log"
|
169
173
|
request:
|
170
|
-
|
174
|
+
filter_keys:
|
171
175
|
- "credit_card"
|
172
176
|
```
|
173
177
|
|
@@ -221,6 +225,7 @@ You can use any of the options below in your config file, or in the environment.
|
|
221
225
|
|`hostname` | String | The hostname of the current box.<br/>_Default: `Socket.gethostname`_|
|
222
226
|
|`backend` | String | An alternate backend to use for reporting data.<br/>_Default: `nil`_|
|
223
227
|
|`debug` | Boolean | Forces metrics and traces to be reported every 10 seconds rather than 60, and enables verbose debug logging.<br/>_Default: `false`_|
|
228
|
+
|`send_data_at_exit` | Boolean | Finish sending enqueued exceptions and metrics data before allowing program to exit.<br/>_Default: `true`_|
|
224
229
|
|`disabled` | Boolean | Prevents Honeybadger from starting entirely.<br/>_Default: `false`_|
|
225
230
|
| `config_path` | String | The path of the honeybadger config file. Can only be set via the `$HONEYBADGER_CONFIG_PATH` environment variable |
|
226
231
|
|`development_environments` | Array | Environments which will not report data by default (use report_data to enable/disable explicitly).<br/>_Default: `["development", "test", "cucumber"]`_|
|
@@ -257,11 +262,11 @@ You can use any of the options below in your config file, or in the environment.
|
|
257
262
|
|`feedback.enabled` | Boolean | Enable the UserFeedback middleware. Feedback displays a comment form to your-end user when they encounter an error. When the user creates a comment, it is added to the error in Honeybadger, and a notification is sent. [Learn More](http://docs.honeybadger.io/article/166-how-to-implement-a-custom-feedback-form)<br/>_Default: `true`_|
|
258
263
|
| | ||
|
259
264
|
|__EXCEPTION REPORTING__ | ||
|
260
|
-
|`exceptions.enabled` | Boolean | Enable automatic reporting of exceptions.<br/>_Default: `true`_|
|
261
265
|
|`exceptions.ignore` | Array | A list of exception class names to ignore (appends to defaults).<br/>_Default: `['ActiveRecord::RecordNotFound', 'ActionController::RoutingError', 'ActionController::InvalidAuthenticityToken', 'CGI::Session::CookieStore::TamperedWithCookie', 'ActionController::UnknownAction', 'AbstractController::ActionNotFound', 'Mongoid::Errors::DocumentNotFound Sinatra::NotFound']`_|
|
262
266
|
|`exceptions.ignore_only` | Array | A list of exception class names to ignore (overrides defaults).<br/>_Default: `[]`_|
|
263
267
|
|`exceptions.` `ignored_user_agents` | Array | A list of user agents to ignore.<br/>_Default: `[]`_|
|
264
268
|
|`exceptions.rescue_rake` | Boolean | Enable rescuing exceptions in rake tasks.<br/>_Default: `true` when run in background; `false` when run in terminal._|
|
269
|
+
|`exceptions.notify_at_exit` | Boolean | Report unhandled exception when Ruby crashes (at\_exit).<br/>_Default: `true`._|
|
265
270
|
|`exceptions.source_radius` | Integer | The number of lines before and after the source when reporting snippets.<br/>_Default: `2`_|
|
266
271
|
|`exceptions.local_variables` | Boolean | Enable sending local variables. Requires the [binding_of_caller gem](https://rubygems.org/gems/binding_of_caller).<br/>_Default: `false`_|
|
267
272
|
|`exceptions.unwrap` | Boolean | Reports #original_exception or #cause one level up from rescued exception when available.<br/>_Default: `false`_|
|
data/lib/honeybadger.rb
CHANGED
@@ -171,6 +171,20 @@ module Honeybadger
|
|
171
171
|
self
|
172
172
|
end
|
173
173
|
|
174
|
+
|
175
|
+
# Public: Get global context for the current request.
|
176
|
+
#
|
177
|
+
#
|
178
|
+
# Examples:
|
179
|
+
#
|
180
|
+
# Honeybadger.context({my_data: 'my value'})
|
181
|
+
# Honeybadger.get_context #now returns {my_data: 'my value'}
|
182
|
+
#
|
183
|
+
# Returns hash or nil.
|
184
|
+
def get_context
|
185
|
+
Thread.current[:__honeybadger_context]
|
186
|
+
end
|
187
|
+
|
174
188
|
# Internal: Clears the global context
|
175
189
|
def clear!
|
176
190
|
Thread.current[:__honeybadger_context] = nil
|
data/lib/honeybadger/agent.rb
CHANGED
@@ -154,6 +154,7 @@ module Honeybadger
|
|
154
154
|
exit_status = $!.status if $!.is_a?(SystemExit)
|
155
155
|
end
|
156
156
|
|
157
|
+
notify_at_exit($!)
|
157
158
|
stop if config[:'send_data_at_exit']
|
158
159
|
self.class.at_exit.call if self.class.at_exit
|
159
160
|
|
@@ -299,12 +300,12 @@ module Honeybadger
|
|
299
300
|
def work
|
300
301
|
flush_metrics if metrics.flush?
|
301
302
|
flush_traces if traces.flush?
|
303
|
+
sleep(delay)
|
302
304
|
rescue StandardError => e
|
303
305
|
error {
|
304
306
|
msg = "error in agent thread class=%s message=%s\n\t%s"
|
305
307
|
sprintf(msg, e.class, e.message.dump, Array(e.backtrace).join("\n\t"))
|
306
308
|
}
|
307
|
-
ensure
|
308
309
|
sleep(delay)
|
309
310
|
end
|
310
311
|
|
@@ -342,5 +343,13 @@ module Honeybadger
|
|
342
343
|
init_traces
|
343
344
|
end
|
344
345
|
end
|
346
|
+
|
347
|
+
def notify_at_exit(ex)
|
348
|
+
return unless ex
|
349
|
+
return unless config[:'exceptions.notify_at_exit']
|
350
|
+
return if ex.is_a?(SystemExit)
|
351
|
+
|
352
|
+
notice(exception: ex, component: 'at_exit')
|
353
|
+
end
|
345
354
|
end
|
346
355
|
end
|
@@ -168,7 +168,7 @@ module Honeybadger
|
|
168
168
|
},
|
169
169
|
:'request.filter_keys' => {
|
170
170
|
description: 'A list of keys to filter when sending request data.',
|
171
|
-
default: ['password'.freeze, 'password_confirmation'.freeze].freeze,
|
171
|
+
default: ['password'.freeze, 'password_confirmation'.freeze, 'HTTP_AUTHORIZATION'.freeze].freeze,
|
172
172
|
type: Array
|
173
173
|
},
|
174
174
|
:'request.disable_session' => {
|
@@ -227,10 +227,15 @@ module Honeybadger
|
|
227
227
|
type: Array
|
228
228
|
},
|
229
229
|
:'exceptions.rescue_rake' => {
|
230
|
-
description: 'Enable
|
230
|
+
description: 'Enable reporting exceptions in rake tasks.',
|
231
231
|
default: !STDOUT.tty?,
|
232
232
|
type: Boolean
|
233
233
|
},
|
234
|
+
:'exceptions.notify_at_exit' => {
|
235
|
+
description: 'Report unhandled exception when Ruby crashes (at_exit).',
|
236
|
+
default: true,
|
237
|
+
type: Boolean
|
238
|
+
},
|
234
239
|
:'exceptions.source_radius' => {
|
235
240
|
description: 'The number of lines before and after the source when reporting snippets.',
|
236
241
|
default: 2,
|
@@ -107,7 +107,7 @@ module Honeybadger
|
|
107
107
|
end
|
108
108
|
|
109
109
|
def sanitize_string(data)
|
110
|
-
data = valid_encoding(data)
|
110
|
+
data = valid_encoding(data.to_s)
|
111
111
|
return data unless data.respond_to?(:size) && data.size > MAX_STRING_SIZE
|
112
112
|
data[0...MAX_STRING_SIZE] + TRUNCATION_REPLACEMENT
|
113
113
|
end
|
data/lib/honeybadger/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honeybadger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Honeybadger Industries LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make managing application errors a more pleasant experience.
|
14
14
|
email:
|