honeybadger 5.14.2 → 5.15.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/honeybadger/agent.rb +12 -1
- data/lib/honeybadger/config/defaults.rb +13 -2
- data/lib/honeybadger/config.rb +24 -3
- data/lib/honeybadger/event.rb +1 -1
- data/lib/honeybadger/notification_subscriber.rb +1 -2
- data/lib/honeybadger/plugins/sidekiq.rb +17 -11
- data/lib/honeybadger/plugins/solid_queue.rb +1 -1
- data/lib/honeybadger/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53470c49dca6dd18cc027497e441431f1b6871d47ddeb17ee00656dfefe49d18
|
4
|
+
data.tar.gz: e100a3d9279cd5986b16de62c25cf5d2b40f5bafad03bf0dc6560af1ebf966b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adef30d0aa32a2933cec0513cbb64e0b0a024d2e8b486b8c3f8da662996337f60537f0d228a28ef2b4a36449cb8ac986588ee1d7b7e737716fa44767e23c9961
|
7
|
+
data.tar.gz: dbc9fd40eb13d435365cad321d604aaa0403ccc88184ae11087f11c3fdfb834da02a96a7c3281fc340956f9dcde38bcfeec097fe2d62be960291e6a545e371b2
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
3
|
|
4
|
+
## [5.15.1](https://github.com/honeybadger-io/honeybadger-ruby/compare/v5.15.0...v5.15.1) (2024-07-23)
|
5
|
+
|
6
|
+
|
7
|
+
### Bug Fixes
|
8
|
+
|
9
|
+
* safe navigate adapter_name for payload connection ([#593](https://github.com/honeybadger-io/honeybadger-ruby/issues/593)) ([368fb16](https://github.com/honeybadger-io/honeybadger-ruby/commit/368fb160d811252f83d0e262110a8c198557c7df))
|
10
|
+
* sidekiq leader check only for version > 6.5 ([#594](https://github.com/honeybadger-io/honeybadger-ruby/issues/594)) ([3bc005b](https://github.com/honeybadger-io/honeybadger-ruby/commit/3bc005b12d689da84ebe9b485eb53c508623d984))
|
11
|
+
|
12
|
+
## [5.15.0](https://github.com/honeybadger-io/honeybadger-ruby/compare/v5.14.2...v5.15.0) (2024-07-18)
|
13
|
+
|
14
|
+
|
15
|
+
### Features
|
16
|
+
|
17
|
+
* define default events to ignore, allow for override ([#570](https://github.com/honeybadger-io/honeybadger-ruby/issues/570)) ([a6f2177](https://github.com/honeybadger-io/honeybadger-ruby/commit/a6f2177eb69b75eafef235768187ccf6b3a538f0))
|
18
|
+
|
4
19
|
## [5.14.2](https://github.com/honeybadger-io/honeybadger-ruby/compare/v5.14.1...v5.14.2) (2024-07-17)
|
5
20
|
|
6
21
|
|
data/lib/honeybadger/agent.rb
CHANGED
@@ -404,7 +404,18 @@ module Honeybadger
|
|
404
404
|
with_error_handling { hook.call(event) }
|
405
405
|
end
|
406
406
|
|
407
|
-
return if config.ignored_events.any?
|
407
|
+
return if config.ignored_events.any? do |check|
|
408
|
+
with_error_handling do
|
409
|
+
check.all? do |keys, value|
|
410
|
+
if keys == [:event_type]
|
411
|
+
event.event_type&.match?(value)
|
412
|
+
elsif event.dig(*keys)
|
413
|
+
event.dig(*keys).to_s.match?(value)
|
414
|
+
end
|
415
|
+
end
|
416
|
+
end
|
417
|
+
end
|
418
|
+
|
408
419
|
return if event.halted?
|
409
420
|
|
410
421
|
events_worker.push(event.as_json)
|
@@ -31,6 +31,12 @@ module Honeybadger
|
|
31
31
|
'Sinatra::NotFound',
|
32
32
|
'Sidekiq::JobRetry::Skip'].map(&:freeze).freeze
|
33
33
|
|
34
|
+
IGNORE_EVENTS_DEFAULT = [
|
35
|
+
{ event_type: 'sql.active_record', query: /^(begin|commit)( transaction)?$/i },
|
36
|
+
{ event_type: 'sql.active_record', query: /(solid_queue|good_job)/i },
|
37
|
+
{ event_type: 'process_action.action_controller', controller: 'Rails::HealthController' }
|
38
|
+
].freeze
|
39
|
+
|
34
40
|
DEVELOPMENT_ENVIRONMENTS = ['development', 'test', 'cucumber'].map(&:freeze).freeze
|
35
41
|
|
36
42
|
DEFAULT_PATHS = ['honeybadger.yml', 'config/honeybadger.yml', "#{ENV['HOME']}/honeybadger.yml"].map(&:freeze).freeze
|
@@ -112,8 +118,13 @@ module Honeybadger
|
|
112
118
|
type: Boolean
|
113
119
|
},
|
114
120
|
:'events.ignore' => {
|
115
|
-
description: 'A list of events to ignore. Use a
|
116
|
-
default:
|
121
|
+
description: 'A list of additional events to ignore. Use a hash to query nested payloads, match using a string or regex. Non-hash will match on the event_type.',
|
122
|
+
default: IGNORE_EVENTS_DEFAULT,
|
123
|
+
type: Array
|
124
|
+
},
|
125
|
+
:'events.ignore_only' => {
|
126
|
+
description: 'A list of events to ignore (overrides the default ignored events).',
|
127
|
+
default: nil,
|
117
128
|
type: Array
|
118
129
|
},
|
119
130
|
plugins: {
|
data/lib/honeybadger/config.rb
CHANGED
@@ -192,10 +192,22 @@ module Honeybadger
|
|
192
192
|
DEFAULTS[:'exceptions.ignore'] | Array(ignore)
|
193
193
|
end
|
194
194
|
|
195
|
+
def raw_ignored_events
|
196
|
+
ignore_only = get(:'events.ignore_only')
|
197
|
+
return ignore_only if ignore_only
|
198
|
+
return DEFAULTS[:'events.ignore'] unless ignore = get(:'events.ignore')
|
199
|
+
|
200
|
+
DEFAULTS[:'events.ignore'] | Array(ignore)
|
201
|
+
end
|
202
|
+
|
195
203
|
def ignored_events
|
196
|
-
|
197
|
-
check.is_a?(String)
|
198
|
-
|
204
|
+
@ignored_events ||= raw_ignored_events.map do |check|
|
205
|
+
if check.is_a?(String) || check.is_a?(Regexp)
|
206
|
+
{ [:event_type] => check }
|
207
|
+
elsif check.is_a?(Hash)
|
208
|
+
flat_hash(check).transform_keys! { |key_array| key_array.map(&:to_sym) }
|
209
|
+
end
|
210
|
+
end.compact
|
199
211
|
end
|
200
212
|
|
201
213
|
def ca_bundle_path
|
@@ -455,5 +467,14 @@ module Honeybadger
|
|
455
467
|
end
|
456
468
|
end
|
457
469
|
end
|
470
|
+
|
471
|
+
# Converts a nested hash into a single layer where keys become arrays:
|
472
|
+
# ex: > flat_hash({ :nested => { :hash => "value" }})
|
473
|
+
# > { [:nested, :hash] => "value" }
|
474
|
+
def flat_hash(h,f=[],g={})
|
475
|
+
return g.update({ f=>h }) unless h.is_a? Hash
|
476
|
+
h.each { |k,r| flat_hash(r,f+[k],g) }
|
477
|
+
g
|
478
|
+
end
|
458
479
|
end
|
459
480
|
end
|
data/lib/honeybadger/event.rb
CHANGED
@@ -59,14 +59,13 @@ module Honeybadger
|
|
59
59
|
class ActiveRecordSubscriber < NotificationSubscriber
|
60
60
|
def format_payload(payload)
|
61
61
|
{
|
62
|
-
query: Util::SQL.obfuscate(payload[:sql], payload[:connection]
|
62
|
+
query: Util::SQL.obfuscate(payload[:sql], payload[:connection]&.adapter_name),
|
63
63
|
async: payload[:async]
|
64
64
|
}
|
65
65
|
end
|
66
66
|
|
67
67
|
def process?(event, payload)
|
68
68
|
return false if payload[:name] == "SCHEMA"
|
69
|
-
return false if payload[:sql]&.match?(/^(begin|commit)( transaction)?$/i)
|
70
69
|
true
|
71
70
|
end
|
72
71
|
end
|
@@ -127,25 +127,31 @@ module Honeybadger
|
|
127
127
|
if config.load_plugin_insights?(:sidekiq)
|
128
128
|
require "sidekiq"
|
129
129
|
require "sidekiq/api"
|
130
|
-
require "sidekiq/component"
|
131
130
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
131
|
+
if Gem::Version.new(Sidekiq::VERSION) >= Gem::Version.new('6.5')
|
132
|
+
require "sidekiq/component"
|
133
|
+
|
134
|
+
class SidekiqClusterCollectionChecker
|
135
|
+
include ::Sidekiq::Component
|
136
|
+
def initialize(config)
|
137
|
+
@config = config
|
138
|
+
end
|
137
139
|
|
138
|
-
|
139
|
-
|
140
|
-
|
140
|
+
def collect?
|
141
|
+
return true unless defined?(::Sidekiq::Enterprise)
|
142
|
+
leader?
|
143
|
+
end
|
141
144
|
end
|
142
145
|
end
|
143
146
|
|
144
147
|
::Sidekiq.configure_server do |config|
|
145
148
|
config.server_middleware { |chain| chain.add(ServerMiddlewareInstrumentation) }
|
146
149
|
config.client_middleware { |chain| chain.add(ClientMiddlewareInstrumentation) }
|
147
|
-
|
148
|
-
|
150
|
+
|
151
|
+
if defined?(SidekiqClusterCollectionChecker)
|
152
|
+
config.on(:startup) do
|
153
|
+
leader_checker = SidekiqClusterCollectionChecker.new(config)
|
154
|
+
end
|
149
155
|
end
|
150
156
|
end
|
151
157
|
|
@@ -2,7 +2,7 @@ module Honeybadger
|
|
2
2
|
module Plugins
|
3
3
|
module SolidQueue
|
4
4
|
Plugin.register :solid_queue do
|
5
|
-
requirement { defined?(::SolidQueue) }
|
5
|
+
requirement { config.load_plugin_insights?(:solid_queue) && defined?(::SolidQueue) }
|
6
6
|
|
7
7
|
collect do
|
8
8
|
if config.cluster_collection?(:solid_queue)
|
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: 5.
|
4
|
+
version: 5.15.1
|
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: 2024-07-
|
11
|
+
date: 2024-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Make managing application errors a more pleasant experience.
|
14
14
|
email:
|