Skip to content

Latest commit

 

History

History
728 lines (429 loc) · 26.9 KB

CHANGELOG.md

File metadata and controls

728 lines (429 loc) · 26.9 KB

Change Log

2.6.3

Change:

  • Add default scrub fields, "api_key" and "access_token". See #348.

2.6.2

Bug fix:

  • Fix crash when sidekik job has retry key but not retry_count. See #346.

2.6.1

Bug fix:

  • Don't skip delayed_job reports if attempts > dj_threshold. See #340.

2.6.0

Features

  • Sidekiq threshold for retried jobs. Allows you define a minimum number of retries to start reporting errors to Rollbar. See #336.
  • User IP obfuscator. See #331 and #338.

2.5.2

Bug fixes:

  • Use ACCEPT header to check json requests. See #328
  • Fix URL scrubbing when using a malformed URL. See #328

2.5.1

Bug fix:

  • Fix Rollbar::JSON for MultiJson <= 1.6.0. See #328

2.5.0

Features:

  • URL scrubbing for Ruby > 1.8.7. See #323 and #235

Bug fixes:

  • Fix Rollbar::JSON so it resolves the correct options module. See #321
  • Fix SSL verify mode. See #320 and #326

2.4.0

Features:

  • Allow custom revision name on capistrano integration. See #312

Internal changes:

  • Restore MultiJson and add custom option modules. Fix #303. See #304
  • Don't require rollbar/rails on initializer. See #310
  • Fix delayed_job tests for delayed_job >= 4.1. See #309

Documentation:

  • Change README.md and template to use 'default' Sidekiq queue. See #306

Bug fixes:

  • Remove better errors hook. This was causing to report twice the errors. See #313

2.3.0

Internal changes:

  • Use Oj instead of JSON gem for payload serializing. See #300
  • Send nearest backtrace entry on failsafe messages. See #290
  • Remove whitespace from config template. See #295

Bug fixes:

  • Send correct hash value for delayed job 'handler' object. See #301
  • Fix delayed_job crash reports. See #293
  • Send session data instead of session store options. #289

2.2.1

Improvement:

  • Speed-up payload encoding. See #285

2.2.0

New features:

  • Raise internal exceptions when processing reports from async handlers, instead of swallowing them. This allows queue systems (e.g. Sidekiq, Resque) to track and retry errored jobs. See #282
  • Send the error class name when reporting internal errors. See #283

2.1.2

Bug fix:

  • Allow having multiple uploads for the same parameter. Thanks @mdominiak.

2.1.1

Bug fix:

  • Don't swallow exceptions on Rollbar::ActiveJob module. With this fix we don't break the ActiveJob backends' features like retries.

2.1.0

New feature:

  • If you use ActiveJob, you can now include the Rollbar::ActiveJob module into your ActiveJob classes. Then, errors happening in your jobs will be automatically reported to Rollbar.

2.0.2

Bug fixes:

  • Fix capistrano task cause a namespace conflict between JSON and Rollbar::JSON.

2.0.1

Bug fixes:

  • Remove requires for multi_json gem. Thanks @albertyw.

2.0.0

Possibly breaking changes:

  • If active_support version < 4.1.0 is installed, this gem will now monkeypatch BasicSocket#to_json. This is needed to work around a bug causing JSON serialization to fail when the payload contains a Socket instance. We don't expect this to break anything for anyone, unless you are using active_support version < 4.1.0 and also happened to be relying on the buggy Socket serialization behavior.

Bug fixes:

  • Use the JSON gem or native by default. Along with the aforementioned monkeypatch, this fixes the existing bug in active_support < 4.1.0 serializing Socket instances. To disable the monkeypatch, set config.disable_core_monkey_patch = true.
  • Add Encoding module, with Encoder and LegacyEncoder classes. This fixes some issues with ISO-8859 strings

Other changes:

  • Update README.md and warn about upgrade to capistrano >= 3.1
  • Fix error in code example for custom Async handlers

1.5.3

Bug fixes:

  • Run rollbar-rails-runner in the context of Rails module so we avoid namespace conflicts. See #242

1.5.2

Bug fixes:

  • Fix minimum body truncation strategy when the payload is a message without exception. See #240

1.5.1

Bug fixes:

  • Fixed crashes when Configuration#custom_data_method fails. Now a report for that crash will be reported also. See #235

1.5.0

Bug fixes:

  • Fixed support for extended unicode characters. See #234

Possible breaking changes:

  • Some characters that previously were stripped are now encoded. This could cause some events to be grouped into new items by Rollbar.

1.4.5

Bug fixes:

  • Fixed internal error reporting IpSpoofAttackErrors. See #233
  • Removed duplicated schedule_payload definition. See #231

1.4.4

New features:

  • Added configuration option to gather backtraces for exceptions that don't already have one (i.e. if you do Rollbar.error(Exception.new)). Set config.populate_empty_backtraces = true to enable it. See #206

Bug fixes:

  • Reverted capistrano change as it causes problems in some setups. See #210

Other:

  • Refactored the Sidekiq handler (no changes to the interface). See #197

1.4.3

New features:

  • The current thread's scope can now be modified using Rollbar.scope!. This can be used to provide context data which will be included if the current request/job/etc. later throws an exception. See #212

Bug fixes:

  • Remove duplicate #configure definition. See #207
  • In the capistrano task, don't override set variables. See #210
  • Style fix in sidekiq handler. See #209

1.4.2

Bug fixes:

  • Fix null 'context' in internal error reports. See #208

1.4.1

Bug fixes:

  • Fix internal error when ActiveRecord was present, but not used. See #204

1.4.0

Possible breaking changes:

  • exception_level_filters is now applied only to "uncaught" errors (i.e. those detected by middlewares) but not to direct calls to Rollbar.error. If you were previously using Rollbar.error (or Rollbar.warning, etc.), the new behavior is probably desirable, but if it isn't, you can get the old behavior via Rollbar.error(e, :use_exception_level_filters => true). The middlewares that ship with the gem also now pass this new flag.

1.3.2

Bug fixes:

  • Fix bug with the write_to_file method where values were dumped as ruby hashes instead of json. See #198

1.3.1

Bug fixes:

  • Fix bug with smart truncation for messages. See #195 and #196
  • Safely catch exceptions in process_payload when called from an async handler. See #196

1.3.0

Performance improvements:

  • In the Rails, Rack, and Sinatra middlewares, request data is now gathered only when needed instead of in advance on every request. See #194; fixes #180

Possible breaking changes:

  • If the scope's :request or :context value is an object that responds to :call, those values will now be called when a a report is made (and their result will be used in the payload). This is very unlikely to affect anyone, but we're releasing this as a version bump just to be safe.

1.2.13

New features:

  • Person tracking for Rack/Sinatra apps. See #192

Bug fixes:

  • Fix rollbar:test rake task (regression from 1.2.12); see 985c091

1.2.12

Bug fixes:

  • Fix bug introduced in 1.2.11 that broke the sidekiq async handler. See #190
  • Skip Rake monkeypatch for Rake < 0.9.0. Fixes #187

1.2.11

New features:

  • Improved truncation algorithm, so that more kinds of large payloads will be successfully brought below the 128kb limit and successfully reported. See #185

Bug fixes:

  • Fix issue where using Rollbar outside of a web process was prone to errors being silently ignored. See #183

1.2.10

Bug fixes:

  • Fix bug introduced in 1.2.8 with Sidekiq version < 3. See #181

1.2.9

Bug fixes:

  • Fix issue causing request and person data to not be collected for RoutingErrors. See #178

1.2.8

New features:

  • Add config option to not monkeypatch Rack::Builder. See #169
  • Track server PID. See #171

Bug fixes:

  • Remove internal calls to deprecated methods. See #166
  • Fix an intermittently failing test. See #167
  • Fix configuration issue when an initializer calls Thread.new before Rollbar is initialized. See #170 and #168
  • Fix infinite loop with cyclic inner exceptions. See #172

1.2.7

Bug fixes:

  • Restore exception_level_filters feature, which was inadvertently removed in 1.2.0. See #160
  • Fix bug where rollbar_url incorrectly handled comma-separated X-Forwarded-Proto header values. See #112

1.2.6

Bug fixes:

  • Fix bug in non-Rails environments. See #155
  • Fix intermittent test failures

1.2.5

Bug fixes:

  • Fix issues handling hashes, arrays, and other values as the raw POST body. See #153

1.2.4

Bug fixes:

  • Fix issue where requiring 'rack' unnecessarily broke things in non-rack apps. See #150

1.2.3

Bug fixes:

  • Bring back enforce_valid_utf8, which got lost in the 1.2.0 upgrade. See #148
  • Fix bug with raw post extraction for application/json requests. See #147

1.2.2

Bug fixes:

  • Fix issue with delayed_job and Rollbar.report_exception (bug introduced in 1.2.0). See #145
  • Explicitly require 'rack' in request_data_extractor. See #144

1.2.1

Bug fixes:

  • Revert change made as part of 1.2.0 where all procs in the payload would be evaluated. See #143.

1.2.0

New features:

  • Added new, much nicer interface for sending exceptions and messages to Rollbar. This is a backwards-compatible release: the old interface (report_message, report_exception, report_message_with_request) is deprecated but will continue to work at least until 2.0.

    See the docs for basic and advanced usage for a guide to the new interface. If you've used rollbar.js, it will be familiar.


1.1.0

New features:

  • Support nested exceptions for Ruby 2.1. See #136. NOTE: for exceptions that have causes, this will change how they are grouped in Rollbar. If you have custom grouping rules, they will need to be updated to replace body.trace.exception with body.trace_chain[0].exception to maintain the same behavior for these exceptions.
  • New feature: failover_handlers. You can specify a list of async handlers, which will be tried in sequence upon failure. See #135.

Bug fixes:

  • Fix handling of utf8 sequences in payload symbols. See #131. Thanks @kroky for the fix and @jondeandres for reviewing.
  • Fix logic bugs in assignments for scrub_fields and scrub_headers. See #137

1.0.1

Bug fixes:

  • Use the payload's access token for the X-Rollbar-Access-Token header, instead of the configured access token. Fixes an issue where payloads would be reported into the wrong project when sent via Resque. See #128. Thanks to @jondeandres for the fix.

1.0.0

Bug fixes:

  • Strip out invalid UTF-8 characters from payload keys/values, fixes #85

Misc:

  • Clean up some unused requires
  • Bumping to 1.0 due to the suggestion in #119

0.13.2

  • Sidekiq payload is no longer mutated when Rollbar reports a Sidekiq job exception
  • Fix sucker_punch async reporting when using a forking application server such as Unicorn (preload_app true). Jobs are now instantiated for every report instead of a reused global job instance

0.13.1

  • Silence warning when using project_gems= with regexp #120

0.13.0

  • Hook for delayed_job no longer a plugin, will now only ever be initialized once
  • New configuration option delayed_job_enabled that defaults to true
  • Potentially breaking change if using delayed_job: if you disabled the delayed_job plugin previously, please remove that code and instead set the new configuration option delayed_job_enabled to false

0.12.20

  • Fix asynchronous reports with sidekiq version < 2.3.2
  • Support for specifying multiple project_gems with regex #114

0.12.19

  • Fix rake test task in production
  • Report an additional simple error message in the rake test task

0.12.18

  • Insert RollbarRequestStore middleware at the end in case the ActiveRecord ConnectionManagement middleware isn't used
  • Scope Capistrano 3 task by server role #110

0.12.17

  • Replace usage of puts with a configurable logger in different areas of the notifier
  • Fix error in RollbarRequestStore when rollbar_person_data isn't defined for a controller

0.12.16

  • Scrub fields are now converted to a regular expression for broader param name matching
  • Save ActionDispatch request_id in reports if present
  • Added proper Sidekiq 3 error handler
  • Removed usage of ActiveSupport's Object#try in different areas of the notifier
  • Added a configurable request timeout for reports (defaults to 3 seconds)
  • Fix circular json exception handling in Rails 4.1

0.12.15

  • Send X-Rollbar-Access-Token http header along with payloads

0.12.14

  • Added ability to scrub request headers
  • Added flag to disable reporting of Delayed::Job job data when handling uncaught exceptions that happen in jobs
  • New report_message_with_request that allows reporting request and person data, similar to report_exception
  • Changed various exception handlers to catch Exception subclasses instead of only StandardErrors
  • Added Capistrano 3 support

0.12.13

  • Add a little more debugging information for 'payload too large' errors
  • Pushing new gem to fix errant 32kb size limit in the rubygems copy of 0.12.12

0.12.12

  • Changes to support Engine Yard add-on setup

0.12.11

  • Raise payload size limit to 128k

0.12.10

  • Log payloads that are too large to be sent to Rollbar
  • Don't record controller context if request route info isn't readily available (ex. non-Rails)

0.12.9

  • Fixed delayed job regression introduced in 0.12.5 by re-raising caught exceptions
  • Removed Active Support call introduced in 0.12.6 to remove rails dependency in report_exception

0.12.8

  • Added funcitonality to walk the payload and truncate strings to attempt to reduce size if the payload is too large (more than 32kb total)

0.12.7

  • Fix error reporting errors when route controller or action is nil (bug introduced in 0.12.4)

0.12.6

  • Added #78, added configuration option to ignore specific person exceptions

0.12.5

  • Fixed SIGSEGV with the delayed_job plugin and Ruby 2.1.0

0.12.4

  • Record controller context (controller#action) in reported items

0.12.3

  • Change rollbar_request_store middleware to only grab required person data properties by using rollbar_person_data

0.12.2

  • Added ability to specify level for manually reported exceptions

0.12.1

  • Fix syntax error in config.use_sidekiq usage example

0.12.0

  • Added #73, enhanced Sidekiq and SuckerPunch configuration. NOTE: The old Rollbar::Configuration#use_sidekiq= and Rollbar::Configuration#use_sucker_punch= methods are now deprecated, see the docs for updated usage information.

0.11.8

  • Make sure the person method exists for the controller before trying to extract person data

0.11.7

  • Remove ActiveRecord railtie requirement introduced in 0.11.6

0.11.6

  • Adding new middleware that grabs possible database-hitting person data before the rake connection pool cleanup middleware

0.11.5

  • Fix rake test task when Authlogic is present

0.11.4

  • Respect different proxy headers when building the request url

0.11.3

  • Make sure the environment is valid at item sending time so that it isn't set incorrectly during configuration

0.11.2

  • Test rake task now works properly if force_ssl is true

0.11.1

  • config.exception_level_filters can now take a callable instead of a string. The exception instance will be passed to the callable.

0.11.0

  • Changed default environment name from 'production' to 'unspecified'

0.10.14

  • Fixed compatability issue with better_errors 1.0

0.10.13

  • Added code_version configuration setting

0.10.12

  • Exclude HTTP_COOKIE header (since cookies are already included in parsed form)

0.10.11

  • Fix usage of custom Sidekiq options

0.10.10

  • Add support for sucker_punch asynchronous handling

0.10.9

  • Fix regression introduced in 0.10.7 when ActiveRecord is not present.

0.10.8

  • Better handling of internal errors. Internal errors (errors that occur while reporting something to Rollbar) are now themselves reported to Rollbar. If that fails, a failsafe message will be reported, and if that fails, the error will be logged as it is now.
  • Fix bug reporting exceptions with backtraces containing frames that don't match our regex.

0.10.7

  • Add ability to report form validation errors
  • Add MIT license to gemspec

0.10.6

  • Fix json dump when rack.errors is an IO stream

0.10.5

  • Add built-in support for Sidekiq as async handler

0.10.4

  • Fix exception in the exception catcher when Rollbar is disabled

0.10.3

  • Rework how request params are extracted so that json params are properly extracted in rails 4.0
  • Fix rollbar:test rake task

0.10.2

  • Require hooks at configuration time instead of gem load time

0.10.1

  • Fix regression in 0.10.0 reporting exceptions in development environments and rails < 3.2 apps.

0.10.0

  • Fixed bug causing duplicate reports when used inside Rails in production with the default error pages. Bumping version to 0.10.0 in case this turns out to be backwards-incompatible for some use cases (i.e. for applications that were relying on the duplicate report that has now been removed).

0.9.14

  • Added custom_data_method config option. If set, it should be a lambda that returns a hash.
  • Changed initializer template to disable reporting from the 'test' environment.

0.9.13

  • Add test for PUT params
  • Parse json params when content-type is application/json
  • Fix concurrency issue
  • Remove redundant GET and POST keys from request payload (they're already included in params)

0.9.12

  • Fix compatibility issue with Rails 4 / Ruby 2 (thanks johnknott)

0.9.11

  • Provide a default environment name when used outside of Rails and none is set

0.9.10

  • Add :secret_token to default scrub_fields list
  • Session params are now scrubbed

0.9.9

  • Fix capistrano recipe on 1.9.2 (#36)
  • Add example of disable "test" env to initializer template

0.9.8

  • Fix bug introduced in 0.9.0 where setting config.enabled = false in config/initializers/rollbar.rb would be overwritten by subsequent calls to Rollbar.configure (as happens normally when using inside Rails).

0.9.7

  • Use include? instead of in? for filtering (see #34)

0.9.6

  • Fix for Rails 4 support

0.9.5

  • Support for configuring the access token with an environment variable.

0.9.4

  • Fixed issue using rollbar-gem outside of Rails
  • Clarified the "details: " link log message

0.9.3

  • Added configuration setting to specify gems that should be considered part of the Rollbar project, making frames from these gems show up automatically uncollapsed in tracebacks appearing on the website.

0.9.2

0.9.1

  • Add support to play nicely with Better Errors.

0.9.0

  • Behavior change: start configuration as @enabled = false, and set to true when configure is called. This addresses an issue using Rollbar without the environment initialized. Such reports would always fail (since there would be no access token), but now they won't be attempted.

0.8.3

  • Relax multi_json dependency to 1.5.0

0.8.2

  • Adding back rake task exception reporting after fixing load order issue

0.8.1

  • Reverting rake task exception reporting until we can track down a load order issue reported by a few users

0.8.0

  • Rename to rollbar

0.7.1

  • Fix ratchetio:test rake task when project base controller is not called ApplicationController

0.7.0

  • Exceptions in Rake tasks are now automatically reported.

0.6.4

  • Bump multi_json dependency version to 1.6.0

0.6.3

  • Bump multi_json dependency version to 1.5.1

0.6.2

  • Added EventMachine support

0.6.1

  • Added a log message containing a link to the instance. Copy-paste the link into your browser to view its details in Ratchet.
  • Ratchetio.report_message now returns 'ignored' or 'error' instead of nil when a message is not reported for one of those reasons, for consistency with Ratchetio.report_exception.

0.6.0

  • POSSIBLE BREAKING CHANGE: Ratchetio.report_exception now returns 'ignored', 'disabled', or 'error' instead of nil when the exception is not reported for one of those reasons. It still returns the payload upon success.
  • Request data is now parsed from the rack environment instead of from within the controller, addressing issue #10.
  • Add Sidekiq middleware for catching workers' exceptions
  • Replaced activesupport dependency with multi_json

0.5.5

  • Added activesupport dependency for use without Rails

0.5.4

  • Added new default scrub params

0.5.3

  • Add Ratchetio.silenced; which allows disabling reporting for a given block. See README for usage.

0.5.2

  • Fix compat issue with delayed_job below version 3. Exceptions raised by delayed_job below version 3 will not be automatically caught; upgrade to v3 or catch and report by hand.

0.5.1

  • Save the exception uuid in env['ratchetio.exception_uuid'] for display in user-facing error pages.

0.5.0

  • Add support to report exceptions raised in delayed_job.

0.4.11

  • Allow exceptions with no backtrace (e.g. StandardError subclasses)

0.4.10

  • Fix compatability issue with ruby 1.8

0.4.9

  • Start including a UUID in reported exceptions
  • Fix issue with scrub_fields, and add :password_confirmation to the default list

0.4.8

  • Add ability to send reports asynchronously, using girl_friday or Threading by default.
  • Add ability to save reports to a file (for use with ratchet-agent) instead of sending across to Ratchet servers.

0.4.7

  • Sensitive params now scrubbed out of requests. Param name list is customizable via the scrub_fields config option.

0.4.6

  • Add support to play nicely with Goalie.

0.4.5

  • Add default_logger config option. It should be a lambda that will return the logger to use if no other logger is configured (i.e. no logger is set by the Railtie hook). Default: lambda { Logger.new(STDERR) }

0.4.4

  • Add enabled runtime config flag. When false, no data (messages or exceptions) will be reported.

0.4.3

  • Add RSpec test suite. A few minor code changes.

0.4.2

  • Add "ignore" filter level to completely ignore exceptions by class.

0.4.1

  • Recursively filter files out of the params hash. Thanks to trisweb for the pull request.

0.4.0

  • Breaking change to make the "person" more configurable. If you were previously relying on your current_member method being called to return the person object, you will need to add the following line to config/initializers/ratchetio.rb:

    config.person_method = "current_member"

  • Person id, username, and email method names are now configurable -- see README for details.