failbot 0.9.5 → 0.9.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/lib/failbot.rb +18 -0
- data/lib/failbot/haystack.rb +7 -3
- data/lib/failbot/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 535bea1efe92287487fb8eca35fa79362b5a3467
|
4
|
+
data.tar.gz: 6e95a3258b3778cb4c832201431685fed770051f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 837e0d280e169632d08e79fb3f5703278f622a43fc7dbc3c36dec172d7fe8b46f90fa92d9634c8e2289186f1c7e0ccc218cae974931798c0f5002d833654e6a2
|
7
|
+
data.tar.gz: 75dd783805b131deda512d0234fa08a517e9482751aac30b2cdc5c05ad142430bde3531f6f749c2da451c089f815b24a3502122e9a1acd1ef527dc4ad190b77d
|
data/lib/failbot.rb
CHANGED
@@ -24,6 +24,9 @@ module Failbot
|
|
24
24
|
autoload :MemoryBackend, 'failbot/memory_backend'
|
25
25
|
autoload :JSONBackend, 'failbot/json_backend'
|
26
26
|
|
27
|
+
# prevent recursive calls to Failbot.report!
|
28
|
+
attr_accessor :already_reporting
|
29
|
+
|
27
30
|
# Public: Setup the backend for reporting exceptions.
|
28
31
|
def setup(settings={}, default_context={})
|
29
32
|
deprecated_settings = %w[
|
@@ -124,6 +127,15 @@ module Failbot
|
|
124
127
|
|
125
128
|
def report!(e, other = {})
|
126
129
|
data = squash_context(exception_info(e), other)
|
130
|
+
|
131
|
+
if already_reporting
|
132
|
+
logger.warn "FAILBOT: asked to report while reporting! #{data.inspect}" rescue nil
|
133
|
+
logger.warn e.message rescue nil
|
134
|
+
logger.warn e.backtrace.join("\n") rescue nil
|
135
|
+
return
|
136
|
+
end
|
137
|
+
|
138
|
+
self.already_reporting = true
|
127
139
|
backend.report(data)
|
128
140
|
rescue Object => i
|
129
141
|
# don't fail for any reason
|
@@ -132,6 +144,8 @@ module Failbot
|
|
132
144
|
logger.debug e.backtrace.join("\n") rescue nil
|
133
145
|
logger.debug i.message rescue nil
|
134
146
|
logger.debug i.backtrace.join("\n") rescue nil
|
147
|
+
ensure
|
148
|
+
self.already_reporting = false
|
135
149
|
end
|
136
150
|
|
137
151
|
# Public: exceptions that were reported. Only available when using the
|
@@ -186,6 +200,10 @@ module Failbot
|
|
186
200
|
'created_at' => Time.now.utc.iso8601(6)
|
187
201
|
}
|
188
202
|
|
203
|
+
if exception_context = (e.respond_to?(:failbot_context) && e.failbot_context)
|
204
|
+
res.merge!(exception_context)
|
205
|
+
end
|
206
|
+
|
189
207
|
if original = (e.respond_to?(:original_exception) && e.original_exception)
|
190
208
|
remote_backtrace = []
|
191
209
|
remote_backtrace << original.message
|
data/lib/failbot/haystack.rb
CHANGED
@@ -26,13 +26,17 @@ module Failbot
|
|
26
26
|
end
|
27
27
|
|
28
28
|
# make request
|
29
|
-
|
29
|
+
http = Net::HTTP.new(@url.host, @url.port)
|
30
30
|
|
31
31
|
# use SSL if applicable
|
32
|
-
|
32
|
+
http.use_ssl = true if @url.scheme == "https"
|
33
33
|
|
34
34
|
# push it through
|
35
|
-
|
35
|
+
response = http.request(post)
|
36
|
+
|
37
|
+
# Raise if the exception doesn't make it to Haystack, ensures the failure
|
38
|
+
# is logged
|
39
|
+
raise StandardError, "couldn't send exception to Haystack" unless response.code == "201"
|
36
40
|
end
|
37
41
|
|
38
42
|
def self.send_data(data)
|
data/lib/failbot/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: failbot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- '@rtomayko'
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-
|
13
|
+
date: 2014-08-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: yajl-ruby
|