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