honeybadger 5.29.1 → 6.0.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 +29 -0
- data/lib/honeybadger/agent.rb +36 -35
- data/lib/honeybadger/backend/base.rb +11 -11
- data/lib/honeybadger/backend/debug.rb +4 -4
- data/lib/honeybadger/backend/null.rb +2 -2
- data/lib/honeybadger/backend/server.rb +11 -11
- data/lib/honeybadger/backend/test.rb +2 -2
- data/lib/honeybadger/backend.rb +6 -6
- data/lib/honeybadger/backtrace.rb +27 -22
- data/lib/honeybadger/breadcrumbs/active_support.rb +9 -9
- data/lib/honeybadger/breadcrumbs/breadcrumb.rb +1 -2
- data/lib/honeybadger/breadcrumbs/collector.rb +4 -4
- data/lib/honeybadger/breadcrumbs/logging.rb +11 -14
- data/lib/honeybadger/breadcrumbs.rb +3 -3
- data/lib/honeybadger/cli/deploy.rb +7 -7
- data/lib/honeybadger/cli/exec.rb +41 -41
- data/lib/honeybadger/cli/helpers.rb +18 -18
- data/lib/honeybadger/cli/heroku.rb +36 -36
- data/lib/honeybadger/cli/install.rb +44 -44
- data/lib/honeybadger/cli/main.rb +107 -107
- data/lib/honeybadger/cli/notify.rb +13 -13
- data/lib/honeybadger/cli/test.rb +109 -94
- data/lib/honeybadger/cli.rb +3 -3
- data/lib/honeybadger/config/defaults.rb +218 -218
- data/lib/honeybadger/config/env.rb +5 -5
- data/lib/honeybadger/config/ruby.rb +19 -19
- data/lib/honeybadger/config/yaml.rb +12 -12
- data/lib/honeybadger/config.rb +76 -78
- data/lib/honeybadger/const.rb +4 -4
- data/lib/honeybadger/context_manager.rb +1 -2
- data/lib/honeybadger/conversions.rb +9 -6
- data/lib/honeybadger/counter.rb +4 -4
- data/lib/honeybadger/event.rb +3 -3
- data/lib/honeybadger/events_worker.rb +33 -33
- data/lib/honeybadger/gauge.rb +2 -2
- data/lib/honeybadger/histogram.rb +4 -4
- data/lib/honeybadger/init/hanami.rb +5 -5
- data/lib/honeybadger/init/rails.rb +14 -14
- data/lib/honeybadger/init/rake.rb +19 -21
- data/lib/honeybadger/init/ruby.rb +4 -4
- data/lib/honeybadger/init/sinatra.rb +11 -12
- data/lib/honeybadger/instrumentation.rb +26 -31
- data/lib/honeybadger/instrumentation_helper.rb +11 -12
- data/lib/honeybadger/karafka.rb +55 -56
- data/lib/honeybadger/logging.rb +22 -21
- data/lib/honeybadger/metric.rb +2 -2
- data/lib/honeybadger/metrics_worker.rb +12 -10
- data/lib/honeybadger/notice.rb +55 -58
- data/lib/honeybadger/notification_subscriber.rb +14 -14
- data/lib/honeybadger/plugin.rb +16 -18
- data/lib/honeybadger/plugins/active_job.rb +11 -9
- data/lib/honeybadger/plugins/autotuner.rb +5 -5
- data/lib/honeybadger/plugins/breadcrumbs.rb +7 -7
- data/lib/honeybadger/plugins/delayed_job/plugin.rb +36 -37
- data/lib/honeybadger/plugins/delayed_job.rb +4 -4
- data/lib/honeybadger/plugins/faktory.rb +10 -10
- data/lib/honeybadger/plugins/karafka.rb +3 -3
- data/lib/honeybadger/plugins/lambda.rb +9 -11
- data/lib/honeybadger/plugins/local_variables.rb +4 -4
- data/lib/honeybadger/plugins/net_http.rb +10 -10
- data/lib/honeybadger/plugins/passenger.rb +4 -4
- data/lib/honeybadger/plugins/rails.rb +13 -9
- data/lib/honeybadger/plugins/resque.rb +7 -7
- data/lib/honeybadger/plugins/shoryuken.rb +6 -6
- data/lib/honeybadger/plugins/sidekiq.rb +62 -58
- data/lib/honeybadger/plugins/solid_queue.rb +3 -3
- data/lib/honeybadger/plugins/sucker_punch.rb +5 -5
- data/lib/honeybadger/plugins/system.rb +3 -3
- data/lib/honeybadger/plugins/thor.rb +5 -5
- data/lib/honeybadger/plugins/warden.rb +4 -4
- data/lib/honeybadger/rack/error_notifier.rb +14 -14
- data/lib/honeybadger/rack/user_feedback.rb +11 -12
- data/lib/honeybadger/rack/user_informer.rb +6 -6
- data/lib/honeybadger/registry.rb +2 -2
- data/lib/honeybadger/registry_execution.rb +1 -1
- data/lib/honeybadger/ruby.rb +2 -2
- data/lib/honeybadger/singleton.rb +49 -48
- data/lib/honeybadger/tasks.rb +3 -3
- data/lib/honeybadger/timer.rb +1 -1
- data/lib/honeybadger/util/http.rb +27 -27
- data/lib/honeybadger/util/request_hash.rb +11 -11
- data/lib/honeybadger/util/request_payload.rb +2 -2
- data/lib/honeybadger/util/revision.rb +14 -6
- data/lib/honeybadger/util/sanitizer.rb +22 -22
- data/lib/honeybadger/util/stats.rb +6 -3
- data/lib/honeybadger/version.rb +1 -1
- data/lib/honeybadger/worker.rb +31 -29
- data/lib/honeybadger.rb +5 -5
- data/lib/puma/plugin/honeybadger.rb +12 -8
- metadata +2 -2
@@ -1,529 +1,529 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "socket"
|
2
|
+
require "honeybadger/breadcrumbs/active_support"
|
3
3
|
|
4
4
|
module Honeybadger
|
5
5
|
class Config
|
6
6
|
class Boolean; end
|
7
7
|
|
8
|
-
IGNORE_DEFAULT = [
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
8
|
+
IGNORE_DEFAULT = ["ActionController::RoutingError",
|
9
|
+
"AbstractController::ActionNotFound",
|
10
|
+
"ActionController::MethodNotAllowed",
|
11
|
+
"ActionController::UnknownHttpMethod",
|
12
|
+
"ActionController::NotImplemented",
|
13
|
+
"ActionController::UnknownFormat",
|
14
|
+
"ActionController::InvalidAuthenticityToken",
|
15
|
+
"ActionController::InvalidCrossOriginRequest",
|
16
|
+
# ActionDispatch::ParamsParser::ParseError was removed in Rails 6.0
|
17
|
+
# and may be removed here once support for Rails 5.2 is dropped.
|
18
|
+
# https://github.com/rails/rails/commit/e16c765ac6dcff068ff2e5554d69ff345c003de1
|
19
|
+
# https://github.com/honeybadger-io/honeybadger-ruby/pull/358
|
20
|
+
"ActionDispatch::ParamsParser::ParseError",
|
21
|
+
"ActionDispatch::Http::Parameters::ParseError",
|
22
|
+
"ActionController::BadRequest",
|
23
|
+
"ActionController::ParameterMissing",
|
24
|
+
"ActiveRecord::RecordNotFound",
|
25
|
+
"ActionController::UnknownAction",
|
26
|
+
"ActionDispatch::Http::MimeNegotiation::InvalidType",
|
27
|
+
"Rack::QueryParser::ParameterTypeError",
|
28
|
+
"Rack::QueryParser::InvalidParameterError",
|
29
|
+
"CGI::Session::CookieStore::TamperedWithCookie",
|
30
|
+
"Mongoid::Errors::DocumentNotFound",
|
31
|
+
"Sinatra::NotFound",
|
32
|
+
"Sidekiq::JobRetry::Skip"].map(&:freeze).freeze
|
33
33
|
|
34
34
|
IGNORE_EVENTS_DEFAULT = [
|
35
|
-
{
|
36
|
-
{
|
37
|
-
{
|
38
|
-
{
|
39
|
-
{
|
35
|
+
{event_type: "metric.hb", metric_name: "duration.sql.active_record", query: /^(begin|commit)( immediate)?( transaction)?$/i},
|
36
|
+
{event_type: "sql.active_record", query: /^(begin|commit)( immediate)?( transaction)?$/i},
|
37
|
+
{event_type: "sql.active_record", query: /(solid_queue|good_job)/i},
|
38
|
+
{event_type: "sql.active_record", name: /^GoodJob/},
|
39
|
+
{event_type: "process_action.action_controller", controller: "Rails::HealthController"}
|
40
40
|
].freeze
|
41
41
|
|
42
|
-
DEVELOPMENT_ENVIRONMENTS = [
|
42
|
+
DEVELOPMENT_ENVIRONMENTS = ["development", "test", "cucumber"].map(&:freeze).freeze
|
43
43
|
|
44
|
-
DEFAULT_PATHS = [
|
44
|
+
DEFAULT_PATHS = ["honeybadger.yml", "config/honeybadger.yml", "#{ENV["HOME"]}/honeybadger.yml"].map(&:freeze).freeze
|
45
45
|
|
46
46
|
OPTIONS = {
|
47
47
|
api_key: {
|
48
|
-
description:
|
48
|
+
description: "The API key for your Honeybadger project.",
|
49
49
|
default: nil,
|
50
50
|
type: String
|
51
51
|
},
|
52
52
|
env: {
|
53
|
-
description:
|
53
|
+
description: "The current application's environment name.",
|
54
54
|
default: nil,
|
55
55
|
type: String
|
56
56
|
},
|
57
57
|
report_data: {
|
58
|
-
description:
|
58
|
+
description: "Enable/disable reporting of data. Defaults to true for non-development environments.",
|
59
59
|
default: nil,
|
60
60
|
type: Boolean
|
61
61
|
},
|
62
62
|
root: {
|
63
|
-
description:
|
63
|
+
description: "The project's absolute root path.",
|
64
64
|
default: Dir.pwd,
|
65
65
|
type: String
|
66
66
|
},
|
67
67
|
revision: {
|
68
|
-
description:
|
68
|
+
description: "The git revision of the project.",
|
69
69
|
default: nil,
|
70
70
|
type: String
|
71
71
|
},
|
72
72
|
hostname: {
|
73
|
-
description:
|
73
|
+
description: "The hostname of the current box.",
|
74
74
|
default: Socket.gethostname,
|
75
75
|
type: String
|
76
76
|
},
|
77
77
|
backend: {
|
78
|
-
description:
|
78
|
+
description: "An alternate backend to use for reporting data.",
|
79
79
|
default: nil,
|
80
80
|
type: String
|
81
81
|
},
|
82
82
|
debug: {
|
83
|
-
description:
|
83
|
+
description: "Enables debug logging.",
|
84
84
|
default: false,
|
85
85
|
type: Boolean
|
86
86
|
},
|
87
87
|
development_environments: {
|
88
|
-
description:
|
88
|
+
description: "Environments which will not report data by default (use report_data to enable/disable explicitly).",
|
89
89
|
default: DEVELOPMENT_ENVIRONMENTS,
|
90
90
|
type: Array
|
91
91
|
},
|
92
|
-
:
|
93
|
-
description:
|
92
|
+
send_data_at_exit: {
|
93
|
+
description: "Send remaining data when Ruby exits.",
|
94
94
|
default: true,
|
95
95
|
type: Boolean
|
96
96
|
},
|
97
97
|
max_queue_size: {
|
98
|
-
description:
|
98
|
+
description: "Maximum number of items for each worker queue.",
|
99
99
|
default: 100,
|
100
100
|
type: Integer
|
101
101
|
},
|
102
|
-
|
103
|
-
description:
|
102
|
+
"events.max_queue_size": {
|
103
|
+
description: "Maximum number of event for the event worker queue.",
|
104
104
|
default: 100000,
|
105
105
|
type: Integer
|
106
106
|
},
|
107
|
-
|
108
|
-
description:
|
107
|
+
"events.batch_size": {
|
108
|
+
description: "Send events batch if n events have accumulated",
|
109
109
|
default: 1000,
|
110
110
|
type: Integer
|
111
111
|
},
|
112
|
-
|
113
|
-
description:
|
112
|
+
"events.timeout": {
|
113
|
+
description: "Timeout after which the events batch will be sent regardless (in milliseconds)",
|
114
114
|
default: 30_000,
|
115
115
|
type: Integer
|
116
116
|
},
|
117
|
-
|
118
|
-
description:
|
117
|
+
"events.attach_hostname": {
|
118
|
+
description: "Add the hostname to all event paylaods.",
|
119
119
|
default: true,
|
120
120
|
type: Boolean
|
121
121
|
},
|
122
|
-
|
123
|
-
description:
|
122
|
+
"events.ignore": {
|
123
|
+
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.",
|
124
124
|
default: IGNORE_EVENTS_DEFAULT,
|
125
125
|
type: Array
|
126
126
|
},
|
127
|
-
|
128
|
-
description:
|
127
|
+
"events.ignore_only": {
|
128
|
+
description: "A list of events to ignore (overrides the default ignored events).",
|
129
129
|
default: nil,
|
130
130
|
type: Array
|
131
131
|
},
|
132
|
-
|
133
|
-
description:
|
132
|
+
"events.sample_rate": {
|
133
|
+
description: "Percentage of events to send to the API (0-100). A value of 0 means no events are sent, 100 means all events are sent.",
|
134
134
|
default: 100,
|
135
135
|
type: Integer
|
136
136
|
},
|
137
137
|
plugins: {
|
138
|
-
description:
|
138
|
+
description: "An optional list of plugins to load. Default is to load all plugins.",
|
139
139
|
default: nil,
|
140
140
|
type: Array
|
141
141
|
},
|
142
142
|
sync: {
|
143
|
-
description:
|
143
|
+
description: "Enable all notices to be sent synchronously. Default is false.",
|
144
144
|
default: false,
|
145
145
|
type: Boolean
|
146
146
|
},
|
147
|
-
:
|
148
|
-
description:
|
147
|
+
skipped_plugins: {
|
148
|
+
description: "An optional list of plugins to skip.",
|
149
149
|
default: nil,
|
150
150
|
type: Array
|
151
151
|
},
|
152
|
-
|
153
|
-
description:
|
152
|
+
"config.path": {
|
153
|
+
description: "The path (absolute, or relative from config.root) to the project's YAML configuration file.",
|
154
154
|
default: DEFAULT_PATHS,
|
155
155
|
type: String
|
156
156
|
},
|
157
|
-
|
158
|
-
description:
|
157
|
+
"logging.path": {
|
158
|
+
description: "The path (absolute, or relative from config.root) to the log file.",
|
159
159
|
default: nil,
|
160
160
|
type: String
|
161
161
|
},
|
162
|
-
|
163
|
-
description:
|
164
|
-
default:
|
162
|
+
"logging.level": {
|
163
|
+
description: "The log level.",
|
164
|
+
default: "INFO",
|
165
165
|
type: String
|
166
166
|
},
|
167
|
-
|
168
|
-
description:
|
167
|
+
"logging.debug": {
|
168
|
+
description: "Override debug logging.",
|
169
169
|
default: nil,
|
170
170
|
type: Boolean
|
171
171
|
},
|
172
|
-
|
173
|
-
description:
|
174
|
-
default:
|
172
|
+
"logging.tty_level": {
|
173
|
+
description: "Level to log when attached to a terminal (anything < logging.level will always be ignored).",
|
174
|
+
default: "DEBUG",
|
175
175
|
type: String
|
176
176
|
},
|
177
|
-
|
178
|
-
description:
|
177
|
+
"connection.secure": {
|
178
|
+
description: "Use SSL when sending data.",
|
179
179
|
default: true,
|
180
180
|
type: Boolean
|
181
181
|
},
|
182
|
-
|
183
|
-
description:
|
184
|
-
default:
|
182
|
+
"connection.host": {
|
183
|
+
description: "The host to use when sending data.",
|
184
|
+
default: "api.honeybadger.io".freeze,
|
185
185
|
type: String
|
186
186
|
},
|
187
|
-
|
188
|
-
description:
|
189
|
-
default:
|
187
|
+
"connection.ui_host": {
|
188
|
+
description: "The host to use when viewing data.",
|
189
|
+
default: "app.honeybadger.io".freeze,
|
190
190
|
type: String
|
191
191
|
},
|
192
|
-
|
193
|
-
description:
|
192
|
+
"connection.port": {
|
193
|
+
description: "The port to use when sending data.",
|
194
194
|
default: nil,
|
195
195
|
type: Integer
|
196
196
|
},
|
197
|
-
|
198
|
-
description:
|
197
|
+
"connection.system_ssl_cert_chain": {
|
198
|
+
description: "Use the system's SSL certificate chain (if available).",
|
199
199
|
default: false,
|
200
200
|
type: Boolean
|
201
201
|
},
|
202
|
-
|
203
|
-
description:
|
202
|
+
"connection.ssl_ca_bundle_path": {
|
203
|
+
description: "Use this ca bundle when establishing secure connections.",
|
204
204
|
default: nil,
|
205
205
|
type: String
|
206
206
|
},
|
207
|
-
|
208
|
-
description:
|
207
|
+
"connection.http_open_timeout": {
|
208
|
+
description: "The HTTP open timeout when connecting to the server.",
|
209
209
|
default: 2,
|
210
210
|
type: Integer
|
211
211
|
},
|
212
|
-
|
213
|
-
description:
|
212
|
+
"connection.http_read_timeout": {
|
213
|
+
description: "The HTTP read timeout when connecting to the server.",
|
214
214
|
default: 5,
|
215
215
|
type: Integer
|
216
216
|
},
|
217
|
-
|
218
|
-
description:
|
217
|
+
"connection.proxy_host": {
|
218
|
+
description: "The proxy host to use when sending data.",
|
219
219
|
default: nil,
|
220
220
|
type: String
|
221
221
|
},
|
222
|
-
|
223
|
-
description:
|
222
|
+
"connection.proxy_port": {
|
223
|
+
description: "The proxy port to use when sending data.",
|
224
224
|
default: nil,
|
225
225
|
type: Integer
|
226
226
|
},
|
227
|
-
|
228
|
-
description:
|
227
|
+
"connection.proxy_user": {
|
228
|
+
description: "The proxy user to use when sending data.",
|
229
229
|
default: nil,
|
230
230
|
type: String
|
231
231
|
},
|
232
|
-
|
233
|
-
description:
|
232
|
+
"connection.proxy_pass": {
|
233
|
+
description: "The proxy password to use when sending data.",
|
234
234
|
default: nil,
|
235
235
|
type: String
|
236
236
|
},
|
237
|
-
|
238
|
-
description:
|
239
|
-
default: [
|
237
|
+
"request.filter_keys": {
|
238
|
+
description: "A list of keys to filter when sending request data.",
|
239
|
+
default: ["password".freeze, "password_confirmation".freeze, "HTTP_AUTHORIZATION".freeze].freeze,
|
240
240
|
type: Array
|
241
241
|
},
|
242
|
-
|
243
|
-
description:
|
242
|
+
"request.disable_session": {
|
243
|
+
description: "Prevent session from being sent with request data.",
|
244
244
|
default: false,
|
245
245
|
type: Boolean
|
246
246
|
},
|
247
|
-
|
248
|
-
description:
|
247
|
+
"request.disable_params": {
|
248
|
+
description: "Prevent params from being sent with request data.",
|
249
249
|
default: false,
|
250
250
|
type: Boolean
|
251
251
|
},
|
252
|
-
|
253
|
-
description:
|
252
|
+
"request.disable_environment": {
|
253
|
+
description: "Prevent Rack environment from being sent with request data.",
|
254
254
|
default: false,
|
255
255
|
type: Boolean
|
256
256
|
},
|
257
|
-
|
258
|
-
description:
|
257
|
+
"request.disable_url": {
|
258
|
+
description: "Prevent url from being sent with request data (Rack environment may still contain it in some cases).",
|
259
259
|
default: false,
|
260
260
|
type: Boolean
|
261
261
|
},
|
262
|
-
|
263
|
-
description:
|
262
|
+
"user_informer.enabled": {
|
263
|
+
description: "Enable the UserInformer middleware.",
|
264
264
|
default: true,
|
265
265
|
type: Boolean
|
266
266
|
},
|
267
|
-
|
268
|
-
description:
|
269
|
-
default:
|
267
|
+
"user_informer.info": {
|
268
|
+
description: "Replacement string for HTML comment in templates.",
|
269
|
+
default: "Honeybadger Error {{error_id}}".freeze,
|
270
270
|
type: String
|
271
271
|
},
|
272
|
-
|
273
|
-
description:
|
272
|
+
"feedback.enabled": {
|
273
|
+
description: "Enable the UserFeedback middleware.",
|
274
274
|
default: true,
|
275
275
|
type: Boolean
|
276
276
|
},
|
277
|
-
|
278
|
-
description:
|
277
|
+
"exceptions.enabled": {
|
278
|
+
description: "Enable automatic reporting of exceptions.",
|
279
279
|
default: true,
|
280
280
|
type: Boolean
|
281
281
|
},
|
282
|
-
|
283
|
-
description:
|
282
|
+
"exceptions.ignore": {
|
283
|
+
description: "A list of additional exceptions to ignore (includes default ignored exceptions).",
|
284
284
|
default: IGNORE_DEFAULT,
|
285
285
|
type: Array
|
286
286
|
},
|
287
|
-
|
288
|
-
description:
|
287
|
+
"exceptions.ignore_only": {
|
288
|
+
description: "A list of exceptions to ignore (overrides the default ignored exceptions).",
|
289
289
|
default: nil,
|
290
290
|
type: Array
|
291
291
|
},
|
292
|
-
|
293
|
-
description:
|
292
|
+
"exceptions.ignored_user_agents": {
|
293
|
+
description: "A list of user agents to ignore.",
|
294
294
|
default: [].freeze,
|
295
295
|
type: Array
|
296
296
|
},
|
297
|
-
|
298
|
-
description:
|
299
|
-
default:
|
297
|
+
"exceptions.rescue_rake": {
|
298
|
+
description: "Enable reporting exceptions in rake tasks.",
|
299
|
+
default: !$stdout.tty?,
|
300
300
|
type: Boolean
|
301
301
|
},
|
302
|
-
|
303
|
-
description:
|
302
|
+
"exceptions.notify_at_exit": {
|
303
|
+
description: "Report unhandled exception when Ruby crashes (at_exit).",
|
304
304
|
default: true,
|
305
305
|
type: Boolean
|
306
306
|
},
|
307
|
-
|
308
|
-
description:
|
307
|
+
"exceptions.source_radius": {
|
308
|
+
description: "The number of lines before and after the source when reporting snippets.",
|
309
309
|
default: 2,
|
310
310
|
type: Integer
|
311
311
|
},
|
312
|
-
|
313
|
-
description:
|
312
|
+
"exceptions.local_variables": {
|
313
|
+
description: "Enable sending local variables. Requires binding_of_caller to be loaded.",
|
314
314
|
default: false,
|
315
315
|
type: Boolean
|
316
316
|
},
|
317
|
-
|
318
|
-
description:
|
317
|
+
"exceptions.unwrap": {
|
318
|
+
description: "Reports #original_exception or #cause one level up from rescued exception when available.",
|
319
319
|
default: false,
|
320
320
|
type: Boolean
|
321
321
|
},
|
322
|
-
|
323
|
-
description:
|
322
|
+
"active_job.attempt_threshold": {
|
323
|
+
description: "The number of attempts before notifications will be sent.",
|
324
324
|
default: 0,
|
325
325
|
type: Integer
|
326
326
|
},
|
327
|
-
|
328
|
-
description:
|
327
|
+
"delayed_job.attempt_threshold": {
|
328
|
+
description: "The number of attempts before notifications will be sent.",
|
329
329
|
default: 0,
|
330
330
|
type: Integer
|
331
331
|
},
|
332
|
-
|
333
|
-
description:
|
332
|
+
"sidekiq.attempt_threshold": {
|
333
|
+
description: "The number of attempts before notifications will be sent.",
|
334
334
|
default: 0,
|
335
335
|
type: Integer
|
336
336
|
},
|
337
|
-
|
338
|
-
description:
|
337
|
+
"shoryuken.attempt_threshold": {
|
338
|
+
description: "The number of attempts before notifications will be sent.",
|
339
339
|
default: 0,
|
340
340
|
type: Integer
|
341
341
|
},
|
342
|
-
|
343
|
-
description:
|
342
|
+
"faktory.attempt_threshold": {
|
343
|
+
description: "The number of attempts before notifications will be sent.",
|
344
344
|
default: 0,
|
345
345
|
type: Integer
|
346
346
|
},
|
347
|
-
|
348
|
-
description:
|
347
|
+
"sidekiq.use_component": {
|
348
|
+
description: "Automatically set the component to the class of the job. Helps with grouping.",
|
349
349
|
default: true,
|
350
350
|
type: Boolean
|
351
351
|
},
|
352
|
-
|
353
|
-
description:
|
352
|
+
"sidekiq.insights.enabled": {
|
353
|
+
description: "Enable automatic data collection for Sidekiq.",
|
354
354
|
default: true,
|
355
355
|
type: Boolean
|
356
356
|
},
|
357
|
-
|
358
|
-
description:
|
357
|
+
"sidekiq.insights.events": {
|
358
|
+
description: "Enable automatic event capturing for Sidekiq.",
|
359
359
|
default: true,
|
360
360
|
type: Boolean
|
361
361
|
},
|
362
|
-
|
363
|
-
description:
|
362
|
+
"sidekiq.insights.metrics": {
|
363
|
+
description: "Enable automatic metric data collection for Sidekiq.",
|
364
364
|
default: false,
|
365
365
|
type: Boolean
|
366
366
|
},
|
367
|
-
|
368
|
-
description:
|
367
|
+
"sidekiq.insights.cluster_collection": {
|
368
|
+
description: "Collect cluster based metrics for Sidekiq.",
|
369
369
|
default: true,
|
370
370
|
type: Boolean
|
371
371
|
},
|
372
|
-
|
373
|
-
description:
|
372
|
+
"sidekiq.insights.collection_interval": {
|
373
|
+
description: "The frequency in which Sidekiq cluster metrics are sampled.",
|
374
374
|
default: 5,
|
375
375
|
type: Integer
|
376
376
|
},
|
377
|
-
|
378
|
-
description:
|
377
|
+
"solid_queue.insights.enabled": {
|
378
|
+
description: "Enable automatic data collection for SolidQueue.",
|
379
379
|
default: true,
|
380
380
|
type: Boolean
|
381
381
|
},
|
382
|
-
|
383
|
-
description:
|
382
|
+
"solid_queue.insights.events": {
|
383
|
+
description: "Enable automatic event capturing for SolidQueue.",
|
384
384
|
default: true,
|
385
385
|
type: Boolean
|
386
386
|
},
|
387
|
-
|
388
|
-
description:
|
387
|
+
"solid_queue.insights.metrics": {
|
388
|
+
description: "Enable automatic metric data collection for SolidQueue.",
|
389
389
|
default: false,
|
390
390
|
type: Boolean
|
391
391
|
},
|
392
|
-
|
393
|
-
description:
|
392
|
+
"solid_queue.insights.cluster_collection": {
|
393
|
+
description: "Collect cluster based metrics for SolidQueue.",
|
394
394
|
default: true,
|
395
395
|
type: Boolean
|
396
396
|
},
|
397
|
-
|
398
|
-
description:
|
397
|
+
"solid_queue.insights.collection_interval": {
|
398
|
+
description: "The frequency in which SolidQueue cluster metrics are sampled.",
|
399
399
|
default: 5,
|
400
400
|
type: Integer
|
401
401
|
},
|
402
|
-
|
403
|
-
description:
|
402
|
+
"rails.insights.enabled": {
|
403
|
+
description: "Enable automatic data collection for Ruby on Rails.",
|
404
404
|
default: true,
|
405
405
|
type: Boolean
|
406
406
|
},
|
407
|
-
|
408
|
-
description:
|
407
|
+
"rails.insights.events": {
|
408
|
+
description: "Enable automatic event capturing for Ruby on Rails.",
|
409
409
|
default: true,
|
410
410
|
type: Boolean
|
411
411
|
},
|
412
|
-
|
413
|
-
description:
|
412
|
+
"rails.insights.metrics": {
|
413
|
+
description: "Enable automatic metric data collection for Ruby on Rails.",
|
414
414
|
default: false,
|
415
415
|
type: Boolean
|
416
416
|
},
|
417
|
-
|
418
|
-
description:
|
417
|
+
"karafka.insights.enabled": {
|
418
|
+
description: "Enable automatic data collection for Karafka.",
|
419
419
|
default: true,
|
420
420
|
type: Boolean
|
421
421
|
},
|
422
|
-
|
423
|
-
description:
|
422
|
+
"karafka.insights.events": {
|
423
|
+
description: "Enable automatic event capturing for Karafka.",
|
424
424
|
default: true,
|
425
425
|
type: Boolean
|
426
426
|
},
|
427
|
-
|
428
|
-
description:
|
427
|
+
"karafka.insights.metrics": {
|
428
|
+
description: "Enable automatic metric data collection for Karafka.",
|
429
429
|
default: false,
|
430
430
|
type: Boolean
|
431
431
|
},
|
432
|
-
|
433
|
-
description:
|
432
|
+
"net_http.insights.enabled": {
|
433
|
+
description: "Allow automatic instrumentation of Net::HTTP requests.",
|
434
434
|
default: true,
|
435
435
|
type: Boolean
|
436
436
|
},
|
437
|
-
|
438
|
-
description:
|
437
|
+
"net_http.insights.events": {
|
438
|
+
description: "Enable automatic event capturing for Net::HTTP requests.",
|
439
439
|
default: true,
|
440
440
|
type: Boolean
|
441
441
|
},
|
442
|
-
|
443
|
-
description:
|
442
|
+
"net_http.insights.metrics": {
|
443
|
+
description: "Enable automatic metric data collection for Net::HTTP requests.",
|
444
444
|
default: false,
|
445
445
|
type: Boolean
|
446
446
|
},
|
447
|
-
|
448
|
-
description:
|
447
|
+
"net_http.insights.full_url": {
|
448
|
+
description: "Record the full request url during instrumentation.",
|
449
449
|
default: false,
|
450
450
|
type: Boolean
|
451
451
|
},
|
452
|
-
|
453
|
-
description:
|
452
|
+
"sinatra.enabled": {
|
453
|
+
description: "Enable Sinatra auto-initialization.",
|
454
454
|
default: true,
|
455
455
|
type: Boolean
|
456
456
|
},
|
457
|
-
|
457
|
+
"rails.subscriber_ignore_sources": {
|
458
458
|
description: "Sources (strings or regexes) that should be ignored when using the Rails' (7+) native error reporter (handled exceptions only).",
|
459
459
|
# External libraries (eg Sidekiq, Resque) may wrap their execution in Rails' executor.
|
460
460
|
# But this means errors will first be reported by Rails.error, before the library's native error handler
|
461
461
|
# We ignore these reports, since the native error handler provides more context (such as job details)
|
462
|
-
default: [
|
462
|
+
default: ["application.active_support"],
|
463
463
|
type: Array
|
464
464
|
},
|
465
|
-
|
466
|
-
description:
|
465
|
+
"resque.resque_retry.send_exceptions_when_retrying": {
|
466
|
+
description: "Send exceptions when retrying job.",
|
467
467
|
default: true,
|
468
468
|
type: Boolean
|
469
469
|
},
|
470
|
-
|
471
|
-
description:
|
470
|
+
"breadcrumbs.enabled": {
|
471
|
+
description: "Disable breadcrumb functionality.",
|
472
472
|
default: true,
|
473
473
|
type: Boolean
|
474
474
|
},
|
475
|
-
|
476
|
-
description:
|
475
|
+
"breadcrumbs.active_support_notifications": {
|
476
|
+
description: "Configuration for automatic Active Support Instrumentation events.",
|
477
477
|
default: Breadcrumbs::ActiveSupport.default_notifications,
|
478
478
|
type: Hash
|
479
479
|
},
|
480
|
-
|
481
|
-
description:
|
480
|
+
"breadcrumbs.logging.enabled": {
|
481
|
+
description: "Enable/Disable automatic breadcrumbs from log messages.",
|
482
482
|
default: true,
|
483
483
|
type: Boolean
|
484
484
|
},
|
485
|
-
|
485
|
+
"insights.enabled": {
|
486
486
|
description: "Enable/Disable Honeybadger Insights built-in instrumentation.",
|
487
|
-
default:
|
487
|
+
default: true,
|
488
488
|
type: Boolean
|
489
489
|
},
|
490
|
-
|
490
|
+
"insights.console.enabled": {
|
491
491
|
description: "Enable/Disable Honeybadger Insights built-in instrumentation in a Rails console.",
|
492
492
|
default: false,
|
493
493
|
type: Boolean
|
494
494
|
},
|
495
|
-
|
495
|
+
"insights.registry_flush_interval": {
|
496
496
|
description: "Number of seconds between registry flushes.",
|
497
497
|
default: 60,
|
498
498
|
type: Integer
|
499
499
|
},
|
500
|
-
|
501
|
-
description:
|
500
|
+
"puma.insights.events": {
|
501
|
+
description: "Enable automatic event capturing for Puma stats.",
|
502
502
|
default: true,
|
503
503
|
type: Boolean
|
504
504
|
},
|
505
|
-
|
506
|
-
description:
|
505
|
+
"puma.insights.metrics": {
|
506
|
+
description: "Enable automatic metric data aggregation for Puma stats.",
|
507
507
|
default: false,
|
508
508
|
type: Boolean
|
509
509
|
},
|
510
|
-
|
511
|
-
description:
|
510
|
+
"puma.insights.collection_interval": {
|
511
|
+
description: "The frequency in which the Honeybadger gem will collect Puma stats.",
|
512
512
|
default: 1,
|
513
513
|
type: Integer
|
514
514
|
},
|
515
|
-
|
516
|
-
description:
|
515
|
+
"autotuner.insights.events": {
|
516
|
+
description: "Enable automatic event capturing for Autotuner stats.",
|
517
517
|
default: true,
|
518
518
|
type: Boolean
|
519
519
|
},
|
520
|
-
|
521
|
-
description:
|
520
|
+
"autotuner.insights.metrics": {
|
521
|
+
description: "Enable automatic metric data aggregation for Autotuner stats.",
|
522
522
|
default: false,
|
523
523
|
type: Boolean
|
524
524
|
}
|
525
525
|
}.freeze
|
526
526
|
|
527
|
-
DEFAULTS =
|
527
|
+
DEFAULTS = OPTIONS.map { |k, v| [k, v[:default]] }.to_h.freeze
|
528
528
|
end
|
529
529
|
end
|