chore(deps): update dependency sentry-ruby to v5.17.1 - autoclosed
This MR contains the following updates:
Package | Update | Change |
---|---|---|
sentry-ruby (changelog) | minor |
5.16.1 -> 5.17.1
|
Release Notes
getsentry/sentry-ruby (sentry-ruby)
v5.17.1
Bug Fixes
- Fix NoMethodError / Make session_tracking check consistent (#2269)
v5.17.0
Features
- Add support for distributed tracing in
sentry-delayed_job
#2233 - Fix warning about default gems on Ruby 3.3.0 (#2225)
- Add
hint:
support toSentry::Rails::ErrorSubscriber
#2235 - Add Metrics support
-
Add main APIs and
Aggregator
thread #2247 -
Add
Sentry::Metrics.timing
API for measuring block duration #2254 -
Add metric summaries on spans #2255
-
Add
config.metrics.before_emit
callback #2258 -
Add code locations for metrics #2263
The SDK now supports recording and aggregating metrics. A new thread will be started for aggregation and will flush the pending data to Sentry every 5 seconds.
To enable this behavior, use:
Sentry.init do |config|
-
...
config.metrics.enabled = true
end
```
And then in your application code, collect metrics as follows:
```ruby
increment a simple counter
Sentry::Metrics.increment('button_click')
set a value, unit and tags
Sentry::Metrics.increment('time', 5, unit: 'second', tags: { browser:' firefox' })
distribution - get statistical aggregates from an array of observations
Sentry::Metrics.distribution('page_load', 15.0, unit: 'millisecond')
gauge - record statistical aggregates directly on the SDK, more space efficient
Sentry::Metrics.gauge('page_load', 15.0, unit: 'millisecond')
set - get unique counts of elements
Sentry::Metrics.set('user_view', 'jane')
timing - measure duration of code block, defaults to seconds
metric.timing
span
will also automatically create a Sentry::Metrics.timing('how_long') { sleep(1) }
timing - measure duration of code block in other duraton units
Sentry::Metrics.timing('how_long_ms', unit: 'millisecond') { sleep(0.5) }
```
You can filter some keys or update tags on the fly with the `before_emit` callback, which will be triggered before a metric is aggregated.
```ruby
Sentry.init do |config|
...
the 'foo' metric will be filtered and the tags will be updated to add :bar and remove :baz
config.metrics.before_emit = lambda do |key, tags|
return nil if key == 'foo'
tags[:bar] = 42
tags.delete(:baz)
true
end
end
```
By default, the SDK will send code locations for unique metrics (defined by type, key and unit) once a day and with every startup/shutdown of your application.
You can turn this off with the following:
```ruby
Sentry.init do |config|
...
config.metrics.enable_code_locations = false
end
```
Bug Fixes
- Fix undefined method 'constantize' issue in
sentry-resque
(#2248) - Only instantiate SessionFlusher when the SDK is enabled under the current env #2245
- Fixes #2234
- Update backtrace parsing regexp to support Ruby 3.4 (#2252)
- Make sure
sending_allowed?
is respected irrespective of spotlight configuration (#2231)- Fixes #2226
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.