All Versions
111
Latest Version
Avg Release Cycle
28 days
Latest Release
-

Changelog History
Page 1

  • v5.6.0 Changes

    ๐Ÿ”‹ Features

    • ๐Ÿ‘ Allow users to configure their asset-skipping pattern #1915

      Users can now configure their own pattern to skip asset requests' transactions

      Sentry.init do |config|
        config.rails.assets_regexp = /my_regexp/
      end
      
    • Use Sentry.with_child_span in redis and net/http instead of span.start_child #1920

      • This might change the nesting of some spans and make it more accurate
      • Followup fix to set the sentry-trace header in the correct place #1922
    • ๐Ÿ’Ž Use Exception#detailed_message when generating exception message if applicable #1924

    • ๐Ÿ’Ž Make sentry-sidekiq compatible with Sidekiq 7 #1930

    ๐Ÿ› Bug Fixes

    • ๐Ÿš€ Sentry::BackgroundWorker will release ActiveRecord connection pool only when the ActiveRecord connection is established
    • ๐Ÿšš Remove bad encoding arguments in redis span descriptions #1914
    • โž• Add missing initialized? checks to sentry-rails #1919
    • โšก๏ธ Update Tracing Span's op names #1923

      Currently, Ruby integrations' Span op names aren't aligned with the core specification's convention, so we decided to update them altogether in this PR. If you rely on Span op names for fine-grained event filtering, this may affect the data your app sends to Sentry. Also make sure to update your traces_sampler if you rely on the op for filtering some requests.

    ๐Ÿ”จ Refactoring

    • ๐Ÿ’Ž Make transaction a required argument of Span #1921
  • v5.5.0 Changes

    ๐Ÿ”‹ Features

    • ๐Ÿ‘Œ Support rack 3 #1884

      • We no longer need the HTTP_VERSION check for ignoring the header
    • โž• Add Dynamic Sampling support The SDK now supports Sentry's Dynamic Sampling product.

    Note that this is not supported for users still using the config.async option.

    • Parse incoming W3C Baggage Headers and propagate them to continue traces #1869
    • Create new Baggage entries as Head SDK (originator of trace) #1898
    • Add Transaction source annotations to classify low quality (high cardinality) transaction names #1902

    ๐Ÿ› Bug Fixes

    • ๐Ÿ“ Memoize session.aggregation_key #1892
    • ๐Ÿ’Ž Execute with_scope's block even when SDK is not initialized #1897
    • โœ… Make sure test helper clears the current scope before/after a test #1900
  • v5.4.2 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix sentry_logger when SDK is closed from another thread #1860
  • v5.4.1 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›  Fix missing spec.files in sentry-ruby.gemspec
  • v5.4.0 Changes

    ๐Ÿ”‹ Features

    • ๐Ÿ”ฆ Expose :values in ExceptionInterface, so that it can be accessed in before_send under event.exception.values #1843

    • โž• Add top level Sentry.close API #1844

      • Cleans up SDK state and sets it to uninitialized
      • No-ops all SDK APIs and also disables the transport layer, so nothing will be sent to Sentry after closing the SDK
    • ๐Ÿ’Ž Handle exception with large stacktrace without dropping entire item #1807

    • ๐Ÿ’Ž Capture Rails runner's exceptions before exiting #1820

    • ๐Ÿ‘ป Add Sentry.with_exception_captured helper #1814

      Usage:

      Sentry.with_exception_captured do
       1/1 #=> 1 will be returned
      end
      
      Sentry.with_exception_captured do
       1/0 #=> ZeroDivisionError will be reported and re-raised
      end
      
    • ๐Ÿ’Ž Prepare for Rails 7.1's error reporter API change #1834

    • Set sentry.error_event_id in request env if the middleware captures errors #1849

    If the SDK's Rack middleware captures an error, the reported event's id will be stored in the request env. For example:

      env["sentry.error_event_id"] #=> "507bd4c1a07e4355bb70bcd7afe8ab17"
    

    Users can display this information on the error page via a middleware as proposed in #1846

    ๐Ÿ› Bug Fixes

    • Respect report_rescued_exceptions config #1847
    • ๐Ÿ’Ž Rescue event's to JSON conversion error #1853
    • ๐Ÿ’Ž Rescue ThreadError in SessionFlusher and stop creating threads if flusher is killed #1851

    ๐Ÿ”จ Refactoring

    • ๐Ÿšš Move envelope item processing/trimming logic to the Item class #1824
    • ๐Ÿ’Ž Replace sentry-ruby-core with sentry-ruby as integration dependency #1825

    โœ… Test Helpers

    โœ… The SDK now provides a set of test helpers to help users setup and teardown Sentry related tests.

    To get started:

    require "sentry/test_helper"
    
  • v5.3.1 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿš€ Don't require a DB connection, but release one if it is acquired #1812
    • Sentry.with_child_span should check SDK's initialization state #1819

    Miscellaneous

    • ๐Ÿ—„ Warn users about config.async's deprecation #1803
  • v5.3.0 Changes

    ๐Ÿ”‹ Features

    • Add Sentry.with_child_span for easier span recording #1783
    operation_result = Sentry.with_child_span(op: "my op") do |child_span|
      my_operation
    end
    
  • v5.2.1 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ›ฐ Also check stringified breadcrumbs key when reducing payload size #1758
    • ๐Ÿ‘ท Ignore internal Sidekiq::JobRetry::Skip exception #1763

    Miscellaneous

    • ๐Ÿ’Ž Warn user if any integration is required after SDK initialization #1759
  • v5.2.0 Changes

    ๐Ÿ”‹ Features

    • ๐Ÿ’Ž Log Redis command arguments when sending PII is enabled #1726
    • โž• Add request env to sampling context #1749

    Example

      Sentry.init do |config|
        config.traces_sampler = lambda do |sampling_context|
          env = sampling_context[:env]
    
          if env["REQUEST_METHOD"] == "GET"
            0.01
          else
            0.1
          end
        end
      end
    
    • ๐Ÿ’Ž Check envelope size before sending it #1747

    The SDK will now check if the envelope's event items are oversized before sending the envelope. It goes like this:

    1. If an event is oversized (200kb), the SDK will remove its breadcrumbs (which in our experience is the most common cause).
    2. If the event size now falls within the limit, it'll be sent.
    3. Otherwise, the event will be thrown away. The SDK will also log a debug message about the event's attributes size (in bytes) breakdown. For example,
      {event_id: 34, level: 7, timestamp: 22, environment: 13, server_name: 14, modules: 935, message: 5, user: 2, tags: 2, contexts: 820791, extra: 2, fingerprint: 2, platform: 6, sdk: 40, threads: 51690}
    

    This will help users report size-related issues in the future.

    • ๐Ÿ’Ž Automatic session tracking #1715

    Example:

    The SDK now supports automatic session tracking / release health by default in Rack based applications.
    Aggregate statistics on successful / errored requests are collected and sent to the server every minute.
    To use this feature, make sure the SDK can detect your app's release. Or you have set it with:

      Sentry.init do |config|
        config.release = 'release-foo-v1'
      end
    

    To disable this feature, set config.auto_session_tracking to false.

    ๐Ÿ› Bug Fixes

  • v5.1.1 Changes

    ๐Ÿ› Bug Fixes

    • ๐Ÿ‘ Allow overwriting of context values #1724
    • ๐Ÿ’Ž Avoid duplicated capturing on the same exception object #1738

    ๐Ÿ”จ Refactoring

    • ๐Ÿ’Ž Encapsulate extension helpers #1725
    • ๐Ÿšš Move rate limiting logic to each item in envelope #1742