rollbar 2.7.1 → 2.8.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/.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 [](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`.
|