Releases: getsentry/sentry-ruby
6.6.0
New Features ✨
-
(yabeda) Add sentry-yabeda adapter gem by @dingsdax in #2925
There's a new
sentry-yabedagem that integrates Sentry Metrics with Yabeda.
Add the new gem to yourGemfile:gem "sentry-yabeda"
Initialize Sentry with metrics enabled. The Yabeda adapter registers itself automatically when
sentry-yabedais required — there's no extra setup:Sentry.init do |config| config.dsn = ENV["SENTRY_DSN"] config.enable_metrics = true end
-
Add release detection from Kamal deployment by @t27duck in #2895
Bug Fixes 🐛
- (sidekiq) Report error when retry limit is below attempt_threshold by @marcboquet in #2940
- (specs) Stop sidekiq-scheduler after each test by @solnic in #2897
- (stacktrace) Stop leaking internal frame state into event payload by @sl0thentr0py in #2962
- (tests) Proper dummy transport clean up for hub cloning by @solnic in #2957
- (yabeda) Normalize plural Yabeda units to Sentry's singular form by @sentry-junior in #2953
- Do not overwrite baggage header contents if it already exists by @jakubsomonday in #2896
Internal Changes 🔧
We made some memory performance and caching improvements with the help of pi-autoresearch. Enjoy the lower overhead!
- Use FilenameCache in profilers by @sl0thentr0py in #2919
- Add FilenameCache to cache compute_filename results by @HazAT in #2904
- Optimize LineCache to reduce allocations by @HazAT in #2903
- Avoid unnecessary allocations in hot paths by @HazAT in #2902
- Optimize lowercase check in RequestInterface by @HazAT in #2908
6.5.0
New Features ✨
- (otlp) Add collector_url option to OTLP integration by @sl0thentr0py in #2887
- (release-detector) Prefer HEROKU_BUILD_COMMIT over deprecated HEROKU_SLUG_COMMIT by @ericapisani in #2886
- Implement strict trace continuation by @giortzisg in #2872
Bug Fixes 🐛
- (rails) Set mechanism.handled based on error handling status by @solnic in #2892
- Copy event processors on Scope#dup by @sl0thentr0py in #2893
- Map
trilogydatabase adapter tomysqlfor Query Insights compatibility by @krismichalski in #2656 - Don't transform attributes in place in metrics by @sl0thentr0py in #2883
Internal Changes 🔧
- (transport) Handle HTTP 413 response for oversized envelopes by @sl0thentr0py in #2885
6.4.1
6.4.0
Features
-
Add support for OTLP ingestion in
sentry-opentelemetry(#2853)Sentry now has first class OTLP ingestion capabilities.
Sentry.init do |config| ## ... config.otlp.enabled = true end
Under the hood, this will setup:
- An
OpenTelemetry::Exporterthat will automatically set up the OTLP ingestion endpoint from your DSN- You can turn this off with
config.otlp.setup_otlp_traces_exporter = falseto setup your own exporter
- You can turn this off with
- An
OTLPPropagatorthat ensures Distributed Tracing works- You can turn this off with
config.otlp.setup_propagator = false
- You can turn this off with
- Trace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics
If you were using the
SpanProcessorbefore, we recommend migrating over toconfig.otlpsince it's a much simpler setup. - An
-
Treat Sidekiq nil retry as true (#2864)
-
Queue time capture for Rack (#2838)
Bug Fixes
6.3.1
6.3.0
Features
-
Implement new
Sentry.metricsfunctionality (#2818)The SDK now supports Sentry's new Trace Connected Metrics product.
Sentry.metrics.count("button.click", 1, attributes: { button_id: "submit" }) Sentry.metrics.distribution("response.time", 120.5, unit: "millisecond") Sentry.metrics.gauge("cpu.usage", 75.2, unit: "percent")
Metrics is enabled by default and only activates once you use the above APIs. To disable completely:
Sentry.init do |config| # ... config.enable_metrics = false end
-
Support for tracing
Sequelqueries (#2814)require "sentry" require "sentry/sequel" Sentry.init do |config| config.enabled_patches << :sequel end DB = Sequel.sqlite DB.extension(:sentry)
-
Add support for OpenTelemetry messaging/queue system spans (#2685)
-
Add support for
config.std_lib_logger_filterproc (#2829)Sentry.init do |config| config.std_lib_logger_filter = proc do |logger, message, severity| # Only send ERROR and above messages severity == :error || severity == :fatal end config.enabled_patches = [:std_lib_logger] end
Bug Fixes
- Handle empty frames case gracefully with local vars (#2807)
- Handle more extra attribute types when using
extraattributes for structured logging (#2815)# This now works too and the nested hash is dumped to JSON string Sentry.logger.info("Hello World", extra: { today: Date.today, user_id: user.id })
- Prevent SDK crash when SDK logging fails (#2817)
Internal
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)