errbase 0.1.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 96d03ceb36a030a5a1e59f99578815f39f09e97a
4
- data.tar.gz: 5f7fb72f40b262362f3e567c809041d8b43b66b6
2
+ SHA256:
3
+ metadata.gz: ec32c1052d88256d49d854bc68aa25410f0995d7bf1478db5425ea8e77c1e872
4
+ data.tar.gz: 133f93f8f9575547c825e70aed7d236632ba4936986a21317361ba26681a5cf7
5
5
  SHA512:
6
- metadata.gz: 865b7b4fa8c159e9a365b081da90f2c4a6ecfccf725991ce14d0fa856ee5899f2a9deecbff5e2f88ee2f276e082cf0458c2000baa51e99afece96a76c97ab742
7
- data.tar.gz: 3c082679a53f1294fa6717d62d68f871ecd3080113eaa6c327c078e1417b2d95d9549319cba958e091e60dee542d036275fa18b861f21de7ffaaa8c489420fe3
6
+ metadata.gz: 3f0f90db13c306409417cf576dba61dd35944439d8ec15378a348351706c98b9bc1a5fa82860c98346fd6c2c82cf92cfebe5bcdf016bfa0c8714e749a7353aa0
7
+ data.tar.gz: 86dedeb1d1262b2d0db60d7c907f3e9e1abb84b45cbfd65080338bd269c186732d7e26e83a9e51d5ac1d26247572909b7b293303fb816bcb85ee080eb6dab270
data/CHANGELOG.md CHANGED
@@ -1,4 +1,23 @@
1
- ## 0.1.0
1
+ ## 0.2.2 (2022-02-03)
2
+
3
+ - Added support for Scout APM
4
+ - Fixed warning with Appsignal
5
+
6
+ ## 0.2.1 (2021-01-03)
7
+
8
+ - Added support for `sentry-ruby` gem
9
+
10
+ ## 0.2.0 (2019-10-28)
11
+
12
+ - Added context to New Relic
13
+ - Removed support for Exceptional and Opbeat
14
+
15
+ ## 0.1.1 (2018-09-19)
16
+
17
+ - Added support for passing extra context
18
+ - Added New Relic
19
+
20
+ ## 0.1.0 (2018-02-27)
2
21
 
3
22
  - Rescue exceptions during reporting
4
23
  - Added support for Exception Notification and Stackdriver
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Andrew Kane
1
+ Copyright (c) 2014-2022 Andrew Kane
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,19 +1,19 @@
1
1
  # Errbase
2
2
 
3
- A common exception reporting library for a variety of services.
3
+ Common exception reporting for a variety of services
4
4
 
5
5
  Libraries are automatically detected. Supports:
6
6
 
7
7
  - [Airbrake](https://airbrake.io/)
8
8
  - [Appsignal](https://appsignal.com/)
9
9
  - [Bugsnag](https://bugsnag.com/)
10
- - [Exceptional](http://www.exceptional.io/)
11
10
  - [Exception Notification](https://github.com/smartinez87/exception_notification)
12
11
  - [Google Stackdriver](https://cloud.google.com/stackdriver/)
13
12
  - [Honeybadger](https://www.honeybadger.io/)
14
- - [Opbeat](https://opbeat.com/)
13
+ - [New Relic](https://newrelic.com/)
15
14
  - [Raygun](https://raygun.io/)
16
15
  - [Rollbar](https://rollbar.com/)
16
+ - [Scout APM](https://scoutapm.com/)
17
17
  - [Sentry](https://getsentry.com/)
18
18
 
19
19
  ```ruby
@@ -24,6 +24,16 @@ rescue => e
24
24
  end
25
25
  ```
26
26
 
27
+ You can add extra context with:
28
+
29
+ ```ruby
30
+ Errbase.report(e, {username: "hello"})
31
+ ```
32
+
33
+ > Context is not supported for Google Stackdriver
34
+
35
+ [![Build Status](https://github.com/ankane/errbase/workflows/build/badge.svg?branch=master)](https://github.com/ankane/errbase/actions)
36
+
27
37
  ## Installation
28
38
 
29
39
  Errbase is designed to be used as a dependency.
@@ -34,11 +44,6 @@ Add this line to your gemspec:
34
44
  spec.add_dependency "errbase"
35
45
  ```
36
46
 
37
- ## TODO
38
-
39
- - Ability to specify services
40
- - Support for more services
41
-
42
47
  ## Contributing
43
48
 
44
49
  Everyone is encouraged to help improve this project. Here are a few ways you can help:
@@ -47,3 +52,12 @@ Everyone is encouraged to help improve this project. Here are a few ways you can
47
52
  - Fix bugs and [submit pull requests](https://github.com/ankane/errbase/pulls)
48
53
  - Write, clarify, or fix documentation
49
54
  - Suggest or add new features
55
+
56
+ To get started with development:
57
+
58
+ ```sh
59
+ git clone https://github.com/ankane/errbase.git
60
+ cd errbase
61
+ bundle install
62
+ bundle exec rake test
63
+ ```
@@ -1,3 +1,3 @@
1
1
  module Errbase
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.2"
3
3
  end
data/lib/errbase.rb CHANGED
@@ -2,24 +2,46 @@ require "errbase/version"
2
2
 
3
3
  module Errbase
4
4
  class << self
5
- def report(e)
6
- Rollbar.error(e) if defined?(Rollbar)
7
- Airbrake.notify(e) if defined?(Airbrake)
8
- Honeybadger.notify(e) if defined?(Honeybadger)
9
- Exceptional.handle(e) if defined?(Exceptional)
10
- Raygun.track_exception(e) if defined?(Raygun)
11
- Raven.capture_exception(e) if defined?(Raven)
12
- Bugsnag.notify(e) if defined?(Bugsnag)
13
- Appsignal.send_exception(e) if defined?(Appsignal)
14
- if defined?(Opbeat)
15
- if Opbeat.respond_to?(:report)
16
- Opbeat.report(e)
5
+ def report(e, info = {})
6
+ Airbrake.notify(e, info) if defined?(Airbrake)
7
+
8
+ if defined?(Appsignal)
9
+ if Appsignal::VERSION.to_i >= 3
10
+ Appsignal.send_error(e) do |transaction|
11
+ transaction.set_tags(info)
12
+ end
17
13
  else
18
- Opbeat.capture_exception(e)
14
+ Appsignal.send_error(e, info)
15
+ end
16
+ end
17
+
18
+ if defined?(Bugsnag)
19
+ Bugsnag.notify(e) do |report|
20
+ report.add_tab(:info, info) if info.any?
19
21
  end
20
22
  end
21
- ExceptionNotifier.notify_exception(e) if defined?(ExceptionNotifier)
23
+
24
+ ExceptionNotifier.notify_exception(e, data: info) if defined?(ExceptionNotifier)
25
+
26
+ # TODO add info
22
27
  Google::Cloud::ErrorReporting.report(e) if defined?(Google::Cloud::ErrorReporting)
28
+
29
+ Honeybadger.notify(e, context: info) if defined?(Honeybadger)
30
+
31
+ NewRelic::Agent.notice_error(e, custom_params: info) if defined?(NewRelic::Agent)
32
+
33
+ Raven.capture_exception(e, extra: info) if defined?(Raven)
34
+
35
+ Raygun.track_exception(e, custom_data: info) if defined?(Raygun)
36
+
37
+ Rollbar.error(e, info) if defined?(Rollbar)
38
+
39
+ if defined?(ScoutApm::Error)
40
+ ScoutApm::Context.add(info)
41
+ ScoutApm::Error.capture(e)
42
+ end
43
+
44
+ Sentry.capture_exception(e, extra: info) if defined?(Sentry)
23
45
  rescue => e
24
46
  $stderr.puts "[errbase] Error reporting exception: #{e.class.name}: #{e.message}"
25
47
  end
metadata CHANGED
@@ -1,234 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: errbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-27 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.6'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: minitest
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '5'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '5'
55
- - !ruby/object:Gem::Dependency
56
- name: rollbar
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: airbrake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: honeybadger
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: exceptional
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: raygun4ruby
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: sentry-raven
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - ">="
130
- - !ruby/object:Gem::Version
131
- version: '0'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: bugsnag
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: appsignal
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: opbeat
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: exception_notification
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: google-cloud-error_reporting
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
- description: Common exception reporting for a variety of services
210
- email:
211
- - andrew@chartkick.com
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email: andrew@ankane.org
212
15
  executables: []
213
16
  extensions: []
214
17
  extra_rdoc_files: []
215
18
  files:
216
- - ".gitignore"
217
19
  - CHANGELOG.md
218
- - Gemfile
219
20
  - LICENSE.txt
220
21
  - README.md
221
- - Rakefile
222
- - errbase.gemspec
223
22
  - lib/errbase.rb
224
23
  - lib/errbase/version.rb
225
- - test/errbase_test.rb
226
- - test/test_helper.rb
227
24
  homepage: https://github.com/ankane/errbase
228
25
  licenses:
229
26
  - MIT
230
27
  metadata: {}
231
- post_install_message:
28
+ post_install_message:
232
29
  rdoc_options: []
233
30
  require_paths:
234
31
  - lib
@@ -236,18 +33,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
236
33
  requirements:
237
34
  - - ">="
238
35
  - !ruby/object:Gem::Version
239
- version: '0'
36
+ version: '2.4'
240
37
  required_rubygems_version: !ruby/object:Gem::Requirement
241
38
  requirements:
242
39
  - - ">="
243
40
  - !ruby/object:Gem::Version
244
41
  version: '0'
245
42
  requirements: []
246
- rubyforge_project:
247
- rubygems_version: 2.6.13
248
- signing_key:
43
+ rubygems_version: 3.3.3
44
+ signing_key:
249
45
  specification_version: 4
250
46
  summary: Common exception reporting for a variety of services
251
- test_files:
252
- - test/errbase_test.rb
253
- - test/test_helper.rb
47
+ test_files: []
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp
18
- *.bundle
19
- *.so
20
- *.o
21
- *.a
22
- mkmf.log
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- # Specify your gem's dependencies in errbase.gemspec
4
- gemspec
data/Rakefile DELETED
@@ -1,9 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- task default: :test
5
- Rake::TestTask.new do |t|
6
- t.libs << "test"
7
- t.pattern = "test/**/*_test.rb"
8
- t.warning = false
9
- end
data/errbase.gemspec DELETED
@@ -1,36 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "errbase/version"
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "errbase"
8
- spec.version = Errbase::VERSION
9
- spec.authors = ["Andrew Kane"]
10
- spec.email = ["andrew@chartkick.com"]
11
- spec.summary = "Common exception reporting for a variety of services"
12
- spec.description = "Common exception reporting for a variety of services"
13
- spec.homepage = "https://github.com/ankane/errbase"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
- spec.require_paths = ["lib"]
20
-
21
- spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake"
23
- spec.add_development_dependency "minitest", ">= 5"
24
-
25
- spec.add_development_dependency "rollbar"
26
- spec.add_development_dependency "airbrake"
27
- spec.add_development_dependency "honeybadger"
28
- spec.add_development_dependency "exceptional"
29
- spec.add_development_dependency "raygun4ruby"
30
- spec.add_development_dependency "sentry-raven"
31
- spec.add_development_dependency "bugsnag"
32
- spec.add_development_dependency "appsignal"
33
- spec.add_development_dependency "opbeat"
34
- spec.add_development_dependency "exception_notification"
35
- spec.add_development_dependency "google-cloud-error_reporting"
36
- end
data/test/errbase_test.rb DELETED
@@ -1,7 +0,0 @@
1
- require_relative "test_helper"
2
-
3
- class TestErrbase < Minitest::Test
4
- def test_errbase
5
- Errbase.report(RuntimeError.new("Boom"))
6
- end
7
- end
data/test/test_helper.rb DELETED
@@ -1,15 +0,0 @@
1
- require "bundler/setup"
2
- Bundler.require(:default)
3
- require "minitest/autorun"
4
- require "minitest/pride"
5
- require "rollbar"
6
- require "airbrake"
7
- require "honeybadger"
8
- # require "exceptional" # raises exception when not configured
9
- # require "raygun4ruby" # raises exception when not configured
10
- require "sentry-raven"
11
- require "bugsnag"
12
- require "appsignal"
13
- require "opbeat"
14
- require "exception_notification"
15
- # require "google/cloud/error_reporting" # raises exception when not configured