|
2 | 2 |
|
3 | 3 | ### Features |
4 | 4 |
|
| 5 | +- Implement new `Sentry.metrics` functionality ([#2818](https://github.com/getsentry/sentry-ruby/pull/2818)) |
| 6 | + |
| 7 | + The SDK now supports Sentry's new [Trace Connected Metrics](https://docs.sentry.io/product/explore/metrics/) product. |
| 8 | + |
| 9 | + ```ruby |
| 10 | + Sentry.init do |config| |
| 11 | + # ... |
| 12 | + config.enable_metrics = true |
| 13 | + end |
| 14 | + |
| 15 | + Sentry.metrics.count("button.click", 1, attributes: { button_id: "submit" }) |
| 16 | + Sentry.metrics.distribution("response.time", 120.5, unit: "millisecond") |
| 17 | + Sentry.metrics.gauge("cpu.usage", 75.2, unit: "percent") |
| 18 | + ``` |
| 19 | + |
5 | 20 | - Support for tracing `Sequel` queries ([#2814](https://github.com/getsentry/sentry-ruby/pull/2814)) |
6 | 21 |
|
7 | 22 | ```ruby |
|
19 | 34 | ### Bug Fixes |
20 | 35 |
|
21 | 36 | - Handle empty frames case gracefully with local vars ([#2807](https://github.com/getsentry/sentry-ruby/pull/2807)) |
| 37 | +- Handle more extra attribute types when using `extra` attributes for structured logging ([#2815](https://github.com/getsentry/sentry-ruby/pull/2815)) |
| 38 | + ```ruby |
| 39 | + # This now works too and the nested hash is dumped to JSON string |
| 40 | + Sentry.logger.info("Hello World", extra: { today: Date.today, user_id: user.id }) |
| 41 | + ``` |
22 | 42 | - Prevent SDK crash when SDK logging fails ([#2817](https://github.com/getsentry/sentry-ruby/pull/2817)) |
23 | 43 |
|
24 | 44 | ## 6.2.0 |
|
530 | 550 | - Use `Concurrent.available_processor_count` instead of `Concurrent.usable_processor_count` ([#2358](https://github.com/getsentry/sentry-ruby/pull/2358)) |
531 | 551 |
|
532 | 552 | - Support for tracing Faraday requests ([#2345](https://github.com/getsentry/sentry-ruby/pull/2345)) |
533 | | - |
534 | 553 | - Closes [#1795](https://github.com/getsentry/sentry-ruby/issues/1795) |
535 | 554 | - Please note that the Faraday instrumentation has some limitations in case of async requests: <https://github.com/lostisland/faraday/issues/1381> |
536 | 555 |
|
|
553 | 572 | ``` |
554 | 573 |
|
555 | 574 | - Transaction data are now included in the context ([#2365](https://github.com/getsentry/sentry-ruby/pull/2365)) |
556 | | - |
557 | 575 | - Closes [#2363](https://github.com/getsentry/sentry-ruby/issues/2363) |
558 | 576 |
|
559 | 577 | - Inject Sentry meta tags in the Rails application layout automatically in the generator ([#2369](https://github.com/getsentry/sentry-ruby/pull/2369)) |
|
667 | 685 | - Fix warning about default gems on Ruby 3.3.0 ([#2225](https://github.com/getsentry/sentry-ruby/pull/2225)) |
668 | 686 | - Add `hint:` support to `Sentry::Rails::ErrorSubscriber` [#2235](https://github.com/getsentry/sentry-ruby/pull/2235) |
669 | 687 | - Add [Metrics](https://docs.sentry.io/product/metrics/) support |
670 | | - |
671 | 688 | - Add main APIs and `Aggregator` thread [#2247](https://github.com/getsentry/sentry-ruby/pull/2247) |
672 | 689 | - Add `Sentry::Metrics.timing` API for measuring block duration [#2254](https://github.com/getsentry/sentry-ruby/pull/2254) |
673 | 690 | - Add metric summaries on spans [#2255](https://github.com/getsentry/sentry-ruby/pull/2255) |
|
827 | 844 | - Improve default slug generation for Crons [#2168](https://github.com/getsentry/sentry-ruby/pull/2168) |
828 | 845 | - Change release name generator to use full SHA commit hash and align with `sentry-cli` and other Sentry SDKs [#2174](https://github.com/getsentry/sentry-ruby/pull/2174) |
829 | 846 | - Automatic Crons support for scheduling gems |
830 | | -
|
831 | 847 | - Add support for [`sidekiq-cron`](https://github.com/sidekiq-cron/sidekiq-cron) [#2170](https://github.com/getsentry/sentry-ruby/pull/2170) |
832 | 848 |
|
833 | 849 | You can opt in to the `sidekiq-cron` patch and we will automatically monitor check-ins for all jobs listed in your `config/schedule.yml` file. |
|
883 | 899 | - Adopt Rails 7.1's new BroadcastLogger [#2120](https://github.com/getsentry/sentry-ruby/pull/2120) |
884 | 900 | - Support sending events after all retries were performed (sentry-resque) [#2087](https://github.com/getsentry/sentry-ruby/pull/2087) |
885 | 901 | - Add [Cron Monitoring](https://docs.sentry.io/product/crons/) support |
886 | | -
|
887 | 902 | - Add `Sentry.capture_check_in` API for Cron Monitoring [#2117](https://github.com/getsentry/sentry-ruby/pull/2117) |
888 | 903 |
|
889 | 904 | You can now track progress of long running scheduled jobs. |
|
966 | 981 | ``` |
967 | 982 |
|
968 | 983 | - Tracing without Performance |
969 | | - |
970 | 984 | - Implement `PropagationContext` on `Scope` and add `Sentry.get_trace_propagation_headers` API [#2084](https://github.com/getsentry/sentry-ruby/pull/2084) |
971 | 985 | - Implement `Sentry.continue_trace` API [#2089](https://github.com/getsentry/sentry-ruby/pull/2089) |
972 | 986 |
|
|
1053 | 1067 | ``` |
1054 | 1068 |
|
1055 | 1069 | Some implementation caveats: |
1056 | | - |
1057 | 1070 | - Profiles are sampled **relative** to traces, so if both rates are 0.5, we will capture 0.25 of all requests. |
1058 | 1071 | - Profiles are only captured for code running within a transaction. |
1059 | 1072 | - Profiles for multi-threaded servers like `puma` might not capture frames correctly when async I/O is happening. This is a `stackprof` limitation. |
|
1138 | 1151 | - Expose `end_timestamp` in `Span#finish` and `Transaction#finish` [#1946](https://github.com/getsentry/sentry-ruby/pull/1946) |
1139 | 1152 | - Add `Transaction#set_context` api [#1947](https://github.com/getsentry/sentry-ruby/pull/1947) |
1140 | 1153 | - Add OpenTelemetry support with new `sentry-opentelemetry` gem |
1141 | | - |
1142 | 1154 | - Add `config.instrumenter` to switch between `:sentry` and `:otel` instrumentation [#1944](https://github.com/getsentry/sentry-ruby/pull/1944) |
1143 | 1155 |
|
1144 | 1156 | The new `sentry-opentelemetry` gem adds support to automatically integrate OpenTelemetry performance tracing with Sentry. [Give it a try](https://github.com/getsentry/sentry-ruby/tree/master/sentry-opentelemetry#getting-started) and let us know if you have any feedback or problems with using it. |
|
1158 | 1170 | ``` |
1159 | 1171 |
|
1160 | 1172 | - Use `Sentry.with_child_span` in redis and net/http instead of `span.start_child` [#1920](https://github.com/getsentry/sentry-ruby/pull/1920) |
1161 | | - |
1162 | 1173 | - This might change the nesting of some spans and make it more accurate |
1163 | 1174 | - Followup fix to set the sentry-trace header in the correct place [#1922](https://github.com/getsentry/sentry-ruby/pull/1922) |
1164 | 1175 |
|
|
1187 | 1198 | ### Features |
1188 | 1199 |
|
1189 | 1200 | - Support rack 3 [#1884](https://github.com/getsentry/sentry-ruby/pull/1884) |
1190 | | - |
1191 | 1201 | - We no longer need the `HTTP_VERSION` check for ignoring the header |
1192 | 1202 |
|
1193 | 1203 | - Add [Dynamic Sampling](https://docs.sentry.io/product/sentry-basics/sampling/) support |
1194 | 1204 | The SDK now supports Sentry's Dynamic Sampling product. |
1195 | 1205 |
|
1196 | 1206 | Note that this is not supported for users still using the `config.async` option. |
1197 | | - |
1198 | 1207 | - Parse incoming [W3C Baggage Headers](https://www.w3.org/TR/baggage/) and propagate them to continue traces [#1869](https://github.com/getsentry/sentry-ruby/pull/1869) |
1199 | 1208 | - in all outgoing requests in our net/http patch |
1200 | 1209 | - in Sentry transactions as [Dynamic Sampling Context](https://develop.sentry.dev/sdk/performance/dynamic-sampling-context/) |
|
1230 | 1239 | - Expose `:values` in `ExceptionInterface`, so that it can be accessed in `before_send` under `event.exception.values` [#1843](https://github.com/getsentry/sentry-ruby/pull/1843) |
1231 | 1240 |
|
1232 | 1241 | - Add top level `Sentry.close` API [#1844](https://github.com/getsentry/sentry-ruby/pull/1844) |
1233 | | - |
1234 | 1242 | - Cleans up SDK state and sets it to uninitialized |
1235 | 1243 | - No-ops all SDK APIs and also disables the transport layer, so nothing will be sent to Sentry after closing the SDK |
1236 | 1244 |
|
@@ -1392,7 +1400,6 @@ end |
1392 | 1400 | - Check envelope size before sending it [#1747](https://github.com/getsentry/sentry-ruby/pull/1747) |
1393 | 1401 |
|
1394 | 1402 | The SDK will now check if the envelope's event items are oversized before sending the envelope. It goes like this: |
1395 | | - |
1396 | 1403 | 1. If an event is oversized (200kb), the SDK will remove its breadcrumbs (which in our experience is the most common cause). |
1397 | 1404 | 2. If the event size now falls within the limit, it'll be sent. |
1398 | 1405 | 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, |
@@ -1711,7 +1718,6 @@ When `config.send_default_pii` is set as `true`, `:http_logger` will include que |
1711 | 1718 | ### Features |
1712 | 1719 |
|
1713 | 1720 | - Support exception frame's local variable capturing |
1714 | | - |
1715 | 1721 | - [#1580](https://github.com/getsentry/sentry-ruby/pull/1580) |
1716 | 1722 | - [#1589](https://github.com/getsentry/sentry-ruby/pull/1589) |
1717 | 1723 |
|
|
0 commit comments