Releases: getsentry/sentry-ruby
6.2.0
6.1.2
6.1.1
Improvements
- Optimize getting query source location in ActiveRecord tracing - this makes tracing up to roughly 40-60% faster depending on the use cases (#2769)
Bug fixes
6.1.0
6.0.0
Breaking Changes
- Drop support for rubies below 2.7 #2743
- Drop support for Rails below 5.2.0
- Drop support for Sidekiq below 5.0
- Remove deprecated
config.async#1894 - Remove deprecated
Sentry::Metricsandconfig.metricsand all metrics related code (#2729) - Remove deprecated
config.capture_exception_frame_locals, useinclude_local_variablesinstead (#2730) - Remove deprecated
config.enable_tracing, useconfig.traces_sample_rate = 1.0instead (#2731) - Remove deprecated
config.logger=, useconfig.sdk_logger=instead (#2732) Sentry.loggernow always points to theStructuredLogger(#2752)- Remove deprecated
Sentry::Rails::Tracing::ActionControllerSubscriber(#2733) - Remove deprecated
Event#configuration(#2740) - Remove deprecated
Sentry::Client#generate_sentry_traceandSentry::Client#generate_baggage(#2741) - Remove
Transactiondeprecations (#2736)- Remove deprecated constant
Sentry::Transaction::SENTRY_TRACE_REGEXP, useSentry::PropagationContext::SENTRY_TRACE_REGEXPinstead - Remove deprecated method
Sentry::Transaction.from_sentry_trace, useSentry.continue_traceinstead - Remove deprecated method
Sentry::Transaction.extract_sentry_trace, useSentry::PropagationContext.extract_sentry_traceinstead - Remove deprecated attribute
Sentry::Transaction.configuration - Remove deprecated attribute
Sentry::Transaction.hub - Remove deprecated argument
hubtoSentry::Transaction.finish - Remove deprecated argument
hubtoSentry::Transaction#initialize(#2739)
- Remove deprecated constant
- Remove
:monotonic_active_support_loggerfromconfig.breadcrumbs_logger(#2717) - Migrate from to_hash to to_h (#2351)
- Add
before_send_check_infor applying toCheckInEvent(#2703) - Returning a hash from
before_sendandbefore_send_transactionis no longer supported and will drop the event. config.enabled_environmentsnow defaults tonilinstead of[]for sending to all environments (#2716)- Requests which have response status codes in the inclusive ranges
[(301..303), (305..399), (401..404)]will no longer create transactions by default. Seeconfig.trace_ignore_status_codesbelow to control what gets traced. - Stacktrace truncation for oversized events now takes 500 frames on each side instead of 250.
Features
-
Add
config.trace_ignore_status_codesto control which response codes to ignore for tracing (#2725)You can pass in an Array of individual status codes or ranges of status codes.
Sentry.init do |config| # ... # will ignore 404, 501, 502, 503 config.trace_ignore_status_codes = [404, (501..503)] end
-
Add
config.profiles_sample_intervalto control sampling frequency (#2745)- Both
stackprofandverniernow get sampled at a default frequency of 101 Hz.
- Both
-
Request body reading checks for
:rewindto match Rack 3 behavior. (#2754)
Internal
- Archive
sentry-raven(#2708) - Don't send
sample_rateclient reports for profiles if profiling is disabled (#2728)
5.28.1
5.28.0
Features
- Auto-enable Rails structured logging when
enable_logsis true (#2721)
Miscellaneous
-
Deprecate all Metrics related APIs #2726
Sentry no longer has the Metrics Beta offering so
all the following APIs linked to Metrics have been deprecated and will be removed in the next major.Sentry.init do |config| # ... config.metrics.enabled = true config.metrics.enable_code_locations = true config.metrics.before_emit = lambda {} end Sentry::Metrics.increment('button_click') Sentry::Metrics.distribution('page_load', 15.0, unit: 'millisecond') Sentry::Metrics.gauge('page_load', 15.0, unit: 'millisecond') Sentry::Metrics.set('user_view', 'jane') Sentry::Metrics.timing('how_long') { sleep(1) }
Internal
5.27.1
5.27.0
Feature
-
Propagated sampling rates as specified in Traces docs (#2671)
-
Support for Rails ActiveSupport log subscribers (#2690)
-
Support for defining custom Rails log subscribers that work with Sentry Structured Logging (#2689)
Rails applications can now define custom log subscribers that integrate with Sentry's structured logging system. The feature includes built-in subscribers for ActionController, ActiveRecord, ActiveJob, and ActionMailer events, with automatic parameter filtering that respects Rails'
config.filter_parametersconfiguration.To enable structured logging with Rails log subscribers:
Sentry.init do |config| # ... your setup ... # Make sure structured logging is enabled config.enable_logs = true # Enable default Rails log subscribers (ActionController and ActiveRecord) config.rails.structured_logging.enabled = true end
To configure all subscribers:
Sentry.init do |config| # ... your setup ... # Make sure structured logging is enabled config.enable_logs = true # Enable Rails log subscribers config.rails.structured_logging.enabled = true # Add ActionMailer and ActiveJob subscribers config.rails.structured_logging.subscribers.update( action_mailer: Sentry::Rails::LogSubscribers::ActionMailerSubscriber, active_job: Sentry::Rails::LogSubscribers::ActiveJobSubscriber ) end
You can also define custom log subscribers by extending the base class:
class MyCustomSubscriber < Sentry::Rails::LogSubscriber attach_to :my_component def my_event(event) log_structured_event( message: "Custom event occurred", level: :info, attributes: { duration_ms: event.duration } ) end end Sentry.init do |config| # ... your setup ... # Make sure structured logging is enabled config.enable_logs = true # Enable Rails log subscribers config.rails.structured_logging.enabled = true # Add custom subscriber config.rails.structured_logging.subscribers[:my_component] = MyCustomSubscriber end
-
Introduce
structured_loggingconfig namespace (#2692)
Bug Fixes
- Silence
_performmethod redefinition warning (#2682) - Update sentry trace regexp (#2678)
- Remove redundant
attr_reader(#2673)
Internal
- Factor out do_request in HTTP transport (#2662)
- Add
Sentry::DebugTransportthat captures events and stores them as JSON for debugging purposes (#2664) - Add
Sentry::DebugStructuredLoggerthat caputres log events and stores them as JSON to a file for debugging purposes (#2693) - Rails test runner (#2687)
- Update common gem deps for development (#2688)
- Make devcontainer work with ancient Ruby/Rails (#2679)
- Improved devcontainer setup with e2e test mini infra (#2672)
- Address various flaky specs
5.26.0
Feature
-
Support for
:loggerpatch which enables sending logs to Sentry whenenabled_logsis set to true (#2657)Here's a sample config:
Sentry.init do |config| # ... your setup ... config.enable_logs = true config.enabled_patches = [:logger] end
Bug Fixes
- Skip creating
LogEventBufferif logging is not enabled (#2652)