rollbar 2.7.1 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -0
- data/.gitmodules +3 -0
- data/.rubocop.yml +21 -0
- data/.travis.yml +1 -4
- data/CHANGELOG.md +25 -0
- data/README.md +146 -4
- data/Rakefile +5 -3
- data/data/rollbar.snippet.js +1 -0
- data/docs/configuration_options.md +281 -0
- data/lib/rollbar.rb +122 -32
- data/lib/rollbar/configuration.rb +18 -0
- data/lib/rollbar/exceptions.rb +3 -0
- data/lib/rollbar/js.rb +32 -0
- data/lib/rollbar/js/frameworks.rb +6 -0
- data/lib/rollbar/js/frameworks/rails.rb +29 -0
- data/lib/rollbar/js/middleware.rb +129 -0
- data/lib/rollbar/js/version.rb +5 -0
- data/lib/rollbar/lazy_store.rb +83 -0
- data/lib/rollbar/tasks/rollbar.cap +1 -1
- data/lib/rollbar/version.rb +1 -1
- data/lib/tasks/tasks.rake +13 -0
- data/rollbar.gemspec +1 -1
- data/spec/dummyapp/app/controllers/home_controller.rb +4 -0
- data/spec/dummyapp/app/views/js/test.html.erb +1 -0
- data/spec/dummyapp/app/views/layouts/simple.html.erb +18 -0
- data/spec/dummyapp/config/initializers/rollbar.rb +5 -2
- data/spec/dummyapp/config/routes.rb +1 -0
- data/spec/rollbar/js/frameworks/rails_spec.rb +19 -0
- data/spec/rollbar/js/middleware_spec.rb +154 -0
- data/spec/rollbar/lazy_store_spec.rb +99 -0
- data/spec/rollbar_spec.rb +272 -11
- data/spec/spec_helper.rb +2 -8
- metadata +26 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02b1f207b7667f4649a6c2805f73d8df71ba24ec
|
4
|
+
data.tar.gz: fe08097d60766f76e75baa4ebe133dc36d49fc3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 028215d0b1b0bbafc92b75b078618833a5e2c263c50333834d3c32c934fae9e97e412e9272dd3a4aaaf9b862c128f9857633e7d26e6d76714e9e7f6c4f919da4
|
7
|
+
data.tar.gz: 44b5505e3ac14dcaabce4b5ec2db7226c392e2991f1ea6e30500fb66c5feffdc60c5d439a262259747f0e59ef68ed865002369c46220eb9bf5d55904bd472919
|
data/.gitignore
CHANGED
data/.gitmodules
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- 'vendor/**/*'
|
4
|
+
- 'gemfiles/vendor/**/*'
|
5
|
+
|
6
|
+
Style/HashSyntax:
|
7
|
+
EnforcedStyle: hash_rockets
|
8
|
+
SupportedStyles:
|
9
|
+
- hash_rockets
|
10
|
+
|
11
|
+
Metrics/LineLength:
|
12
|
+
Max: 1000
|
13
|
+
|
14
|
+
Style/DoubleNegation:
|
15
|
+
Enabled: false
|
16
|
+
|
17
|
+
Style/Lambda:
|
18
|
+
Enabled: false
|
19
|
+
|
20
|
+
Style/EachWithObject:
|
21
|
+
Enabled: false
|
data/.travis.yml
CHANGED
@@ -22,8 +22,7 @@ jdk:
|
|
22
22
|
- oraclejdk7
|
23
23
|
- oraclejdk8
|
24
24
|
env:
|
25
|
-
-
|
26
|
-
- SKIP_DUMMY_ROLLBAR=false ROLLBAR_SSL_CERT_FILE=/home/travis/build/rollbar/rollbar-gem/spec/cacert.pem
|
25
|
+
- ROLLBAR_SSL_CERT_FILE=/home/travis/build/rollbar/rollbar-gem/spec/cacert.pem
|
27
26
|
gemfile:
|
28
27
|
- gemfiles/rails30.gemfile
|
29
28
|
- gemfiles/rails31.gemfile
|
@@ -40,8 +39,6 @@ matrix:
|
|
40
39
|
# Seems to work with oraclejdk7.
|
41
40
|
- rvm: jruby-19mode
|
42
41
|
jdk: openjdk7
|
43
|
-
env: SKIP_DUMMY_ROLLBAR=false
|
44
|
-
|
45
42
|
exclude:
|
46
43
|
# Don't run tests for non-jruby environments with the JDK.
|
47
44
|
# NOTE: openjdk7 is missing from these exclusions so that Travis will run at least 1 build for the given rvm.
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,30 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 2.8.0
|
4
|
+
|
5
|
+
New features:
|
6
|
+
|
7
|
+
- Add before_process and transform hooks. See [#375](https://github.com/rollbar/rollbar-gem/pull/375)
|
8
|
+
- Rollbar.js instrumentation. See [#382](https://github.com/rollbar/rollbar-gem/pull/382)
|
9
|
+
- Add `disable_rack_monkey_patch` configuration option. See [#377](https://github.com/rollbar/rollbar-gem/pull/377)
|
10
|
+
- Add Rubocop config. See [#379](https://github.com/rollbar/rollbar-gem/pull/379)
|
11
|
+
|
12
|
+
Bug fixes:
|
13
|
+
|
14
|
+
- Notify deploy only on primary `:rollbar_role` server. See [#368](https://github.com/rollbar/rollbar-gem/pull/368)
|
15
|
+
- Fix `Rollbar::Notifier#report_custom_data_error`. See [#376](https://github.com/rollbar/rollbar-gem/pull/376)
|
16
|
+
- Reset the notifier when we use `Rollbar.preconfigure`. See [#378](https://github.com/rollbar/rollbar-gem/pull/378)
|
17
|
+
- Fix sucker_punch tests. See [#372](https://github.com/rollbar/rollbar-gem/pull/372)
|
18
|
+
|
19
|
+
Docs:
|
20
|
+
|
21
|
+
- Add link from README to configuration. See [#383](https://github.com/rollbar/rollbar-gem/pull/383)
|
22
|
+
- Add rough draft of configuration options documentation. See [#373](https://github.com/rollbar/rollbar-gem/pull/373)
|
23
|
+
- Add plain ruby docs. See [#374](https://github.com/rollbar/rollbar-gem/pull/374)
|
24
|
+
- Document exception level filters. See [#366](https://github.com/rollbar/rollbar-gem/pull/366)
|
25
|
+
- Fix typo in README.md Sending backtrace without rescued exceptions. See [#364](https://github.com/rollbar/rollbar-gem/pull/364)
|
26
|
+
|
27
|
+
|
3
28
|
## 2.7.1
|
4
29
|
|
5
30
|
- Suggest using ROLLBAR_ENV for staging apps. See [#353](https://github.com/rollbar/rollbar-gem/pull/353).
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Rollbar notifier for Ruby [![Build Status](https://api.travis-ci.org/rollbar/rollbar-gem.svg?branch=v2.
|
1
|
+
# Rollbar notifier for Ruby [![Build Status](https://api.travis-ci.org/rollbar/rollbar-gem.svg?branch=v2.8.0)](https://travis-ci.org/rollbar/rollbar-gem/branches)
|
2
2
|
|
3
3
|
<!-- RemoveNext -->
|
4
4
|
[Rollbar](https://rollbar.com) is an error tracking service for Ruby and other languages. The Rollbar service will alert you of problems with your code and help you understand them in a ways never possible before. We love it and we hope you will too.
|
@@ -12,7 +12,7 @@ This is the Ruby library for Rollbar. It will instrument many kinds of Ruby appl
|
|
12
12
|
Add this line to your application's Gemfile:
|
13
13
|
|
14
14
|
```ruby
|
15
|
-
gem 'rollbar', '~> 2.
|
15
|
+
gem 'rollbar', '~> 2.8.0'
|
16
16
|
```
|
17
17
|
|
18
18
|
And then execute:
|
@@ -99,6 +99,57 @@ class MyApp < Sinatra::Base
|
|
99
99
|
end
|
100
100
|
```
|
101
101
|
|
102
|
+
### If using Plain Ruby
|
103
|
+
|
104
|
+
Rollbar isn't dependent on Rack or Rails for most of its functionality. In a regular script, assuming you've
|
105
|
+
installed the rollbar gem:
|
106
|
+
|
107
|
+
1. Require rollbar
|
108
|
+
2. Configure rollbar
|
109
|
+
3. Send Rollbar data
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
require 'rollbar'
|
113
|
+
|
114
|
+
Rollbar.configure do |config|
|
115
|
+
config.access_token = "POST_SERVER_ITEM_ACCESS_TOKEN"
|
116
|
+
# Other Configuration Settings
|
117
|
+
end
|
118
|
+
|
119
|
+
Rollbar.debug("Running Script")
|
120
|
+
|
121
|
+
begin
|
122
|
+
run_script ARGV
|
123
|
+
rescue Exception => e # Never rescue Exception *unless* you re-raise in rescue body
|
124
|
+
Rollbar.error(e)
|
125
|
+
raise e
|
126
|
+
end
|
127
|
+
|
128
|
+
Rollbar.info("Script ran successfully")
|
129
|
+
```
|
130
|
+
|
131
|
+
|
132
|
+
## Integration with Rollbar.js
|
133
|
+
|
134
|
+
In case you want to report your JavaScript errors using [Rollbar.js](https://github.com/rollbar/rollbar.js), you can configure the gem to enable Rollbar.js on your site. Example:
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
Rollbar.configure do |config|
|
138
|
+
# common gem configuration
|
139
|
+
# ...
|
140
|
+
config.js_enabled = true
|
141
|
+
config.js_options = {
|
142
|
+
accessToken: "POST_CLIENT_ITEM_ACCESS_TOKEN",
|
143
|
+
captureUncaught: true,
|
144
|
+
payload: {
|
145
|
+
environment: "production"
|
146
|
+
}
|
147
|
+
}
|
148
|
+
end
|
149
|
+
```
|
150
|
+
|
151
|
+
The `Hash` passed to `#js_options=` should have the same availalbe options that you can find in [Rollbar.js](https://github.com/rollbar/rollbar.js), using symbols or strings for the keys.
|
152
|
+
|
102
153
|
## Test your installation
|
103
154
|
|
104
155
|
To confirm that it worked, run:
|
@@ -379,7 +430,14 @@ By default, all uncaught exceptions are reported at the "error" level, except fo
|
|
379
430
|
- ```AbstractController::ActionNotFound```
|
380
431
|
- ```ActionController::RoutingError```
|
381
432
|
|
382
|
-
If you'd like to customize this list,
|
433
|
+
If you'd like to customize this list, modify the example code in ```config/initializers/rollbar.rb```. Supported levels: "critical", "error", "warning", "info", "debug", "ignore". Set to "ignore" to cause the exception not to be reported at all. For example, to ignore 404s and treat `NoMethodError`s as critical bugs, you can use the following code:
|
434
|
+
|
435
|
+
```ruby
|
436
|
+
config.exception_level_filters.merge!({
|
437
|
+
'ActiveRecord::RecordNotFound': 'ignore'
|
438
|
+
'NoMethodError': 'critical'
|
439
|
+
})
|
440
|
+
```
|
383
441
|
|
384
442
|
This behavior applies to uncaught exceptions, not direct calls to `Rollbar.error()`, `Rollbar.warning()`, etc. If you are making a direct call to one of the log methods and want exception level filters to apply, pass an extra keyword argument:
|
385
443
|
|
@@ -387,6 +445,84 @@ This behavior applies to uncaught exceptions, not direct calls to `Rollbar.error
|
|
387
445
|
Rollbar.error(exception, :use_exception_level_filters => true)
|
388
446
|
```
|
389
447
|
|
448
|
+
## [Before process hook](#before-process-hook)
|
449
|
+
|
450
|
+
Before we process data sent to Rollbar.log (or Rollbar.error/info/etc.) to build and send the payload, the gem will call the handlers defined in `configuration.before_process`. This handlers should be `Proc` objects or objects responding to `#call` method. The received argument is a `Hash` object with these keys:
|
451
|
+
|
452
|
+
- `level`: the level used for the report.
|
453
|
+
- `exception`: the exception that caused the report, if any.
|
454
|
+
- `message`: the message to use for the report, if any.
|
455
|
+
- `extra`: extra data passed to the report methods.
|
456
|
+
- `scope`: the current Scope; see [Scope](#the-scope)
|
457
|
+
|
458
|
+
If the exception `Rollbar::Ignore` is raised inside any of the handlers defined for `configuration.before_process`, we'll ignore the report and not send it to the API. For example:
|
459
|
+
|
460
|
+
```ruby
|
461
|
+
handler = proc do |options|
|
462
|
+
raise Rollbar::Ignore if any_smart_method(options)
|
463
|
+
end
|
464
|
+
|
465
|
+
Rollbar.configure do |config|
|
466
|
+
config.before_process << handler
|
467
|
+
end
|
468
|
+
```
|
469
|
+
|
470
|
+
## [Transform hook](#transform-hook]
|
471
|
+
|
472
|
+
After the payload is built but before it it sent to our API, the gem will call the handlers defined in `configuration.transform`. This handlers should be `Proc` objects or objects responding to `#call` method. The received argument is a `Hash` object with these keys:
|
473
|
+
|
474
|
+
- `level`: the level used for the report.
|
475
|
+
- `exception`: the exception that caused the report, if any.
|
476
|
+
- `message`: the message to use for the report, if any.
|
477
|
+
- `extra`: extra data passed to the report methods.
|
478
|
+
- `scope`: the current Scope; see [Scope](#the-scope)
|
479
|
+
- `payload`: the built payload that will be sent to the API
|
480
|
+
|
481
|
+
Handlers may mutate the payload. For example:
|
482
|
+
|
483
|
+
```ruby
|
484
|
+
handler = proc do |options|
|
485
|
+
payload = options[:payload]
|
486
|
+
|
487
|
+
payload['data']['environment'] = 'foo'
|
488
|
+
end
|
489
|
+
|
490
|
+
Rollbar.configure do |config|
|
491
|
+
config.before_process << handler
|
492
|
+
end
|
493
|
+
```
|
494
|
+
|
495
|
+
## [The Scope](#the-scope)
|
496
|
+
|
497
|
+
The scope an object, an instance of `Rollbar::LazyStore` that stores the current context data for a certain moment or situation. For example, the Rails middleware defines the scope in a way similar to this:
|
498
|
+
|
499
|
+
```ruby
|
500
|
+
scope = {request: request_data,
|
501
|
+
person: person_data,
|
502
|
+
context: context_data
|
503
|
+
}
|
504
|
+
Rollbar.scoped(scope) do
|
505
|
+
begin
|
506
|
+
@app.call(env)
|
507
|
+
rescue Exception => exception
|
508
|
+
# ...
|
509
|
+
end
|
510
|
+
end
|
511
|
+
|
512
|
+
```
|
513
|
+
|
514
|
+
You can access the scope on the [before_process](#before-process-hook) and [transform](#transform-hook) hooks like this:
|
515
|
+
|
516
|
+
```ruby
|
517
|
+
your_handler = proc do |options|
|
518
|
+
scope = options[:scope]
|
519
|
+
|
520
|
+
request_data = scope[:request]
|
521
|
+
person_data = scope[:person]
|
522
|
+
context_data = scope[:context]
|
523
|
+
end
|
524
|
+
```
|
525
|
+
|
390
526
|
## Silencing exceptions at runtime
|
391
527
|
|
392
528
|
If you just want to disable exception reporting for a single block, use ```Rollbar.silenced```:
|
@@ -406,7 +542,7 @@ exception = MyException.new('this is a message')
|
|
406
542
|
Rollbar.error(exception)
|
407
543
|
```
|
408
544
|
|
409
|
-
You will notice a backtrace doesn't appear in your Rollbar dashboard. This is because `exception.backtrace` is `nil` in these cases. We can send the current backtrace for you even your exception doesn't have it. In order to enable this feature you should configure Rollbar in this way:
|
545
|
+
You will notice a backtrace doesn't appear in your Rollbar dashboard. This is because `exception.backtrace` is `nil` in these cases. We can send the current backtrace for you even if your exception doesn't have it. In order to enable this feature you should configure Rollbar in this way:
|
410
546
|
|
411
547
|
```ruby
|
412
548
|
Rollbar.configure do |config|
|
@@ -693,6 +829,12 @@ end
|
|
693
829
|
|
694
830
|
Some users have reported problems with Zeus when ```rake``` was not explicitly included in their Gemfile. If the zeus server fails to start after installing the rollbar gem, try explicitly adding ```gem 'rake'``` to your ```Gemfile```. See [this thread](https://github.com/rollbar/rollbar-gem/issues/30) for more information.
|
695
831
|
|
832
|
+
|
833
|
+
## Configuration options
|
834
|
+
|
835
|
+
For a listing of all configuration options available see
|
836
|
+
[configuration options](https://www.rollbar.com/docs/notifier/rollbar-gem/configuration).
|
837
|
+
|
696
838
|
## Backwards Compatibility
|
697
839
|
|
698
840
|
You can find upgrading notes in [UPGRADING.md](UPGRADING.md).
|
data/Rakefile
CHANGED
@@ -11,9 +11,11 @@ desc 'Run specs'
|
|
11
11
|
task :default do
|
12
12
|
ENV['LOCAL'] = '1'
|
13
13
|
Rake::Task[:spec].invoke
|
14
|
-
|
14
|
+
|
15
15
|
Rake::Task[:spec].reenable
|
16
|
-
|
16
|
+
|
17
17
|
ENV['LOCAL'] = '0'
|
18
18
|
Rake::Task[:spec].invoke
|
19
|
-
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Dir.glob('lib/tasks/*.rake').each { |r| load r }
|
@@ -0,0 +1 @@
|
|
1
|
+
!function(r){function o(e){if(t[e])return t[e].exports;var n=t[e]={exports:{},id:e,loaded:!1};return r[e].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}var t={};return o.m=r,o.c=t,o.p="",o(0)}([function(r,o,t){"use strict";var e=t(1).Rollbar,n=t(2);_rollbarConfig.rollbarJsUrl=_rollbarConfig.rollbarJsUrl||"https://d37gvrvc0wt4s1.cloudfront.net/js/v1.8/rollbar.min.js";var a=e.init(window,_rollbarConfig),i=n(a,_rollbarConfig);a.loadFull(window,document,!_rollbarConfig.async,_rollbarConfig,i)},function(r,o){"use strict";function t(r){return function(){try{return r.apply(this,arguments)}catch(o){try{console.error("[Rollbar]: Internal error",o)}catch(t){}}}}function e(r,o,t){window._rollbarWrappedError&&(t[4]||(t[4]=window._rollbarWrappedError),t[5]||(t[5]=window._rollbarWrappedError._rollbarContext),window._rollbarWrappedError=null),r.uncaughtError.apply(r,t),o&&o.apply(window,t)}function n(r){var o=function(){var o=Array.prototype.slice.call(arguments,0);e(r,r._rollbarOldOnError,o)};return o.belongsToShim=!0,o}function a(r){this.shimId=++s,this.notifier=null,this.parentShim=r,this._rollbarOldOnError=null}function i(r){var o=a;return t(function(){if(this.notifier)return this.notifier[r].apply(this.notifier,arguments);var t=this,e="scope"===r;e&&(t=new o(this));var n=Array.prototype.slice.call(arguments,0),a={shim:t,method:r,args:n,ts:new Date};return window._rollbarShimQueue.push(a),e?t:void 0})}function l(r,o){if(o.hasOwnProperty&&o.hasOwnProperty("addEventListener")){var t=o.addEventListener;o.addEventListener=function(o,e,n){t.call(this,o,r.wrap(e),n)};var e=o.removeEventListener;o.removeEventListener=function(r,o,t){e.call(this,r,o&&o._wrapped?o._wrapped:o,t)}}}var s=0;a.init=function(r,o){var e=o.globalAlias||"Rollbar";if("object"==typeof r[e])return r[e];r._rollbarShimQueue=[],r._rollbarWrappedError=null,o=o||{};var i=new a;return t(function(){if(i.configure(o),o.captureUncaught){i._rollbarOldOnError=r.onerror,r.onerror=n(i);var t,a,s="EventTarget,Window,Node,ApplicationCache,AudioTrackList,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(",");for(t=0;t<s.length;++t)a=s[t],r[a]&&r[a].prototype&&l(i,r[a].prototype)}return r[e]=i,i})()},a.prototype.loadFull=function(r,o,e,n,a){var i=function(){var o;if(void 0===r._rollbarPayloadQueue){var t,e,n,i;for(o=new Error("rollbar.js did not load");t=r._rollbarShimQueue.shift();)for(n=t.args,i=0;i<n.length;++i)if(e=n[i],"function"==typeof e){e(o);break}}"function"==typeof a&&a(o)},l=!1,s=o.createElement("script"),u=o.getElementsByTagName("script")[0],p=u.parentNode;s.crossOrigin="",s.src=n.rollbarJsUrl,s.async=!e,s.onload=s.onreadystatechange=t(function(){if(!(l||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState)){s.onload=s.onreadystatechange=null;try{p.removeChild(s)}catch(r){}l=!0,i()}}),p.insertBefore(s,u)},a.prototype.wrap=function(r,o){try{var t;if(t="function"==typeof o?o:function(){return o||{}},"function"!=typeof r)return r;if(r._isWrap)return r;if(!r._wrapped){r._wrapped=function(){try{return r.apply(this,arguments)}catch(o){throw o._rollbarContext=t()||{},o._rollbarContext._wrappedSource=r.toString(),window._rollbarWrappedError=o,o}},r._wrapped._isWrap=!0;for(var e in r)r.hasOwnProperty(e)&&(r._wrapped[e]=r[e])}return r._wrapped}catch(n){return r}};for(var u="log,debug,info,warn,warning,error,critical,global,configure,scope,uncaughtError".split(","),p=0;p<u.length;++p)a.prototype[u[p]]=i(u[p]);r.exports={Rollbar:a,_rollbarWindowOnError:e}},function(r,o){"use strict";r.exports=function(r,o){return function(t){if(!t&&!window._rollbarInitialized){var e=window.RollbarNotifier,n=o||{},a=n.globalAlias||"Rollbar",i=window.Rollbar.init(n,r);i._processShimQueue(window._rollbarShimQueue||[]),window[a]=i,window._rollbarInitialized=!0,e.processPayloads()}}}}]);
|
@@ -0,0 +1,281 @@
|
|
1
|
+
# Configuration Reference
|
2
|
+
|
3
|
+
<!-- Sub:[TOC] -->
|
4
|
+
|
5
|
+
## General Settings
|
6
|
+
|
7
|
+
### access_token
|
8
|
+
|
9
|
+
**Required**
|
10
|
+
|
11
|
+
Sets the access token used to send payloads to rollbar.
|
12
|
+
|
13
|
+
Items sent through a given access token arrive in that access token's project
|
14
|
+
and respect the rate limits set on that access token.
|
15
|
+
|
16
|
+
### async_handler
|
17
|
+
|
18
|
+
If `config.use_async = true` explicitly sets the function used to send
|
19
|
+
asynchronous payloads to Rollbar. Should be an object that responds to `#call``
|
20
|
+
Not needed if using one of the built in async reporters:
|
21
|
+
|
22
|
+
* girl_friday
|
23
|
+
* sucker_punch
|
24
|
+
* Sidekiq
|
25
|
+
* Resque
|
26
|
+
* threading
|
27
|
+
|
28
|
+
### branch
|
29
|
+
|
30
|
+
Name of the checked-out source control branch.
|
31
|
+
|
32
|
+
### code_version
|
33
|
+
|
34
|
+
A string, up to 40 characters, describing the version of the application code.
|
35
|
+
|
36
|
+
Rollbar understands these formats:
|
37
|
+
|
38
|
+
* semantic version (i.e. "2.1.12")
|
39
|
+
* integer (i.e. "45")
|
40
|
+
* git SHA (i.e. "3da541559918a808c2402bba5012f6c60b27661c")
|
41
|
+
|
42
|
+
### custom_data_method
|
43
|
+
|
44
|
+
The method to call to gather custom data to send with each rollbar request.
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
def custom_data
|
48
|
+
return {
|
49
|
+
:custom => {
|
50
|
+
:key1 => get_key_one,
|
51
|
+
:key2 => get_key_two
|
52
|
+
},
|
53
|
+
:server => {
|
54
|
+
:root => '/home/username/www/'
|
55
|
+
}
|
56
|
+
}
|
57
|
+
end
|
58
|
+
```
|
59
|
+
|
60
|
+
### default_logger
|
61
|
+
|
62
|
+
**Default** `Logger.new(STDERR)`
|
63
|
+
|
64
|
+
What logger to use for printing debugging and informational messages during
|
65
|
+
operation.
|
66
|
+
|
67
|
+
### disable_monkey_patch
|
68
|
+
|
69
|
+
**Default** `false`
|
70
|
+
|
71
|
+
Disables monkey patching all non-core monkey patches and automatic reporting.
|
72
|
+
|
73
|
+
If you set this to true you will be responsible for rescuing and reporting all
|
74
|
+
errors manually.
|
75
|
+
|
76
|
+
### disable_core_monkey_patch
|
77
|
+
|
78
|
+
**Default** `false`
|
79
|
+
|
80
|
+
Disables our monkey patches in the ruby core. One mandatory monkey patch is left.
|
81
|
+
Be careful using this option as it may caused unexpected behavior in some situations.
|
82
|
+
|
83
|
+
|
84
|
+
### disable_rack_monkey_patch
|
85
|
+
|
86
|
+
**Default** `false`
|
87
|
+
|
88
|
+
Disables monkey patches on Rack classes, `Rack::Builder` for now, maybe more
|
89
|
+
at some point.
|
90
|
+
|
91
|
+
### delayed_job_enabled
|
92
|
+
|
93
|
+
**Default** `true`
|
94
|
+
|
95
|
+
|
96
|
+
Set to false if you have `delayed_job` but do not wish to wrap jobs with a
|
97
|
+
Rollbar notifier.
|
98
|
+
|
99
|
+
### dj_threshold
|
100
|
+
|
101
|
+
**Default** 0 (Report *any* errors)
|
102
|
+
|
103
|
+
The number of job failures before reporting the failure to Rollbar.
|
104
|
+
|
105
|
+
### failover_handlers
|
106
|
+
|
107
|
+
An array of backup handlers if the async handlers fails. Each should respond to
|
108
|
+
`#call` and should receive a `payload`.
|
109
|
+
|
110
|
+
### filepath
|
111
|
+
|
112
|
+
For use with `write_to_file`. Indicates location of the rollbar log file being
|
113
|
+
tracked by [rollbar-agent](https://github.com/rollbar/rollbar-agent).
|
114
|
+
|
115
|
+
### framework
|
116
|
+
|
117
|
+
**Default** 'Plain'
|
118
|
+
|
119
|
+
Indicates which framework you're using. Common options include 'Rails',
|
120
|
+
'Sinatra', and 'Rack' to name a few.
|
121
|
+
|
122
|
+
### ignored_person_ids
|
123
|
+
|
124
|
+
**Default** `[]`
|
125
|
+
|
126
|
+
Ids of people whose reports you wish to ignore. Only works in conjunction with a
|
127
|
+
properly defined `person_method` or `person_id_method`.
|
128
|
+
|
129
|
+
### logger
|
130
|
+
|
131
|
+
The logger to use *instead of* the default logger. Especially useful when you
|
132
|
+
wish to send log messages elsewhere.
|
133
|
+
|
134
|
+
### payload_options
|
135
|
+
|
136
|
+
Extra data to send with the payload.
|
137
|
+
|
138
|
+
### person_method
|
139
|
+
|
140
|
+
Rails only: A string or symbol giving the name of the method on the controller.
|
141
|
+
Should return an object with an `id` method, and optionally `username` and
|
142
|
+
`email` methods. The names of the `id`, `username` and `email` methods can be
|
143
|
+
overridden. See `person_id_method`, `person_username_method`, and
|
144
|
+
`person_email_method`.
|
145
|
+
|
146
|
+
If not using Rails:
|
147
|
+
|
148
|
+
Populate the `rollbar.person_data` key with a hash containing `:id`, and
|
149
|
+
optionally `:username` and `:email`.
|
150
|
+
|
151
|
+
### person_id_method
|
152
|
+
|
153
|
+
A string or symbol giving the name of the method on the user instance that
|
154
|
+
returns the person's id. Gets called on the result of `person_method`. Ignored
|
155
|
+
if `person_method` not present.
|
156
|
+
|
157
|
+
### person_username_method
|
158
|
+
|
159
|
+
A string or symbol giving the name of the method on the user instance that
|
160
|
+
returns the person's username. Gets called on the result of `person_method`.
|
161
|
+
Ignored if `person_method` not present.
|
162
|
+
|
163
|
+
### person_email_method
|
164
|
+
|
165
|
+
A string or symbol giving the name of the method on the user instance that
|
166
|
+
returns the person's email. Gets called on the result of `person_method`.
|
167
|
+
Ignored if `person_method` not present.
|
168
|
+
|
169
|
+
### populate_empty_backtraces
|
170
|
+
|
171
|
+
Raising an exception in Ruby is what populates the backtraces. If you report a
|
172
|
+
manually initialized exception instead of a raised and rescued exception, the
|
173
|
+
backtraces will be empty. Set `populate_empty_backtraces` to `true` to have
|
174
|
+
Rollbar load the traces before sending them.
|
175
|
+
|
176
|
+
### report_dj_data
|
177
|
+
|
178
|
+
**Default** `true`
|
179
|
+
|
180
|
+
Set to `false` to skip automatic bundling of job metadata like queue, job class
|
181
|
+
name, and job options.
|
182
|
+
|
183
|
+
### request_timeout
|
184
|
+
|
185
|
+
**Default** `3`
|
186
|
+
|
187
|
+
Set the request timeout for sending POST data to Rollbar.
|
188
|
+
|
189
|
+
### root
|
190
|
+
|
191
|
+
Set the server root, all stack frames outside that root are considered
|
192
|
+
'non-project' frames. Also used to setup Github linking.
|
193
|
+
|
194
|
+
### safely
|
195
|
+
|
196
|
+
**Default** `false`
|
197
|
+
|
198
|
+
When `true` evaluates `custom_data_method` returns `{}` if an error,
|
199
|
+
otherwise reports the error to Rollbar.
|
200
|
+
|
201
|
+
### scrub_fields
|
202
|
+
|
203
|
+
Fields to scrub out of the parsed request data. Will scrub from `GET`, `POST`,
|
204
|
+
url, and several other locations. Does not currently recurse into the full
|
205
|
+
payload.
|
206
|
+
|
207
|
+
### scrub_user
|
208
|
+
|
209
|
+
**Default** `true`
|
210
|
+
|
211
|
+
Set to false to skip scrubbing user out of the URL.
|
212
|
+
|
213
|
+
### scrub_password
|
214
|
+
|
215
|
+
Set to false to skip scrubbing password out of the URL.
|
216
|
+
|
217
|
+
### user_ip_obfuscator_secret
|
218
|
+
|
219
|
+
A string used hash IP addresses when obfuscating them.
|
220
|
+
|
221
|
+
### randomize_scrub_length
|
222
|
+
|
223
|
+
**Default** `true`
|
224
|
+
|
225
|
+
When true randomizes the number of asterisks used to display scrubbed fields.
|
226
|
+
|
227
|
+
### uncaught_exception_level
|
228
|
+
|
229
|
+
**Default** `error`
|
230
|
+
|
231
|
+
Use this field to select a different level for uncaught errors (like `critical`,
|
232
|
+
or `warning`).
|
233
|
+
|
234
|
+
### scrub_headers
|
235
|
+
|
236
|
+
**Default** `["Authentication"]`
|
237
|
+
|
238
|
+
The headers to scrub.
|
239
|
+
|
240
|
+
### sidekiq_threshold
|
241
|
+
|
242
|
+
**Default** `0`
|
243
|
+
|
244
|
+
The number of job re-tries before reporting an error to Rollbar via Sidekiq.
|
245
|
+
Ignored unless you've called `use_sidekiq`.
|
246
|
+
|
247
|
+
### verify_ssl_peer
|
248
|
+
|
249
|
+
**Default** `true`
|
250
|
+
|
251
|
+
By default we use `OpenSSL::SSL::VERIFY_PEER` for SSL. Although we don't
|
252
|
+
recommend changing it, you can disable peer verification in case you experience
|
253
|
+
SSL connection problems.
|
254
|
+
|
255
|
+
### use_async
|
256
|
+
|
257
|
+
**Default** `false`
|
258
|
+
|
259
|
+
When `true` indicates you wish to send data to Rollbar asynchronously. If
|
260
|
+
installed, uses `girl_friday`, otherwise defaults to `Thread`.
|
261
|
+
|
262
|
+
### use_eventmachine
|
263
|
+
|
264
|
+
**Default** `false`
|
265
|
+
|
266
|
+
When `true` indicates you wish to send data to Rollbar with `eventmachine`.
|
267
|
+
Won't work unless `eventmachine` is installed.
|
268
|
+
|
269
|
+
### web_base
|
270
|
+
|
271
|
+
**Default** `'https://rollbar.com'`
|
272
|
+
|
273
|
+
The root of the web app that serves your rollbar data. Unless you're an
|
274
|
+
enterprise customer this should never change.
|
275
|
+
|
276
|
+
### write_to_file
|
277
|
+
|
278
|
+
**Default** `false`
|
279
|
+
|
280
|
+
If `true` writes all errors to a log file which can be sent with
|
281
|
+
`rollbar-agent`.
|