honeybadger 6.6.1 → 6.7.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 +17 -0
- data/lib/honeybadger/backend/base.rb +1 -0
- data/lib/honeybadger/backtrace.rb +8 -3
- data/lib/honeybadger/breadcrumbs/logging.rb +77 -8
- data/lib/honeybadger/config/defaults.rb +6 -0
- data/lib/honeybadger/config/ruby.rb +49 -9
- data/lib/honeybadger/config.rb +4 -0
- data/lib/honeybadger/events_worker.rb +1 -1
- data/lib/honeybadger/notice.rb +2 -1
- data/lib/honeybadger/plugins/breadcrumbs.rb +5 -1
- data/lib/honeybadger/version.rb +1 -1
- data/lib/honeybadger/worker.rb +19 -2
- metadata +197 -193
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: afa4582b4bb18d1f9afc94a2c551ceb45643ef57be27e071f4878970bde4dfdb
|
|
4
|
+
data.tar.gz: e80f53bbd49fd9db0d0334b5fceb9d0153a4e78272fb460209e6741300299e0d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d4086244d6d9857f5a49be22a889ca5b3b9bb789bc9015ff08732810428930e03d9b0e4b56149f670c3b1e5321497d795c5af9f21290630b80ed83c117aaa71d
|
|
7
|
+
data.tar.gz: f81135eefd9c61f33f27666e3e7ea7c94537dddaa19cc5e770765505f322ad62bf2096469a7abc2395bb1f0e78a9ea43309592c3580aae47e158299178cf6dd1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## [6.7.0](https://github.com/honeybadger-io/honeybadger-ruby/compare/v6.6.2...v6.7.0) (2026-06-05)
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* add after_notify hooks ([#825](https://github.com/honeybadger-io/honeybadger-ruby/issues/825)) ([950fee2](https://github.com/honeybadger-io/honeybadger-ruby/commit/950fee2bb2ab81ebbfa20ea34b36045bd6b57034))
|
|
10
|
+
* make backtrace limit configurable ([#824](https://github.com/honeybadger-io/honeybadger-ruby/issues/824)) ([f62ce3a](https://github.com/honeybadger-io/honeybadger-ruby/commit/f62ce3ab09ffa497fbfb2ec1fa193359b66b1a23))
|
|
11
|
+
|
|
12
|
+
## [6.6.2](https://github.com/honeybadger-io/honeybadger-ruby/compare/v6.6.0...v6.6.1) (2026-05-29)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* avoid duplicate BroadcastLogger breadcrumbs ([#814](https://github.com/honeybadger-io/honeybadger-ruby/issues/814)) ([4f5c5e0](https://github.com/honeybadger-io/honeybadger-ruby/commit/4f5c5e0dad934cc6a96f6444e257b733fd6471cf)), closes [#765](https://github.com/honeybadger-io/honeybadger-ruby/issues/765)
|
|
18
|
+
* change logging level for messages emitted in the development environment ([b615c83](https://github.com/honeybadger-io/honeybadger-ruby/commit/b615c83a75b8fcb45cd8b775696a6231e5c4e107))
|
|
19
|
+
* log the real reason for 403 responses ([#822](https://github.com/honeybadger-io/honeybadger-ruby/issues/822)) ([0338892](https://github.com/honeybadger-io/honeybadger-ruby/commit/03388926bb0cbb22f647860437565abf5bafd526))
|
|
20
|
+
|
|
4
21
|
## [6.6.1](https://github.com/honeybadger-io/honeybadger-ruby/compare/v6.6.0...v6.6.1) (2026-05-15)
|
|
5
22
|
|
|
6
23
|
|
|
@@ -50,6 +50,7 @@ module Honeybadger
|
|
|
50
50
|
|
|
51
51
|
def error_message
|
|
52
52
|
return message if code == :error
|
|
53
|
+
return error if code == 403 && NOT_BLANK.match?(error)
|
|
53
54
|
return FRIENDLY_ERRORS[code] if FRIENDLY_ERRORS[code]
|
|
54
55
|
return error if NOT_BLANK.match?(error)
|
|
55
56
|
msg = "The server responded with #{code}"
|
|
@@ -4,6 +4,8 @@ module Honeybadger
|
|
|
4
4
|
# @api private
|
|
5
5
|
# Front end to parsing the backtrace for each notice.
|
|
6
6
|
class Backtrace
|
|
7
|
+
DEFAULT_LIMIT = 1000
|
|
8
|
+
|
|
7
9
|
# Handles backtrace parsing line by line.
|
|
8
10
|
class Line
|
|
9
11
|
# Backtrace line regexp (optionally allowing leading X: for windows support).
|
|
@@ -122,19 +124,20 @@ module Honeybadger
|
|
|
122
124
|
Line.parse(unparsed_line.to_s, opts)
|
|
123
125
|
end.compact
|
|
124
126
|
|
|
125
|
-
new(lines)
|
|
127
|
+
new(lines, opts.fetch(:limit, DEFAULT_LIMIT))
|
|
126
128
|
end
|
|
127
129
|
|
|
128
|
-
def initialize(lines)
|
|
130
|
+
def initialize(lines, limit = DEFAULT_LIMIT)
|
|
129
131
|
self.lines = lines
|
|
130
132
|
self.application_lines = lines.select(&:application?)
|
|
133
|
+
self.limit = limit || DEFAULT_LIMIT
|
|
131
134
|
end
|
|
132
135
|
|
|
133
136
|
# Convert Backtrace to arry.
|
|
134
137
|
#
|
|
135
138
|
# Returns array containing backtrace lines.
|
|
136
139
|
def to_ary
|
|
137
|
-
lines.take(
|
|
140
|
+
lines.take(limit.clamp(0..)).map { |l| {number: l.filtered_number, file: l.filtered_file, method: l.filtered_method, source: l.source} }
|
|
138
141
|
end
|
|
139
142
|
alias_method :to_a, :to_ary
|
|
140
143
|
|
|
@@ -172,6 +175,8 @@ module Honeybadger
|
|
|
172
175
|
|
|
173
176
|
attr_writer :lines, :application_lines
|
|
174
177
|
|
|
178
|
+
attr_accessor :limit
|
|
179
|
+
|
|
175
180
|
class << self
|
|
176
181
|
private
|
|
177
182
|
|
|
@@ -1,12 +1,23 @@
|
|
|
1
|
+
require "logger"
|
|
1
2
|
require "honeybadger/util/sanitizer"
|
|
2
3
|
|
|
3
4
|
module Honeybadger
|
|
4
5
|
module Breadcrumbs
|
|
5
6
|
# @api private
|
|
6
7
|
#
|
|
7
|
-
module
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
module LogHelper
|
|
9
|
+
LOG_SEVERITY_LABELS = {
|
|
10
|
+
::Logger::DEBUG => "DEBUG",
|
|
11
|
+
::Logger::INFO => "INFO",
|
|
12
|
+
::Logger::WARN => "WARN",
|
|
13
|
+
::Logger::ERROR => "ERROR",
|
|
14
|
+
::Logger::FATAL => "FATAL",
|
|
15
|
+
::Logger::UNKNOWN => "ANY"
|
|
16
|
+
}.freeze
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
def add_log_breadcrumb(severity, message = nil, progname = nil)
|
|
10
21
|
if defined?(Dry::Logger::Entry) && progname.is_a?(Dry::Logger::Entry) # Hanami uses dry-logger
|
|
11
22
|
message, progname = progname.message || progname.exception, progname.progname
|
|
12
23
|
elsif message.nil?
|
|
@@ -15,24 +26,81 @@ module Honeybadger
|
|
|
15
26
|
message &&= Util::Sanitizer.sanitize(message.to_s)&.strip
|
|
16
27
|
unless should_ignore_log?(message, progname)
|
|
17
28
|
Honeybadger.add_breadcrumb(message, category: :log, metadata: {
|
|
18
|
-
severity:
|
|
29
|
+
severity: log_severity_label(severity),
|
|
19
30
|
progname: progname
|
|
20
31
|
})
|
|
21
32
|
end
|
|
22
|
-
|
|
23
|
-
super(org_severity, org_message, org_progname)
|
|
24
33
|
end
|
|
25
34
|
|
|
26
|
-
|
|
35
|
+
def log_severity_label(severity)
|
|
36
|
+
if self.class.method_defined?(:format_severity) || self.class.private_method_defined?(:format_severity)
|
|
37
|
+
return format_severity(severity)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
LOG_SEVERITY_LABELS.fetch(severity, severity)
|
|
41
|
+
end
|
|
27
42
|
|
|
28
43
|
def should_ignore_log?(message, progname)
|
|
29
44
|
message.nil? ||
|
|
30
45
|
message == "" ||
|
|
31
46
|
Thread.current[:__hb_within_log_subscriber] ||
|
|
47
|
+
Thread.current[:__hb_within_broadcast_logger] ||
|
|
32
48
|
progname == "honeybadger"
|
|
33
49
|
end
|
|
34
50
|
end
|
|
35
51
|
|
|
52
|
+
module LogWrapper
|
|
53
|
+
include LogHelper
|
|
54
|
+
|
|
55
|
+
def add(severity, message = nil, progname = nil, &block)
|
|
56
|
+
org_severity, org_message, org_progname = severity, message, progname
|
|
57
|
+
add_log_breadcrumb(severity, message, progname)
|
|
58
|
+
|
|
59
|
+
super(org_severity, org_message, org_progname, &block)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# @api private
|
|
64
|
+
#
|
|
65
|
+
# ActiveSupport::BroadcastLogger forwards one logical log event to multiple
|
|
66
|
+
# Logger instances. Wrapping it separately records the event once while
|
|
67
|
+
# silencing the sink loggers for the duration of the broadcast.
|
|
68
|
+
module BroadcastLogWrapper
|
|
69
|
+
include LogHelper
|
|
70
|
+
|
|
71
|
+
LOG_METHOD_SEVERITIES = {
|
|
72
|
+
debug: ::Logger::DEBUG,
|
|
73
|
+
info: ::Logger::INFO,
|
|
74
|
+
warn: ::Logger::WARN,
|
|
75
|
+
error: ::Logger::ERROR,
|
|
76
|
+
fatal: ::Logger::FATAL,
|
|
77
|
+
unknown: ::Logger::UNKNOWN
|
|
78
|
+
}.freeze
|
|
79
|
+
|
|
80
|
+
def add(severity, message = nil, progname = nil, &block)
|
|
81
|
+
add_log_breadcrumb(severity, message, progname)
|
|
82
|
+
without_sink_breadcrumbs { super(severity, message, progname, &block) }
|
|
83
|
+
end
|
|
84
|
+
alias_method :log, :add
|
|
85
|
+
|
|
86
|
+
LOG_METHOD_SEVERITIES.each do |level, severity|
|
|
87
|
+
define_method(level) do |progname = nil, &block|
|
|
88
|
+
add_log_breadcrumb(severity, nil, progname)
|
|
89
|
+
without_sink_breadcrumbs { super(progname, &block) }
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
private
|
|
94
|
+
|
|
95
|
+
def without_sink_breadcrumbs
|
|
96
|
+
previous = Thread.current[:__hb_within_broadcast_logger]
|
|
97
|
+
Thread.current[:__hb_within_broadcast_logger] = true
|
|
98
|
+
yield
|
|
99
|
+
ensure
|
|
100
|
+
Thread.current[:__hb_within_broadcast_logger] = previous
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
|
|
36
104
|
# @api private
|
|
37
105
|
#
|
|
38
106
|
# This module is designed to be prepended into the
|
|
@@ -43,10 +111,11 @@ module Honeybadger
|
|
|
43
111
|
module LogSubscriberInjector
|
|
44
112
|
%w[info debug warn error fatal unknown].each do |level|
|
|
45
113
|
define_method(level) do |*args, &block|
|
|
114
|
+
previous = Thread.current[:__hb_within_log_subscriber]
|
|
46
115
|
Thread.current[:__hb_within_log_subscriber] = true
|
|
47
116
|
super(*args, &block)
|
|
48
117
|
ensure
|
|
49
|
-
Thread.current[:__hb_within_log_subscriber] =
|
|
118
|
+
Thread.current[:__hb_within_log_subscriber] = previous
|
|
50
119
|
end
|
|
51
120
|
end
|
|
52
121
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
require "socket"
|
|
2
2
|
require "honeybadger/breadcrumbs/active_support"
|
|
3
|
+
require "honeybadger/backtrace"
|
|
3
4
|
|
|
4
5
|
module Honeybadger
|
|
5
6
|
class Config
|
|
@@ -321,6 +322,11 @@ module Honeybadger
|
|
|
321
322
|
default: 2,
|
|
322
323
|
type: Integer
|
|
323
324
|
},
|
|
325
|
+
"exceptions.backtrace_limit": {
|
|
326
|
+
description: "The maximum number of backtrace lines to include in error reports.",
|
|
327
|
+
default: Backtrace::DEFAULT_LIMIT,
|
|
328
|
+
type: Integer
|
|
329
|
+
},
|
|
324
330
|
"exceptions.local_variables": {
|
|
325
331
|
description: "Enable sending local variables. Requires binding_of_caller to be loaded.",
|
|
326
332
|
default: false,
|
|
@@ -89,21 +89,61 @@ module Honeybadger
|
|
|
89
89
|
def before_notify(action = nil, &block)
|
|
90
90
|
hooks = Array(get(:before_notify)).dup
|
|
91
91
|
|
|
92
|
-
if action &&
|
|
92
|
+
if action && validate_hook_action(action, "before notify", 1)
|
|
93
93
|
hooks << action
|
|
94
|
-
elsif block_given? &&
|
|
94
|
+
elsif block_given? && validate_hook_action(block, "before notify", 1)
|
|
95
95
|
hooks << block
|
|
96
96
|
end
|
|
97
97
|
|
|
98
98
|
hash[:before_notify] = hooks
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
+
# Run a hook after each error notice delivery attempt.
|
|
102
|
+
#
|
|
103
|
+
# The hook is called for every backend response, including successful
|
|
104
|
+
# deliveries. Response codes are usually HTTP status integers, but may be
|
|
105
|
+
# symbols such as :stubbed or :error for non-server backends or connection
|
|
106
|
+
# failures. Filter with exact response codes (e.g. `response.code == 413`)
|
|
107
|
+
# rather than broad integer comparisons, or use `response.success?`.
|
|
108
|
+
# (Note: `response.error_message` may raise for non-HTTP responses like `:stubbed`.)
|
|
109
|
+
#
|
|
110
|
+
# Prefer `Honeybadger.event` for reporting failed notice deliveries. Calling
|
|
111
|
+
# `Honeybadger.notify` from this hook can trigger another after_notify call;
|
|
112
|
+
# guard against self-reporting loops if a notice must be sent.
|
|
113
|
+
#
|
|
114
|
+
# @example Report oversized notice payloads
|
|
115
|
+
# config.after_notify do |notice, response|
|
|
116
|
+
# next unless response.code == 413
|
|
117
|
+
#
|
|
118
|
+
# Honeybadger.event("honeybadger.notice_rejected", {
|
|
119
|
+
# reason: "payload_too_large",
|
|
120
|
+
# notice_id: notice.id,
|
|
121
|
+
# payload_bytes: notice.to_json.bytesize
|
|
122
|
+
# })
|
|
123
|
+
# end
|
|
124
|
+
#
|
|
125
|
+
# @yieldparam notice [Honeybadger::Notice] The notice that was sent.
|
|
126
|
+
# @yieldparam response [Honeybadger::Backend::Response] The backend response.
|
|
127
|
+
# @return [Array<Proc>] configured hooks
|
|
128
|
+
# @api public
|
|
129
|
+
def after_notify(action = nil, &block)
|
|
130
|
+
hooks = Array(get(:after_notify)).dup
|
|
131
|
+
|
|
132
|
+
if action && validate_hook_action(action, "after notify", 2)
|
|
133
|
+
hooks << action
|
|
134
|
+
elsif block_given? && validate_hook_action(block, "after notify", 2)
|
|
135
|
+
hooks << block
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
hash[:after_notify] = hooks
|
|
139
|
+
end
|
|
140
|
+
|
|
101
141
|
def before_event(action = nil, &block)
|
|
102
142
|
hooks = Array(get(:before_event)).dup
|
|
103
143
|
|
|
104
|
-
if action &&
|
|
144
|
+
if action && validate_hook_action(action, "before event", 1)
|
|
105
145
|
hooks << action
|
|
106
|
-
elsif block_given? &&
|
|
146
|
+
elsif block_given? && validate_hook_action(block, "before event", 1)
|
|
107
147
|
hooks << block
|
|
108
148
|
end
|
|
109
149
|
|
|
@@ -139,18 +179,18 @@ module Honeybadger
|
|
|
139
179
|
|
|
140
180
|
private
|
|
141
181
|
|
|
142
|
-
def
|
|
182
|
+
def validate_hook_action(action, name, arity)
|
|
143
183
|
if !action.respond_to?(:call)
|
|
144
184
|
logger.warn(
|
|
145
|
-
"You attempted to add a
|
|
185
|
+
"You attempted to add a #{name} hook that does not respond " \
|
|
146
186
|
"to #call. We are discarding this hook so your intended behavior " \
|
|
147
187
|
"will not occur."
|
|
148
188
|
)
|
|
149
189
|
false
|
|
150
|
-
elsif action.arity !=
|
|
190
|
+
elsif action.arity != arity
|
|
151
191
|
logger.warn(
|
|
152
|
-
"You attempted to add a
|
|
153
|
-
"other than
|
|
192
|
+
"You attempted to add a #{name} hook that has an arity " \
|
|
193
|
+
"other than #{arity}. We are discarding this hook so your intended " \
|
|
154
194
|
"behavior will not occur."
|
|
155
195
|
)
|
|
156
196
|
false
|
data/lib/honeybadger/config.rb
CHANGED
|
@@ -294,7 +294,7 @@ module Honeybadger
|
|
|
294
294
|
warn { sprintf("Insights Event send failed: payment is required. code=%s", response.code) }
|
|
295
295
|
suspend(3600)
|
|
296
296
|
when 403
|
|
297
|
-
warn { sprintf("Insights Event send failed:
|
|
297
|
+
warn { sprintf("Insights Event send failed: %s code=%s", response.error_message, response.code) }
|
|
298
298
|
suspend(3600)
|
|
299
299
|
when 413
|
|
300
300
|
warn { sprintf("Insights Event send failed: Payload is too large. code=%s", response.code) }
|
data/lib/honeybadger/notice.rb
CHANGED
|
@@ -509,7 +509,8 @@ module Honeybadger
|
|
|
509
509
|
backtrace,
|
|
510
510
|
filters: construct_backtrace_filters(opts),
|
|
511
511
|
config: config,
|
|
512
|
-
source_radius: config[:"exceptions.source_radius"]
|
|
512
|
+
source_radius: config[:"exceptions.source_radius"],
|
|
513
|
+
limit: config[:"exceptions.backtrace_limit"]
|
|
513
514
|
).to_a
|
|
514
515
|
end
|
|
515
516
|
|
|
@@ -50,7 +50,11 @@ module Honeybadger
|
|
|
50
50
|
config[:"breadcrumbs.active_support_notifications"].each do |name, config|
|
|
51
51
|
RailsBreadcrumbs.subscribe_to_notification(name, config)
|
|
52
52
|
end
|
|
53
|
-
|
|
53
|
+
|
|
54
|
+
if config[:"breadcrumbs.logging.enabled"]
|
|
55
|
+
ActiveSupport::LogSubscriber.prepend(Honeybadger::Breadcrumbs::LogSubscriberInjector)
|
|
56
|
+
ActiveSupport::BroadcastLogger.prepend(Honeybadger::Breadcrumbs::BroadcastLogWrapper) if defined?(ActiveSupport::BroadcastLogger)
|
|
57
|
+
end
|
|
54
58
|
end
|
|
55
59
|
|
|
56
60
|
::Logger.prepend(Honeybadger::Breadcrumbs::LogWrapper) if config[:"breadcrumbs.logging.enabled"]
|
data/lib/honeybadger/version.rb
CHANGED
data/lib/honeybadger/worker.rb
CHANGED
|
@@ -46,7 +46,9 @@ module Honeybadger
|
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def send_now(msg)
|
|
49
|
-
|
|
49
|
+
response = notify_backend(msg)
|
|
50
|
+
run_after_notify_hooks(msg, response)
|
|
51
|
+
handle_response(msg, response)
|
|
50
52
|
end
|
|
51
53
|
|
|
52
54
|
def shutdown(force = false)
|
|
@@ -189,6 +191,21 @@ module Honeybadger
|
|
|
189
191
|
backend.notify(:notices, payload)
|
|
190
192
|
end
|
|
191
193
|
|
|
194
|
+
def run_after_notify_hooks(msg, response)
|
|
195
|
+
config.after_notify_hooks.each do |hook|
|
|
196
|
+
with_error_handling { hook.call(msg, response) }
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
def with_error_handling
|
|
201
|
+
yield
|
|
202
|
+
rescue => ex
|
|
203
|
+
error {
|
|
204
|
+
msg = "Rescued an error in an after notify hook class=%s message=%s\n\t%s"
|
|
205
|
+
sprintf(msg, ex.class, ex.message.dump, Array(ex.backtrace).join("\n\t"))
|
|
206
|
+
}
|
|
207
|
+
end
|
|
208
|
+
|
|
192
209
|
def calc_throttle_interval
|
|
193
210
|
((BASE_THROTTLE**throttle) - 1).round(3)
|
|
194
211
|
end
|
|
@@ -221,7 +238,7 @@ module Honeybadger
|
|
|
221
238
|
warn { sprintf("Error report failed: payment is required. id=%s code=%s", msg.id, response.code) }
|
|
222
239
|
suspend(3600)
|
|
223
240
|
when 403
|
|
224
|
-
warn { sprintf("Error report failed:
|
|
241
|
+
warn { sprintf("Error report failed: %s id=%s code=%s", response.error_message, msg.id, response.code) }
|
|
225
242
|
suspend(3600)
|
|
226
243
|
when 413
|
|
227
244
|
warn { sprintf("Error report failed: Payload is too large. id=%s code=%s", msg.id, response.code) }
|
metadata
CHANGED
|
@@ -1,218 +1,222 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: honeybadger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 6.
|
|
4
|
+
version: 6.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Honeybadger Industries LLC
|
|
7
|
+
- Honeybadger Industries LLC
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
|
-
- !ruby/object:Gem::Dependency
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- !ruby/object:Gem::
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: logger
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
-
|
|
17
|
+
- ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: "0"
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
-
|
|
25
|
+
- ">="
|
|
26
|
+
- !ruby/object:Gem::Version
|
|
27
|
+
version: "0"
|
|
28
|
+
- !ruby/object:Gem::Dependency
|
|
29
|
+
name: ostruct
|
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
|
31
|
+
requirements:
|
|
32
|
+
-
|
|
33
|
+
- ">="
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: "0"
|
|
36
|
+
type: :runtime
|
|
37
|
+
prerelease: false
|
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
39
|
+
requirements:
|
|
40
|
+
-
|
|
41
|
+
- ">="
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: "0"
|
|
44
|
+
description: "Honeybadger.io unifies error tracking, performance and uptime monitoring, and logging in one powerfully simple platform. Detect, diagnose, and resolve production issues faster—so you can focus on building, not debugging."
|
|
43
45
|
email:
|
|
44
|
-
- support@honeybadger.io
|
|
46
|
+
- support@honeybadger.io
|
|
45
47
|
executables:
|
|
46
|
-
- honeybadger
|
|
48
|
+
- honeybadger
|
|
47
49
|
extensions: []
|
|
48
50
|
extra_rdoc_files: []
|
|
49
51
|
files:
|
|
50
|
-
- AGENTS.md
|
|
51
|
-
- CHANGELOG.md
|
|
52
|
-
- CLAUDE.md
|
|
53
|
-
- LICENSE
|
|
54
|
-
- README.md
|
|
55
|
-
- TROUBLESHOOTING.md
|
|
56
|
-
- bin/honeybadger
|
|
57
|
-
- lib/honeybadger.rb
|
|
58
|
-
- lib/honeybadger/agent.rb
|
|
59
|
-
- lib/honeybadger/backend.rb
|
|
60
|
-
- lib/honeybadger/backend/base.rb
|
|
61
|
-
- lib/honeybadger/backend/debug.rb
|
|
62
|
-
- lib/honeybadger/backend/null.rb
|
|
63
|
-
- lib/honeybadger/backend/server.rb
|
|
64
|
-
- lib/honeybadger/backend/test.rb
|
|
65
|
-
- lib/honeybadger/backtrace.rb
|
|
66
|
-
- lib/honeybadger/breadcrumbs.rb
|
|
67
|
-
- lib/honeybadger/breadcrumbs/active_support.rb
|
|
68
|
-
- lib/honeybadger/breadcrumbs/breadcrumb.rb
|
|
69
|
-
- lib/honeybadger/breadcrumbs/collector.rb
|
|
70
|
-
- lib/honeybadger/breadcrumbs/logging.rb
|
|
71
|
-
- lib/honeybadger/breadcrumbs/ring_buffer.rb
|
|
72
|
-
- lib/honeybadger/cli.rb
|
|
73
|
-
- lib/honeybadger/cli/deploy.rb
|
|
74
|
-
- lib/honeybadger/cli/exec.rb
|
|
75
|
-
- lib/honeybadger/cli/helpers.rb
|
|
76
|
-
- lib/honeybadger/cli/heroku.rb
|
|
77
|
-
- lib/honeybadger/cli/install.rb
|
|
78
|
-
- lib/honeybadger/cli/main.rb
|
|
79
|
-
- lib/honeybadger/cli/notify.rb
|
|
80
|
-
- lib/honeybadger/cli/test.rb
|
|
81
|
-
- lib/honeybadger/config.rb
|
|
82
|
-
- lib/honeybadger/config/defaults.rb
|
|
83
|
-
- lib/honeybadger/config/env.rb
|
|
84
|
-
- lib/honeybadger/config/ruby.rb
|
|
85
|
-
- lib/honeybadger/config/yaml.rb
|
|
86
|
-
- lib/honeybadger/const.rb
|
|
87
|
-
- lib/honeybadger/context_manager.rb
|
|
88
|
-
- lib/honeybadger/conversions.rb
|
|
89
|
-
- lib/honeybadger/counter.rb
|
|
90
|
-
- lib/honeybadger/event.rb
|
|
91
|
-
- lib/honeybadger/events_worker.rb
|
|
92
|
-
- lib/honeybadger/gauge.rb
|
|
93
|
-
- lib/honeybadger/histogram.rb
|
|
94
|
-
- lib/honeybadger/init/hanami.rb
|
|
95
|
-
- lib/honeybadger/init/rails.rb
|
|
96
|
-
- lib/honeybadger/init/rake.rb
|
|
97
|
-
- lib/honeybadger/init/ruby.rb
|
|
98
|
-
- lib/honeybadger/init/sinatra.rb
|
|
99
|
-
- lib/honeybadger/instrumentation.rb
|
|
100
|
-
- lib/honeybadger/instrumentation_helper.rb
|
|
101
|
-
- lib/honeybadger/karafka.rb
|
|
102
|
-
- lib/honeybadger/logging.rb
|
|
103
|
-
- lib/honeybadger/metric.rb
|
|
104
|
-
- lib/honeybadger/metrics_worker.rb
|
|
105
|
-
- lib/honeybadger/notice.rb
|
|
106
|
-
- lib/honeybadger/notification_subscriber.rb
|
|
107
|
-
- lib/honeybadger/plugin.rb
|
|
108
|
-
- lib/honeybadger/plugins/active_agent.rb
|
|
109
|
-
- lib/honeybadger/plugins/active_job.rb
|
|
110
|
-
- lib/honeybadger/plugins/autotuner.rb
|
|
111
|
-
- lib/honeybadger/plugins/breadcrumbs.rb
|
|
112
|
-
- lib/honeybadger/plugins/delayed_job.rb
|
|
113
|
-
- lib/honeybadger/plugins/delayed_job/plugin.rb
|
|
114
|
-
- lib/honeybadger/plugins/faktory.rb
|
|
115
|
-
- lib/honeybadger/plugins/flipper.rb
|
|
116
|
-
- lib/honeybadger/plugins/karafka.rb
|
|
117
|
-
- lib/honeybadger/plugins/lambda.rb
|
|
118
|
-
- lib/honeybadger/plugins/local_variables.rb
|
|
119
|
-
- lib/honeybadger/plugins/net_http.rb
|
|
120
|
-
- lib/honeybadger/plugins/passenger.rb
|
|
121
|
-
- lib/honeybadger/plugins/rails.rb
|
|
122
|
-
- lib/honeybadger/plugins/resque.rb
|
|
123
|
-
- lib/honeybadger/plugins/shoryuken.rb
|
|
124
|
-
- lib/honeybadger/plugins/sidekiq.rb
|
|
125
|
-
- lib/honeybadger/plugins/solid_queue.rb
|
|
126
|
-
- lib/honeybadger/plugins/sucker_punch.rb
|
|
127
|
-
- lib/honeybadger/plugins/system.rb
|
|
128
|
-
- lib/honeybadger/plugins/thor.rb
|
|
129
|
-
- lib/honeybadger/plugins/warden.rb
|
|
130
|
-
- lib/honeybadger/rack/error_notifier.rb
|
|
131
|
-
- lib/honeybadger/rack/user_feedback.rb
|
|
132
|
-
- lib/honeybadger/rack/user_informer.rb
|
|
133
|
-
- lib/honeybadger/registry.rb
|
|
134
|
-
- lib/honeybadger/registry_execution.rb
|
|
135
|
-
- lib/honeybadger/ruby.rb
|
|
136
|
-
- lib/honeybadger/singleton.rb
|
|
137
|
-
- lib/honeybadger/tasks.rb
|
|
138
|
-
- lib/honeybadger/templates/feedback_form.erb
|
|
139
|
-
- lib/honeybadger/timer.rb
|
|
140
|
-
- lib/honeybadger/util/http.rb
|
|
141
|
-
- lib/honeybadger/util/lambda.rb
|
|
142
|
-
- lib/honeybadger/util/request_hash.rb
|
|
143
|
-
- lib/honeybadger/util/request_payload.rb
|
|
144
|
-
- lib/honeybadger/util/revision.rb
|
|
145
|
-
- lib/honeybadger/util/sanitizer.rb
|
|
146
|
-
- lib/honeybadger/util/sql.rb
|
|
147
|
-
- lib/honeybadger/util/stats.rb
|
|
148
|
-
- lib/honeybadger/version.rb
|
|
149
|
-
- lib/honeybadger/worker.rb
|
|
150
|
-
- lib/puma/plugin/honeybadger.rb
|
|
151
|
-
- resources/ca-bundle.crt
|
|
152
|
-
- vendor/capistrano-honeybadger/lib/capistrano/honeybadger.rb
|
|
153
|
-
- vendor/capistrano-honeybadger/lib/capistrano/tasks/deploy.cap
|
|
154
|
-
- vendor/capistrano-honeybadger/lib/honeybadger/capistrano.rb
|
|
155
|
-
- vendor/capistrano-honeybadger/lib/honeybadger/capistrano/legacy.rb
|
|
156
|
-
- vendor/cli/inifile.rb
|
|
157
|
-
- vendor/cli/thor.rb
|
|
158
|
-
- vendor/cli/thor/actions.rb
|
|
159
|
-
- vendor/cli/thor/actions/create_file.rb
|
|
160
|
-
- vendor/cli/thor/actions/create_link.rb
|
|
161
|
-
- vendor/cli/thor/actions/directory.rb
|
|
162
|
-
- vendor/cli/thor/actions/empty_directory.rb
|
|
163
|
-
- vendor/cli/thor/actions/file_manipulation.rb
|
|
164
|
-
- vendor/cli/thor/actions/inject_into_file.rb
|
|
165
|
-
- vendor/cli/thor/base.rb
|
|
166
|
-
- vendor/cli/thor/command.rb
|
|
167
|
-
- vendor/cli/thor/core_ext/hash_with_indifferent_access.rb
|
|
168
|
-
- vendor/cli/thor/core_ext/io_binary_read.rb
|
|
169
|
-
- vendor/cli/thor/core_ext/ordered_hash.rb
|
|
170
|
-
- vendor/cli/thor/error.rb
|
|
171
|
-
- vendor/cli/thor/group.rb
|
|
172
|
-
- vendor/cli/thor/invocation.rb
|
|
173
|
-
- vendor/cli/thor/line_editor.rb
|
|
174
|
-
- vendor/cli/thor/line_editor/basic.rb
|
|
175
|
-
- vendor/cli/thor/line_editor/readline.rb
|
|
176
|
-
- vendor/cli/thor/parser.rb
|
|
177
|
-
- vendor/cli/thor/parser/argument.rb
|
|
178
|
-
- vendor/cli/thor/parser/arguments.rb
|
|
179
|
-
- vendor/cli/thor/parser/option.rb
|
|
180
|
-
- vendor/cli/thor/parser/options.rb
|
|
181
|
-
- vendor/cli/thor/rake_compat.rb
|
|
182
|
-
- vendor/cli/thor/runner.rb
|
|
183
|
-
- vendor/cli/thor/shell.rb
|
|
184
|
-
- vendor/cli/thor/shell/basic.rb
|
|
185
|
-
- vendor/cli/thor/shell/color.rb
|
|
186
|
-
- vendor/cli/thor/shell/html.rb
|
|
187
|
-
- vendor/cli/thor/util.rb
|
|
188
|
-
- vendor/cli/thor/version.rb
|
|
189
|
-
homepage: https://www.honeybadger.io/for/ruby/
|
|
52
|
+
- AGENTS.md
|
|
53
|
+
- CHANGELOG.md
|
|
54
|
+
- CLAUDE.md
|
|
55
|
+
- LICENSE
|
|
56
|
+
- README.md
|
|
57
|
+
- TROUBLESHOOTING.md
|
|
58
|
+
- bin/honeybadger
|
|
59
|
+
- lib/honeybadger.rb
|
|
60
|
+
- lib/honeybadger/agent.rb
|
|
61
|
+
- lib/honeybadger/backend.rb
|
|
62
|
+
- lib/honeybadger/backend/base.rb
|
|
63
|
+
- lib/honeybadger/backend/debug.rb
|
|
64
|
+
- lib/honeybadger/backend/null.rb
|
|
65
|
+
- lib/honeybadger/backend/server.rb
|
|
66
|
+
- lib/honeybadger/backend/test.rb
|
|
67
|
+
- lib/honeybadger/backtrace.rb
|
|
68
|
+
- lib/honeybadger/breadcrumbs.rb
|
|
69
|
+
- lib/honeybadger/breadcrumbs/active_support.rb
|
|
70
|
+
- lib/honeybadger/breadcrumbs/breadcrumb.rb
|
|
71
|
+
- lib/honeybadger/breadcrumbs/collector.rb
|
|
72
|
+
- lib/honeybadger/breadcrumbs/logging.rb
|
|
73
|
+
- lib/honeybadger/breadcrumbs/ring_buffer.rb
|
|
74
|
+
- lib/honeybadger/cli.rb
|
|
75
|
+
- lib/honeybadger/cli/deploy.rb
|
|
76
|
+
- lib/honeybadger/cli/exec.rb
|
|
77
|
+
- lib/honeybadger/cli/helpers.rb
|
|
78
|
+
- lib/honeybadger/cli/heroku.rb
|
|
79
|
+
- lib/honeybadger/cli/install.rb
|
|
80
|
+
- lib/honeybadger/cli/main.rb
|
|
81
|
+
- lib/honeybadger/cli/notify.rb
|
|
82
|
+
- lib/honeybadger/cli/test.rb
|
|
83
|
+
- lib/honeybadger/config.rb
|
|
84
|
+
- lib/honeybadger/config/defaults.rb
|
|
85
|
+
- lib/honeybadger/config/env.rb
|
|
86
|
+
- lib/honeybadger/config/ruby.rb
|
|
87
|
+
- lib/honeybadger/config/yaml.rb
|
|
88
|
+
- lib/honeybadger/const.rb
|
|
89
|
+
- lib/honeybadger/context_manager.rb
|
|
90
|
+
- lib/honeybadger/conversions.rb
|
|
91
|
+
- lib/honeybadger/counter.rb
|
|
92
|
+
- lib/honeybadger/event.rb
|
|
93
|
+
- lib/honeybadger/events_worker.rb
|
|
94
|
+
- lib/honeybadger/gauge.rb
|
|
95
|
+
- lib/honeybadger/histogram.rb
|
|
96
|
+
- lib/honeybadger/init/hanami.rb
|
|
97
|
+
- lib/honeybadger/init/rails.rb
|
|
98
|
+
- lib/honeybadger/init/rake.rb
|
|
99
|
+
- lib/honeybadger/init/ruby.rb
|
|
100
|
+
- lib/honeybadger/init/sinatra.rb
|
|
101
|
+
- lib/honeybadger/instrumentation.rb
|
|
102
|
+
- lib/honeybadger/instrumentation_helper.rb
|
|
103
|
+
- lib/honeybadger/karafka.rb
|
|
104
|
+
- lib/honeybadger/logging.rb
|
|
105
|
+
- lib/honeybadger/metric.rb
|
|
106
|
+
- lib/honeybadger/metrics_worker.rb
|
|
107
|
+
- lib/honeybadger/notice.rb
|
|
108
|
+
- lib/honeybadger/notification_subscriber.rb
|
|
109
|
+
- lib/honeybadger/plugin.rb
|
|
110
|
+
- lib/honeybadger/plugins/active_agent.rb
|
|
111
|
+
- lib/honeybadger/plugins/active_job.rb
|
|
112
|
+
- lib/honeybadger/plugins/autotuner.rb
|
|
113
|
+
- lib/honeybadger/plugins/breadcrumbs.rb
|
|
114
|
+
- lib/honeybadger/plugins/delayed_job.rb
|
|
115
|
+
- lib/honeybadger/plugins/delayed_job/plugin.rb
|
|
116
|
+
- lib/honeybadger/plugins/faktory.rb
|
|
117
|
+
- lib/honeybadger/plugins/flipper.rb
|
|
118
|
+
- lib/honeybadger/plugins/karafka.rb
|
|
119
|
+
- lib/honeybadger/plugins/lambda.rb
|
|
120
|
+
- lib/honeybadger/plugins/local_variables.rb
|
|
121
|
+
- lib/honeybadger/plugins/net_http.rb
|
|
122
|
+
- lib/honeybadger/plugins/passenger.rb
|
|
123
|
+
- lib/honeybadger/plugins/rails.rb
|
|
124
|
+
- lib/honeybadger/plugins/resque.rb
|
|
125
|
+
- lib/honeybadger/plugins/shoryuken.rb
|
|
126
|
+
- lib/honeybadger/plugins/sidekiq.rb
|
|
127
|
+
- lib/honeybadger/plugins/solid_queue.rb
|
|
128
|
+
- lib/honeybadger/plugins/sucker_punch.rb
|
|
129
|
+
- lib/honeybadger/plugins/system.rb
|
|
130
|
+
- lib/honeybadger/plugins/thor.rb
|
|
131
|
+
- lib/honeybadger/plugins/warden.rb
|
|
132
|
+
- lib/honeybadger/rack/error_notifier.rb
|
|
133
|
+
- lib/honeybadger/rack/user_feedback.rb
|
|
134
|
+
- lib/honeybadger/rack/user_informer.rb
|
|
135
|
+
- lib/honeybadger/registry.rb
|
|
136
|
+
- lib/honeybadger/registry_execution.rb
|
|
137
|
+
- lib/honeybadger/ruby.rb
|
|
138
|
+
- lib/honeybadger/singleton.rb
|
|
139
|
+
- lib/honeybadger/tasks.rb
|
|
140
|
+
- lib/honeybadger/templates/feedback_form.erb
|
|
141
|
+
- lib/honeybadger/timer.rb
|
|
142
|
+
- lib/honeybadger/util/http.rb
|
|
143
|
+
- lib/honeybadger/util/lambda.rb
|
|
144
|
+
- lib/honeybadger/util/request_hash.rb
|
|
145
|
+
- lib/honeybadger/util/request_payload.rb
|
|
146
|
+
- lib/honeybadger/util/revision.rb
|
|
147
|
+
- lib/honeybadger/util/sanitizer.rb
|
|
148
|
+
- lib/honeybadger/util/sql.rb
|
|
149
|
+
- lib/honeybadger/util/stats.rb
|
|
150
|
+
- lib/honeybadger/version.rb
|
|
151
|
+
- lib/honeybadger/worker.rb
|
|
152
|
+
- lib/puma/plugin/honeybadger.rb
|
|
153
|
+
- resources/ca-bundle.crt
|
|
154
|
+
- vendor/capistrano-honeybadger/lib/capistrano/honeybadger.rb
|
|
155
|
+
- vendor/capistrano-honeybadger/lib/capistrano/tasks/deploy.cap
|
|
156
|
+
- vendor/capistrano-honeybadger/lib/honeybadger/capistrano.rb
|
|
157
|
+
- vendor/capistrano-honeybadger/lib/honeybadger/capistrano/legacy.rb
|
|
158
|
+
- vendor/cli/inifile.rb
|
|
159
|
+
- vendor/cli/thor.rb
|
|
160
|
+
- vendor/cli/thor/actions.rb
|
|
161
|
+
- vendor/cli/thor/actions/create_file.rb
|
|
162
|
+
- vendor/cli/thor/actions/create_link.rb
|
|
163
|
+
- vendor/cli/thor/actions/directory.rb
|
|
164
|
+
- vendor/cli/thor/actions/empty_directory.rb
|
|
165
|
+
- vendor/cli/thor/actions/file_manipulation.rb
|
|
166
|
+
- vendor/cli/thor/actions/inject_into_file.rb
|
|
167
|
+
- vendor/cli/thor/base.rb
|
|
168
|
+
- vendor/cli/thor/command.rb
|
|
169
|
+
- vendor/cli/thor/core_ext/hash_with_indifferent_access.rb
|
|
170
|
+
- vendor/cli/thor/core_ext/io_binary_read.rb
|
|
171
|
+
- vendor/cli/thor/core_ext/ordered_hash.rb
|
|
172
|
+
- vendor/cli/thor/error.rb
|
|
173
|
+
- vendor/cli/thor/group.rb
|
|
174
|
+
- vendor/cli/thor/invocation.rb
|
|
175
|
+
- vendor/cli/thor/line_editor.rb
|
|
176
|
+
- vendor/cli/thor/line_editor/basic.rb
|
|
177
|
+
- vendor/cli/thor/line_editor/readline.rb
|
|
178
|
+
- vendor/cli/thor/parser.rb
|
|
179
|
+
- vendor/cli/thor/parser/argument.rb
|
|
180
|
+
- vendor/cli/thor/parser/arguments.rb
|
|
181
|
+
- vendor/cli/thor/parser/option.rb
|
|
182
|
+
- vendor/cli/thor/parser/options.rb
|
|
183
|
+
- vendor/cli/thor/rake_compat.rb
|
|
184
|
+
- vendor/cli/thor/runner.rb
|
|
185
|
+
- vendor/cli/thor/shell.rb
|
|
186
|
+
- vendor/cli/thor/shell/basic.rb
|
|
187
|
+
- vendor/cli/thor/shell/color.rb
|
|
188
|
+
- vendor/cli/thor/shell/html.rb
|
|
189
|
+
- vendor/cli/thor/util.rb
|
|
190
|
+
- vendor/cli/thor/version.rb
|
|
191
|
+
homepage: "https://www.honeybadger.io/for/ruby/"
|
|
190
192
|
licenses:
|
|
191
|
-
- MIT
|
|
193
|
+
- MIT
|
|
192
194
|
metadata:
|
|
193
|
-
bug_tracker_uri: https://github.com/honeybadger-io/honeybadger-ruby/issues
|
|
194
|
-
changelog_uri: https://github.com/honeybadger-io/honeybadger-ruby/blob/master/CHANGELOG.md
|
|
195
|
-
documentation_uri: https://docs.honeybadger.io/lib/ruby/
|
|
196
|
-
homepage_uri: https://www.honeybadger.io/for/ruby/
|
|
197
|
-
source_code_uri: https://github.com/honeybadger-io/honeybadger-ruby
|
|
195
|
+
bug_tracker_uri: "https://github.com/honeybadger-io/honeybadger-ruby/issues"
|
|
196
|
+
changelog_uri: "https://github.com/honeybadger-io/honeybadger-ruby/blob/master/CHANGELOG.md"
|
|
197
|
+
documentation_uri: "https://docs.honeybadger.io/lib/ruby/"
|
|
198
|
+
homepage_uri: "https://www.honeybadger.io/for/ruby/"
|
|
199
|
+
source_code_uri: "https://github.com/honeybadger-io/honeybadger-ruby"
|
|
198
200
|
rdoc_options:
|
|
199
|
-
- "--markup=tomdoc"
|
|
200
|
-
- "--main=README.md"
|
|
201
|
+
- "--markup=tomdoc"
|
|
202
|
+
- "--main=README.md"
|
|
201
203
|
require_paths:
|
|
202
|
-
- lib
|
|
203
|
-
- vendor/capistrano-honeybadger/lib
|
|
204
|
+
- lib
|
|
205
|
+
- vendor/capistrano-honeybadger/lib
|
|
204
206
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
207
|
requirements:
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
208
|
+
-
|
|
209
|
+
- ">="
|
|
210
|
+
- !ruby/object:Gem::Version
|
|
211
|
+
version: 3.0.0
|
|
209
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
213
|
requirements:
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
+
-
|
|
215
|
+
- ">="
|
|
216
|
+
- !ruby/object:Gem::Version
|
|
217
|
+
version: "0"
|
|
214
218
|
requirements: []
|
|
215
|
-
rubygems_version:
|
|
219
|
+
rubygems_version: 4.1.0.dev
|
|
216
220
|
specification_version: 4
|
|
217
|
-
summary: Full-stack error tracking, performance monitoring, logging, and more.
|
|
221
|
+
summary: "Full-stack error tracking, performance monitoring, logging, and more."
|
|
218
222
|
test_files: []
|