sentry-types
Common reusable types for implementing the sentry.io protocol.
0.49.1
52M downloads/mo
#1195 most downloaded on crates.io
getsentry/sentry-rust
What this package is like to depend on
Last release 20 days ago
03 Aug 2026
Ships fairly regularly
a new release about every 5 weeks
Most releases are documented
notes for 67 of 93 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
93 releases · first in 2018
15 releases in the last 12 months
see the full history below
Release timeline
93 releases · Mar 2018 to Aug 2026Releases
latest 60 of 93-
0.49.103 Aug 2026Release notes
Open source →Fixes
- Preserve floating-point fields in tracing logs as numeric attributes (#1278).
-
0.49.028 Jul 2026Release notes
Open source →Breaking Changes
-
ClientOptionsis now#[non_exhaustive](#1230). The struct must now be constructed with the builder-style setters:// Before let options = sentry::ClientOptions { dsn: "https://[email protected]/0", debug: true, release: Some("[email protected]".into()), ..Default::default() }; // After let options = sentry::ClientOptions::new() .dsn("https://[email protected]/0") .debug(true) .release("[email protected]");
-
Updated the
sentry-opentelemetryintegration to support OpenTelemetry 0.32. Users of the integration must update their OpenTelemetry dependencies from 0.29 to 0.32 (#1262). -
The
logsandmetricsfeatures are now enabled by default in thesentrycrate. This does not break the API, but may cause new telemetry to be sent to Sentry: log and tracing integrations can send structured logs, and applications can send metrics without adding the feature flags. Disable these features explicitly if this additional telemetry is not desired (#1251). -
Removed the public
ClientOptions::sample_ratefield. UseClientOptions::event_sampling_strategyto inspect the configured event sampling strategy, and use the existingClientOptions::sample_rate(...)builder setter to configure fixed-rate sampling. -
Removed the public
ClientOptions::sample_ratefield. UseClientOptions::event_sampling_strategyto inspect the configured event sampling strategy, and use the existingClientOptions::sample_rate(...)builder setter to configure fixed-rate sampling (#1228). -
Removed the public
ClientOptions::traces_sample_rateandClientOptions::traces_samplerfields. UseClientOptions::traces_sampling_strategyto inspect the configured traces sampling strategy, and use the existingClientOptions::traces_sample_rate(...)andClientOptions::traces_sampler(...)builder setters to configure fixed-rate and callback-based sampling (#1227). -
EnvelopeItemnow storesEventandTransactionpayloads inBoxvalues. Code that constructs or pattern-matches these variants must account for the additional indirection (#1255). -
The
sentry_log::RecordMappingenum'sEventnow stores the event in aBox(#1269). -
sentry_slog::RecordMappingis now#[non_exhaustive]and theEventvariant now stores a boxedEvent<'static>(#1270) -
The
sentry_tracing::EventMappingenum'sEventvariant is now stored in aBox(#1272)
New Features
- Added
TracePropagationContextas the preferred type for Sentry trace propagation metadata. The existingSentryTracetype remains available for backwards compatibility (#1212). - Added
Dsn::org_id, which parses the Sentry SaaS organization ID from DSN hosts such aso123.ingest.sentry.io(#1202). - Added
ClientOptions::org_idandClientOptions::strict_trace_continuation(#1203). These options control how traces are continued and can help prevent traces from third-party services, which happen to be instrumented with Sentry, from being continued.
Improvements
- Improved trace continuation safety by rejecting incoming traces with incompatible
sentry-org_idvalues when starting transactions, according to strict trace continuation rules (#1218).
Fixes
- Restored the reqwest transport's pre-0.13 protocol features by disabling HTTP/2 and native-TLS ALPN (#1258).
EnvelopeErroris now#[non_exhaustive]to allow adding new error variants without a breaking change (#1254).
Release notes
Open source →Breaking Changes
-
ClientOptionsis now#[non_exhaustive](#1230). The struct must now be constructed with the builder-style setters:// Before let options = sentry::ClientOptions { dsn: "https://[email protected]/0", debug: true, release: Some("[email protected]".into()), ..Default::default() }; // After let options = sentry::ClientOptions::new() .dsn("https://[email protected]/0") .debug(true) .release("[email protected]"); -
Updated the
sentry-opentelemetryintegration to support OpenTelemetry 0.32. Users of the integration must update their OpenTelemetry dependencies from 0.29 to 0.32 (#1262). -
The
logsandmetricsfeatures are now enabled by default in thesentrycrate. This does not break the API, but may cause new telemetry to be sent to Sentry: log and tracing integrations can send structured logs, and applications can send metrics without adding the feature flags. Disable these features explicitly if this additional telemetry is not desired (#1251). -
Removed the public
ClientOptions::sample_ratefield. UseClientOptions::event_sampling_strategyto inspect the configured event sampling strategy, and use the existingClientOptions::sample_rate(...)builder setter to configure fixed-rate sampling. -
Removed the public
ClientOptions::sample_ratefield. UseClientOptions::event_sampling_strategyto inspect the configured event sampling strategy, and use the existingClientOptions::sample_rate(...)builder setter to configure fixed-rate sampling (#1228). -
Removed the public
ClientOptions::traces_sample_rateandClientOptions::traces_samplerfields. UseClientOptions::traces_sampling_strategyto inspect the configured traces sampling strategy, and use the existingClientOptions::traces_sample_rate(...)andClientOptions::traces_sampler(...)builder setters to configure fixed-rate and callback-based sampling (#1227). -
EnvelopeItemnow storesEventandTransactionpayloads inBoxvalues. Code that constructs or pattern-matches these variants must account for the additional indirection (#1255). -
The
sentry_log::RecordMappingenum'sEventnow stores the event in aBox(#1269). -
sentry_slog::RecordMappingis now#[non_exhaustive]and theEventvariant now stores a boxedEvent<'static>(#1270) -
The
sentry_tracing::EventMappingenum'sEventvariant is now stored in aBox(#1272)
New Features
- Added
TracePropagationContextas the preferred type for Sentry trace propagation metadata. The existingSentryTracetype remains available for backwards compatibility (#1212). - Added
Dsn::org_id, which parses the Sentry SaaS organization ID from DSN hosts such aso123.ingest.sentry.io(#1202). - Added
ClientOptions::org_idandClientOptions::strict_trace_continuation(#1203). These options control how traces are continued and can help prevent traces from third-party services, which happen to be instrumented with Sentry, from being continued.
Improvements
- Improved trace continuation safety by rejecting incoming traces with incompatible
sentry-org_idvalues when starting transactions, according to strict trace continuation rules (#1218).
Fixes
- Restored the reqwest transport's pre-0.13 protocol features by disabling HTTP/2 and native-TLS ALPN (#1258).
EnvelopeErroris now#[non_exhaustive]to allow adding new error variants without a breaking change (#1254).
-
-
0.48.514 Jul 2026Release notes
Open source →Fixes
- Fixed a bug that could cause the SDK to panic and, in some cases, panic while handling the panic, aborting the process (#1241).
Release notes
Open source →Fixes
- Fixed a bug that could cause the SDK to panic and, in some cases, panic while handling the panic, aborting the process (#1241).
-
0.48.407 Jul 2026Release notes
Open source →New Features
-
Added builder-style setters to
ClientOptions(#1221):// Before let options = sentry::ClientOptions { dsn: "https://[email protected]/0", debug: true, release: Some("[email protected]".into()), ..Default::default() }; // After let options = sentry::ClientOptions::new() .dsn("https://[email protected]/0") .debug(true) .release("[email protected]");
Deprecations
- Constructing
ClientOptionswith struct-literal syntax, including..Default::default()functional update syntax, is deprecated and will stop compiling in the next breaking release, as we will markClientOptionsas#[non_exhaustive](#1221). Reading and assigning individual public fields will remain supported. Please migrate to the builder-style setters introduced in this release.
Release notes
Open source →New Features
-
Added builder-style setters to
ClientOptions(#1221):// Before let options = sentry::ClientOptions { dsn: "https://[email protected]/0", debug: true, release: Some("[email protected]".into()), ..Default::default() }; // After let options = sentry::ClientOptions::new() .dsn("https://[email protected]/0") .debug(true) .release("[email protected]");
Deprecations
- Constructing
ClientOptionswith struct-literal syntax, including..Default::default()functional update syntax, is deprecated and will stop compiling in the next breaking release, as we will markClientOptionsas#[non_exhaustive](#1221). Reading and assigning individual public fields will remain supported. Please migrate to the builder-style setters introduced in this release.
-
-
0.48.325 Jun 2026Release notes
Open source →The Sentry Rust SDK now reports data discarded by the SDK to Sentry’s Stats page. The SDK reports approximate counts for drops from transports, queues, rate-limit backoff, sampling, event processors, and
before_send*callbacks, including span counts for dropped transactions and byte counts for dropped logs and metrics.New Features
- Added
EnvelopeFilterandEnvelopeFilterCallbacks, which let callers observe envelope items removed byEnvelope::filter, including attachments removed after their event or transaction is filtered out. ExistingEnvelope::filterclosure callers continue to work, although some closures may require an explicit item type annotation (#1182). - Added the
LossSourcetrait, which provides the client report data categories and quantities to report when supported Sentry data is dropped (#1170). - Added
TransportFactory::create_transport_with_options, which constructs transports fromTransportOptionsinstead of fullClientOptions(#1142). - Added transport-specific options types and
with_optionsconstructors for built-in HTTP transports, includingReqwestHttpTransportOptions,CurlHttpTransportOptions,UreqHttpTransportOptions, andEmbeddedSVCHttpTransportOptions(#1142). - Added transport worker options types and deprecated the legacy constructors for built-in background transport workers, including
StdTransportThreadOptionsandTokioTransportThreadOptions(#1142). - Added client report protocol types in
sentry-types, includingClientReport,client_report::Item,client_report::Category, andclient_report::Reason, plus support for serializingclient_reportenvelope items (#1144). - Added a client report
Recordertype, which modernTransportFactoryimplementations receive viaTransportOptions. Transports can use this recorder to record discarded Sentry data; the SDK aggregates these reported losses and automatically sends them in a future envelope (#1158).
Deprecations
- Deprecated
Hub::with. UseHub::currentinstead (#1126).
Fixes
- Fixed
ureqtransport handling for HTTP error statuses so429rate limits and413payload-too-large responses are processed correctly (#1177).
Behavior Changes
- Custom transport factories that implement
TransportFactory::create_transportnow receiveClientOptionsreconstructed fromTransportOptions. The reconstructed options include only transport-relevant fields, such as DSN, user agent, proxy settings, and TLS certificate validation settings. This may affect code that reads non-transport fields increate_transport, but the API remains source-compatible and this change is included in a minor/patch release (#1142).
Release notes
Open source →The Sentry Rust SDK now reports data discarded by the SDK to Sentry’s Stats page. The SDK reports approximate counts for drops from transports, queues, rate-limit backoff, sampling, event processors, and
before_send*callbacks, including span counts for dropped transactions and byte counts for dropped logs and metrics.New Features
- Added
EnvelopeFilterandEnvelopeFilterCallbacks, which let callers observe envelope items removed byEnvelope::filter, including attachments removed after their event or transaction is filtered out. ExistingEnvelope::filterclosure callers continue to work, although some closures may require an explicit item type annotation (#1182). - Added the
LossSourcetrait, which provides the client report data categories and quantities to report when supported Sentry data is dropped (#1170). - Added
TransportFactory::create_transport_with_options, which constructs transports fromTransportOptionsinstead of fullClientOptions(#1142). - Added transport-specific options types and
with_optionsconstructors for built-in HTTP transports, includingReqwestHttpTransportOptions,CurlHttpTransportOptions,UreqHttpTransportOptions, andEmbeddedSVCHttpTransportOptions(#1142). - Added transport worker options types and deprecated the legacy constructors for built-in background transport workers, including
StdTransportThreadOptionsandTokioTransportThreadOptions(#1142). - Added client report protocol types in
sentry-types, includingClientReport,client_report::Item,client_report::Category, andclient_report::Reason, plus support for serializingclient_reportenvelope items (#1144). - Added a client report
Recordertype, which modernTransportFactoryimplementations receive viaTransportOptions. Transports can use this recorder to record discarded Sentry data; the SDK aggregates these reported losses and automatically sends them in a future envelope (#1158).
Deprecations
- Deprecated
Hub::with. UseHub::currentinstead (#1126).
Fixes
- Fixed
ureqtransport handling for HTTP error statuses so429rate limits and413payload-too-large responses are processed correctly (#1177).
Behavior Changes
- Custom transport factories that implement
TransportFactory::create_transportnow receiveClientOptionsreconstructed fromTransportOptions. The reconstructed options include only transport-relevant fields, such as DSN, user agent, proxy settings, and TLS certificate validation settings. This may affect code that reads non-transport fields increate_transport, but the API remains source-compatible and this change is included in a minor/patch release (#1142).
- Added
-
0.48.211 May 2026Release notes
Open source →New Features
- Added
rustls-no-providerfeature flag in thesentrycrate to allow using therustlstransport with a different crypto provider (#1103).
Fixes
Release notes
Open source →New Features
- Added
rustls-no-providerfeature flag in thesentrycrate to allow using therustlstransport with a different crypto provider (#1103).
Fixes
- Added
-
0.48.104 May 2026Release notes
Open source →Fixes
- Changed
ClientOptions::enable_metricsto default totrue, aligning metrics behavior with other Sentry SDKs (#1106). Metric capture APIs still require themetricsfeature flag at compile time.
Release notes
Open source →Fixes
- Changed
ClientOptions::enable_metricsto default totrue, aligning metrics behavior with other Sentry SDKs (#1106). Metric capture APIs still require themetricsfeature flag at compile time.
- Changed
-
0.48.028 Apr 2026Release notes
Open source →Breaking Changes
- Added the following metrics-related fields to the
ClientOptionsstruct insentry-core. Both fields are no-ops, unless themetricsfeature flag is enabled:enable_metrics, used to enable sending metrics to Sentry (#1073).before_send_metric, used to define a callback for filtering/pre-processing metrics before sending to Sentry (#1064).
- There are several breakages related to the SemVer feature additivity bug fixes:
sentry_core::ClientOptionsfieldsbefore_send_log,enable_logs,auto_session_tracking, andsession_modeare no longer gated behind thelogsandrelease-healthfeature flags (#1091). Code that constructsClientOptionswith a full struct literal (without..Default::default()), or which exhaustively matches against it, must now include all four fields regardless of enabled features.sentry_core::Scopecan no longer be publicly constructed or exhaustively matched against, even when theclientfeature is disabled (#1094). Previously, both of these were possible whenclientwas disabled.sentry_core::Scope::add_event_processornow requires passed closures to beRefUnwindSafe(#1093). Thanks to this change,sentry_core::Scopeis nowUnwindSaferegardless of feature flag configuration; previously,Scopewas onlyUnwindSafewhen theclientfeature was disabled.sentry_tracing::EventMappingis now#[non_exhaustive](#1097).sentry_log::RecordMappingis now#[non_exhaustive](#1098).
New Features
📊📈💯 The Sentry-Rust SDK now supports emitting Sentry Metrics (#1073)!
To get started, you will need to add the
metricsfeature flag when compiling thesentrycrate. You will also need to enable metrics when initializing the SDK, like so:use sentry::ClientOptions; let _guard = sentry::init(( "(your DSN here)", ClientOptions { enable_metrics: true, // ... other options ... ..Default::default() }, ));
You can then capture metrics as follows:
use sentry::metrics; use sentry::types::protocol::latest::Unit; // We support counter, gauge, and distribution metrics. metrics::counter("example.counter", 1).capture(); metrics::gauge("connections", 20).capture(); metrics::distribution("response.time", 123.4) .unit(Unit::Millisecond) // units can also be set on gauges .attribute("http.status", 200) // attributes can be set on all metric types .capture();
Fixes
- Fixed several feature additivity SemVer violations, where enabling a feature flag could have introduced breaking changes. All known violations are fixed now, so simply enabling an additional feature flag in any Sentry SDK crate should no longer cause any public API breakages. Fixing these issues required us to break the public API in some places; those breakages are detailed above.
Release notes
Open source →Breaking Changes
- Added the following metrics-related fields to the
ClientOptionsstruct insentry-core. Both fields are no-ops, unless themetricsfeature flag is enabled:enable_metrics, used to enable sending metrics to Sentry (#1073).before_send_metric, used to define a callback for filtering/pre-processing metrics before sending to Sentry (#1064).
- There are several breakages related to the SemVer feature additivity bug fixes:
sentry_core::ClientOptionsfieldsbefore_send_log,enable_logs,auto_session_tracking, andsession_modeare no longer gated behind thelogsandrelease-healthfeature flags (#1091). Code that constructsClientOptionswith a full struct literal (without..Default::default()), or which exhaustively matches against it, must now include all four fields regardless of enabled features.sentry_core::Scopecan no longer be publicly constructed or exhaustively matched against, even when theclientfeature is disabled (#1094). Previously, both of these were possible whenclientwas disabled.sentry_core::Scope::add_event_processornow requires passed closures to beRefUnwindSafe(#1093). Thanks to this change,sentry_core::Scopeis nowUnwindSaferegardless of feature flag configuration; previously,Scopewas onlyUnwindSafewhen theclientfeature was disabled.sentry_tracing::EventMappingis now#[non_exhaustive](#1097).sentry_log::RecordMappingis now#[non_exhaustive](#1098).
New Features
📊📈💯 The Sentry-Rust SDK now supports emitting Sentry Metrics (#1073)!
To get started, you will need to add the
metricsfeature flag when compiling thesentrycrate. You will also need to enable metrics when initializing the SDK, like so:use sentry::ClientOptions; let _guard = sentry::init(( "(your DSN here)", ClientOptions { enable_metrics: true, // ... other options ... ..Default::default() }, ));You can then capture metrics as follows:
use sentry::metrics; use sentry::types::protocol::latest::Unit; // We support counter, gauge, and distribution metrics. metrics::counter("example.counter", 1).capture(); metrics::gauge("connections", 20).capture(); metrics::distribution("response.time", 123.4) .unit(Unit::Millisecond) // units can also be set on gauges .attribute("http.status", 200) // attributes can be set on all metric types .capture();Fixes
- <a name="semver-additivity-bug-fixes-2026-04"></a> Fixed several feature additivity SemVer violations, where enabling a feature flag could have introduced breaking changes. All known violations are fixed now, so simply enabling an additional feature flag in any Sentry SDK crate should no longer cause any public API breakages. Fixing these issues required us to break the public API in some places; those breakages are detailed above.
- Added the following metrics-related fields to the
-
0.47.010 Mar 2026Release notes
Open source →Breaking Changes
- Update reqwest from 0.12.25 to 0.13.1 (#998). This change is breaking for users who use the
RequestHttpTransport::with_clientmethod. sentry_core::HubSwitchGuardis now!Send, preventing it from being moved across threads (#957).
New Features
- Added a
Envelope::into_itemsmethod, which returns an iterator over ownedEnvelopeItems in theEnvelope(#983). - Expose transport utilities (#949)
Fixes
Release notes
Open source →Breaking Changes
- Update reqwest from 0.12.25 to 0.13.1 (#998). This change is breaking for users who use the
RequestHttpTransport::with_clientmethod. sentry_core::HubSwitchGuardis now!Send, preventing it from being moved across threads (#957).
New Features
- Added a
Envelope::into_itemsmethod, which returns an iterator over ownedEnvelopeItems in theEnvelope(#983). - Expose transport utilities (#949)
Fixes
- Update reqwest from 0.12.25 to 0.13.1 (#998). This change is breaking for users who use the
-
0.46.204 Feb 2026Release notes
Open source →New Features
- Log HTTP 413 responses as oversized envelope discards in HTTP transports (#966)
Release notes
Open source →New Features
- Log HTTP 413 responses as oversized envelope discards in HTTP transports (#966)
Minimum Supported Rust Version
- Bump minimum supported Rust version to 1.88 (#970).
-
0.46.107 Jan 2026Release notes
Open source →Improvements
- Make it possible to == Transaction/Span/TransactionOrSpan (#942)
Dependencies
- Update reqwest from 0.12.15 to 0.12.25 (#951)
-
0.46.024 Nov 2025Release notes
Open source →Breaking changes
- Removed the
ClientOptionsstruct'strim_backtracesandextra_border_framesfields (#925).- These fields configured backtrace trimming, which is being removed in this release.
Improvements
- Removed backtrace trimming to align the Rust SDK with the general principle that Sentry SDKs should only truncate telemetry data when needed to comply with documented size limits (#925). This change ensures that as much data as possible remains available for debugging.
- If you notice any new issues being created for existing errors after this change, please open an issue on GitHub.
Fixes
- fix: adjust sentry.origin for log integration (#919) by @lcian
- Removed the
-
0.45.008 Oct 2025Release notes
Open source →Breaking changes
- Add custom variant to
AttachmentTypethat holds an arbitrary String. (#916)
- Add custom variant to
-
0.44.007 Oct 2025Release notes
Open source →Breaking changes
- feat(log): support combined LogFilters and RecordMappings (#914) by @lcian
- Breaking change:
sentry::integrations::log::LogFilterhas been changed to abitflagsstruct. - It's now possible to map a
logrecord to multiple items in Sentry by combining multiple log filters in the filter, e.g.log::Level::ERROR => LogFilter::Event | LogFilter::Log. - If using a custom
mapperinstead, it's possible to return aVec<sentry::integrations::log::RecordMapping>to map alogrecord to multiple items in Sentry.
- Breaking change:
Behavioral changes
- ref(log): send logs by default when logs feature flag is enabled (#915) by @lcian
- If the
logsfeature flag is enabled, the default Sentryloglogger now sends logs for all events at or above INFO.
- If the
- ref(logs): enable logs by default if logs feature flag is used (#910) by @lcian
- This changes the default value of
sentry::ClientOptions::enable_logstotrue. - This simplifies the setup of Sentry structured logs by requiring users to just add the
logfeature flag to thesentrydependency to opt-in to sending logs. - When the
logfeature flag is enabled, thetracingandlogintegrations will send structured logs to Sentry for all logs/events at or above INFO level by default.
- This changes the default value of
- feat(log): support combined LogFilters and RecordMappings (#914) by @lcian
-
0.43.024 Sep 2025Release notes
Open source →Breaking changes
- ref(tracing): rework tracing to Sentry span name/op conversion (#887) by @lcian
- The
tracingintegration now uses the tracing span name as the Sentry span name by default. - Before this change, the span name would be set based on the
tracingspan target (<module>::<function>when using thetracing::instrumentmacro). - The
tracingintegration now uses<span target>::<span name>as the default Sentry span op (i.e.<module>::<function>when usingtracing::instrument). - Before this change, the span op would be set based on the
tracingspan name. - Read below to learn how to customize the span name and op.
- When upgrading, please ensure to adapt any queries, metrics or dashboards to use the new span names/ops.
- The
- ref(tracing): use standard code attributes (#899) by @lcian
- Logs now carry the attributes
code.module.name,code.file.pathandcode.line.numberstandardized in OTEL to surface the respective information, in contrast with the previously senttracing.module_path,tracing.fileandtracing.line.
- Logs now carry the attributes
- fix(actix): capture only server errors (#877) by @lcian
- The Actix integration now properly honors the
capture_server_errorsoption (enabled by default), capturing errors returned by middleware only if they are server errors (HTTP status code 5xx). - Previously, if a middleware were to process the request after the Sentry middleware and return an error, our middleware would always capture it and send it to Sentry, regardless if it was a client, server or some other kind of error.
- With this change, we capture errors returned by middleware only if those errors can be classified as server errors.
- There is no change in behavior when it comes to errors returned by services, in which case the Sentry middleware only captures server errors exclusively.
- The Actix integration now properly honors the
- fix: send trace origin correctly (#906) by @lcian
TraceContextnow has an additional fieldorigin, used to report which integration created a transaction.
Behavioral changes
- feat(tracing): send both breadcrumbs and logs by default (#878) by @lcian
- If the
logsfeature flag is enabled, andenable_logs: trueis set on your client options, the default Sentrytracinglayer now sends logs for all events at or above INFO.
- If the
Features
-
ref(tracing): rework tracing to Sentry span name/op conversion (#887) by @lcian
- Additional special fields have been added that allow overriding certain data on the Sentry span:
sentry.op: override the Sentry span op.sentry.name: override the Sentry span name.sentry.trace: given a string matching a validsentry-traceheader (sent automatically by client SDKs), continues the distributed trace instead of starting a new one. If the value is not a validsentry-traceheader or a trace is already started, this value is ignored.
sentry.opandsentry.namecan also be applied retroactively by declaring fields with valuetracing::field::Emptyand then recorded usingtracing::Span::record.- Example usage:
#[tracing::instrument(skip_all, fields( sentry.op = "http.server", sentry.name = "GET /payments", sentry.trace = headers.get("sentry-trace").unwrap_or(&"".to_owned()), ))] async fn handle_request(headers: std::collections::HashMap<String, String>) { // ... } - Additional attributes are sent along with each span by default:
sentry.tracing.target: corresponds to thetracingspan'smetadata.target()code.module.name,code.file.path,code.line.number
- Additional special fields have been added that allow overriding certain data on the Sentry span:
-
feat(core): add Response context (#874) by @lcian
- The
Responsecontext can now be attached to events, to include information about HTTP responses such as headers, cookies and status code. - Example:
let mut event = Event::new(); let response = ResponseContext { cookies: Some(r#""csrftoken": "1234567""#.to_owned()), headers: Some(headers_map), status_code: Some(500), body_size: Some(15), data: Some("Invalid request"), }; event .contexts .insert("response".to_owned(), response.into());
- The
Fixes
- ref(tracing): rework tracing to Sentry span name/op conversion (#887) by @lcian
-
0.42.029 Jul 2025Release notes
Open source →Features
- feat(log): support kv feature of log (#851) by @lcian
- Attributes added to a
logrecord using thekvfeature are now recorded as attributes on the log sent to Sentry.
- Attributes added to a
- feat(types): add all the missing supported envelope headers (#867) by @lcian
- feat(types): add setters for envelope headers (#868) by @lcian
- It's now possible to set all of the envelope headers supported by the protocol when constructing envelopes.
- feat(core): add some DSC fields to transaction envelope headers (#869) by @lcian
- The SDK now sends additional envelope headers with transactions. This should solve some extrapolation issues for span metrics.
Behavioral changes
- feat: filter username and password in URLs (#864) by @lcian
- Usernames and passwords that could be contained in URLs captured when using the Actix Web or axum integration are now always filtered out.
- If the
Requestis created manually by the user, then these fields are not filtered out. - This information was already filtered by Relay, but should also be filtered by the SDK itself as a first line of defense.
Fixes
- docs: match description of
debugoption with behavior since PR #820 (#860) by @AlexTMjugador
- feat(log): support kv feature of log (#851) by @lcian
-
0.41.023 Jun 2025Release notes
Open source →Breaking changes
- feat(tracing): support combined EventFilters and EventMappings (#847) by @lcian
EventFilterhas been changed to abitflagsstruct.- It's now possible to map a
tracingevent to multiple items in Sentry by combining multiple event filters in theevent_filter, e.g.tracing::Level::ERROR => EventFilter::Event | EventFilter::Log. - It's also possible to use
EventMapping::Combinedto map atracingevent to multiple items in Sentry. ctxin the signatures ofevent_from_event,breadcrumb_from_eventandlog_from_eventhas been changed to takeimpl Into<Option<&'context Context<'context, S>>>to avoid cloning theContextwhen mapping to multiple items.
Features
- feat(core): emit debug log when calling capture_log but logs are disabled (#849) by @lcian
Fixes
- fix(logs): stringify u64 attributes greater than
i64::MAX(#846) by @lcian
Dependencies
- chore(deps): bump
anyhowand disable itsbacktracefeature (#632) by @LunaBorowska
- feat(tracing): support combined EventFilters and EventMappings (#847) by @lcian
-
0.40.017 Jun 2025Release notes
Open source →Breaking changes
- refactor(logs): apply user attributes to log regardless of
send_default_pii(#843) by @lcian- User attributes should be applied to logs regardless of
send_default_pii. Therefore, that parameter was removed fromsentry_core::Scope::apply_to_log.
- User attributes should be applied to logs regardless of
Features
- feat(tracing): add support for logs (#840) by @lcian
- To capture
tracingevents as Sentry structured logs, enable thelogsfeature of thesentrycrate. - Then, initialize the SDK with
enable_logs: truein your client options. - Finally, set up a custom event filter to map events to logs based on criteria such as severity. For example:
let sentry_layer = sentry_tracing::layer().event_filter(|md| match *md.level() { tracing::Level::ERROR => EventFilter::Event, tracing::Level::TRACE => EventFilter::Ignore, _ => EventFilter::Log, }); - To capture
- feat(log): add support for logs (#841) by @lcian
- To capture
logrecords as Sentry structured logs, enable thelogsfeature of thesentrycrate. - Then, initialize the SDK with
enable_logs: truein your client options. - Finally, set up a custom event filter to map records to Sentry logs based on criteria such as severity. For example:
let logger = sentry::integrations::log::SentryLogger::new().filter(|md| match md.level() { log::Level::Error => LogFilter::Event, log::Level::Trace => LogFilter::Ignore, _ => LogFilter::Log, }); - To capture
- refactor(logs): cache default attributes and add OS attributes (#842) by @lcian
os.nameandos.versionare now being attached to logs as default attributes.
Fixes
- fix(logs): send environment in
sentry.environmentdefault attribute (#837) by @lcian
Behavioral changes
- refactor(tracing): refactor internal code and improve docs (#839) by @lcian
- Errors carried by breadcrumbs will now be stored in the breadcrumb
dataunder their original field name. - Before, they were all stored under a single key called
errors.
- Errors carried by breadcrumbs will now be stored in the breadcrumb
Dependencies
- chore(deps): upgrade
ureqto 3.x (#835) by @algesten
- refactor(logs): apply user attributes to log regardless of
-
0.39.010 Jun 2025Release notes
Open source →Features
Support for Sentry structured logs has been added to the SDK.
-
To set up logs, enable the
logsfeature of thesentrycrate and setenable_logstotruein your client options. -
Then, use the
logger_trace!,logger_debug!,logger_info!,logger_warn!,logger_error!andlogger_fatal!macros to capture logs. -
To filter or update logs before they are sent, you can use the
before_send_logclient option. -
Please note that breaking changes could occur until the API is finalized.
-
feat(logs): add log protocol types (#821) by @lcian
-
feat(logs): add ability to capture and send logs (#823) by @lcian & @Swatinem
-
feat(logs): add macro-based API (#827) by @lcian & @szokeasaurusrex
-
feat(logs): send logs in batches (#831) by @lcian
Behavioral changes
- feat(core): implement Tracing without Performance (#811) by @lcian
- The SDK now implements Tracing without Performance, which makes it so that each
Scopeis associated with an object holding some tracing information. - This information is used as a fallback when capturing an event with tracing disabled or otherwise no ongoing span, to still allow related events to be linked by a trace.
- A new API
Scope::iter_trace_propagation_headershas been provided that will use the fallback tracing information if there is no currentSpanon theScope.
- The SDK now implements Tracing without Performance, which makes it so that each
Breaking changes
- refactor: remove
debug-logsfeature (#820) by @lcian- The deprecated
debug-logsfeature of thesentrycrate, used for the SDK's own internal logging, has been removed.
- The deprecated
-
-
0.38.113 May 2025Release notes
Open source →Fixes
- build: include
sentry-actixoptionally whenrelease-healthis enabled (#806) by @lciansentry-actixis now being included as a dependency only when explicitly added, either as a direct dependency or through theactixfeature flag of thesentrycrate.- Due to a mistake in the
Cargo.toml, it was previously being included as a dependency by default when using just thesentrycrate with default features.
- build: include
-
0.38.009 May 2025Release notes
Open source →OpenTelemetry integration
An OpenTelemetry integration has been released. Please refer to the changelog entry below for the details.
Breaking changes
- refactor(tracing): remove
EventFilter::exceptionand always attach exception (#768) by @lcian- The
EventFilter::Exceptionenum variant has been removed. Please useEventFilter::Eventinstead to achieve the same behavior. - Using
EventFilter::Eventwill always attach any error struct used within theerrorfield passed to thetracingmacro, asEventFilter::Exceptiondid previously. - The
errorfield will also be attached to breadcrumbs as anerrorsfield resembling the structure of Sentry events created from error structs.
- The
- fix: use
release-healthflag insentry-actixand remove it from subcrates where unneeded (#787) by @lcian- As a follow-up from the changes in the previous release, the
ClientOptionsfieldsauto_session_trackingandsession_modeare now gated behind therelease-healthfeature flag of thesentrycrate. - If you depend on
sentrywithdefault-features = false, you need to include therelease-healthfeature flag to benefit from the Release Health features of Sentry and have access to the aforementioned client options. - The
release-healthfeature flag is used correctly insentry-actixto enable compilation of that subcrate when it's disabled. - The
release-healthhas been removed from thesentry-tracingandsentry-towersubcrates, where it was unnecessary.
- As a follow-up from the changes in the previous release, the
- refactor: remove Surf transport (#766) by @lcian
- The Surf transport has been removed as the
surfcrate is unmaintained and it was holding back dependency upgrades. - If you really want to still use Surf, you can define a custom
TransportFactoryand pass it as thetransportin yourClientOptions
- The Surf transport has been removed as the
Behavioral changes
- refactor: honor
send_default_piiinsentry-actixandsentry-tower(#771) by @lcian- The client option
send_default_pii(disabled by default) is now honored bysentry-actixandsentry-tower. - This means that potentially sensitive headers such as authorization, cookies, and those that usually contain the user's IP address are filtered and not sent to Sentry.
- If you want to get back to the previous behavior and capture all headers, please set
send_default_piitotruein yourClientOptions. - Please refer to our Data Collected page for a comprehensive view of the data collected by the SDK.
- The client option
- refactor(debug-images): force init
DEBUG_METAon integration init (#773) by @lcian- The
DebugImagesintegration has been updated to init theDEBUG_METALazyimmediately. - Using this integration is known to cause issues in specific versions of the Linux kernel due to issues in a library it depends on.
- Previously, on problematic systems the SDK would cause deadlock after capturing the first event. Now the SDK will panic on initialization instead. Please open an issue if you're affected.
- The
Features
- feat(otel): add OpenTelemetry SpanProcessor, Propagator, Extractor (#779) by @lcian
- A new integration for the
opentelemetrycrate has been released. - It can be used to capture spans created using the
opentelemetryAPI and send them to Sentry. - Distributed tracing is also supported, provided that the upstream/downstream services support the Sentry or W3C distributed tracing metadata format.
- Please refer to the subcrate's README or the crate docs to see an example of setup and usage.
- A new integration for the
- feat: expose
sentry-actixas a feature ofsentry(#788) by @lciansentry-actixis now exposed by thesentrycrate assentry::integrations::actix, gated behind theactixfeature flag.- Please update your dependencies to not depend on the
sentry-actixsubcrate directly.
Dependencies
- build(deps): bump openssl from 0.10.71 to 0.10.72 (#762) by @dependabot
- build(deps): bump tokio from 1.44.1 to 1.44.2 (#763) by @dependabot
- chore(deps): bump some dependencies and update
Cargo.lock(#772) by @lcian
Various fixes & improvements
- Replace
once_cellwithstd::sync::LazyLock(#776) by @FalkWoldmann - chore: update GH issue templates for Linear compatibility (#777) by @stephanie-anderson
- chore: update issue templates with blank issue and Discord link (#778) by @lcian
- refactor(core): fail with message if TLS backend not available (#784) by @lcian
- build: add
sentry-opentelemetryto workspace (#789) by @lcian - docs: update docs including OTEL and other integrations (#790) by @lcian
- fix(otel): fix doctests (#794) by @lcian
- fix(otel): fix span and trace ids for distributed tracing (#801) by @lcian
- build(otel): exclude version from circular dev-dependencies (#802) by @lcian
- refactor(tracing): remove
-
0.37.001 Apr 2025Release notes
Open source →Breaking changes
- chore(msrv):
cargo updateand bump MSRV to 1.81 (#754) by @lcian- The minimum supported Rust version has been raised to 1.81.
- feat(core): introduce
release-healthfeature (#749) by @pepperoni505- A new
release-healthfeature flag was introduced that gates the Release Health features of Sentry. - This allows for compilation of the SDK on certain WASM targets.
- Release Health features were already present and enabled with no feature flag in previous versions.
- The new feature flag will be enabled by default when using
sentry,sentry-actix,sentry-towerorsentry-tracingwith the default features. - If you're fine-tuning your feature flags, make sure to enable
release-healthto get back the previous behavior.
- A new
- ref(metrics): remove features and code related to the old metrics beta (#740) by @lcian
- The metrics feature and the code related to it has been removed from the crate, as the Sentry backend stopped ingesting metrics a while ago.
- Switch to MIT license (#724) by @cleptric
- The license for the crates has been changed to MIT.
Features
- feat(actix): capture HTTP request body (#731) by @pacifistes
- The middleware for
actix-webnow supports capturing and attaching the request body to HTTP request transactions. - You need to enable
send_default_piiin your client options for this to be enabled, and you can fine-tune the behavior using the new optionmax_request_body_size.
- The middleware for
- feat(core):
transaction.set_datasets data onTraceContext(#739) by @lciantransaction.set_datanow sets data onTraceContext, as the SDK should not use theextrafield.
- ref(backtrace): add entries and extra logic for in-app detection (#756) by @lcian
- feat(core): add more frames to be considered not in_app (#760) by @lcian
- The logic used by the SDK to detect
in-appstack frames has been improved. Now the SDK will mark more frames as notin-app. - A similar improvement has been added to the Sentry backend so that old versions of the SDK can benefit from improved
in-appreporting.
- The logic used by the SDK to detect
Fixes
- fix(http): Finish transaction on drop (#727) by @Dav1dde
- Fixed a bug where the current transaction was not finished (hence not sent to Sentry) when its corresponding future was dropped, e.g. due to a panic.
- follow https://github.com/getsentry/sentry-rust/pull/439 for actix-web. fix https://github.com/getsentry/sentry-rust/issues/680 (#737) by @pavel-rosputko
- The HTTP request metadata is now being correctly attached to transactions when using
sentry-actix.
- The HTTP request metadata is now being correctly attached to transactions when using
- fix(tracing): wrap error with synthetic mechanism only if attaching stacktrace (#755) by @lcian
- Fixed a bug that should result in improved grouping and issue titles for events reported by
sentry-tracingwhen not capturing stack traces.
- Fixed a bug that should result in improved grouping and issue titles for events reported by
- fix(actix): process request in other middleware using correct Hub (#758) by @lcian
- The subsequent middleware in the chain when processing a request now execute within the correct Hub.
- fix(anyhow): attach stacktrace only if error provides backtrace (#759) by @lcian
- Fixed a bug where the SDK was providing incorrect stack traces when capturing an
anyhowwhen thebacktracefeature is enabled butRUST_BACKTRACEis not set. - This should result in correct grouping of the affected issues.
- Fixed a bug where the SDK was providing incorrect stack traces when capturing an
Various fixes & improvements
- Fix CS (#726) by @cleptric
- fix(doctests): update prost (#750) by @lcian
- chore(msrv): bump MSRV to 1.75 (#751) by @lcian
- refactor(actix): simplify body_from_http (#757) by @robjtede
- chore: prepare changelog for release (#761) by @lcian
Dependencies
- build(deps): bump openssl from 0.10.66 to 0.10.70 (#732) by @dependabot
- build(deps): bump ring from 0.17.8 to 0.17.13 (#747) by @dependabot
- chore(msrv):
-
0.36.007 Jan 2025Release notes
Open source →Various fixes & improvements
- feat(sentry-tower) Make SentryLayer and SentryService
Syncif request isn't (#721) by @syphar - sentry-tower: Update
axumdependency to v0.8 (#718) by @Turbo87 - Allow retrieving user of scope (#715) by @thomaseizinger
- Elide lifetimes where possible (#716) by @thomaseizinger
- Replace release bot with GH app (#714) by @Jeffreyhung
- Delay sampling of span to
finish(#712) by @thomaseizinger
- feat(sentry-tower) Make SentryLayer and SentryService
-
0.35.029 Nov 2024Release notes
Open source →Fixes:
- Envelopes will be discarded rather than blocking if the transport channel fills up (previously fixed in async-capable transports, now applied to the curl/ureq transports). (#701)
-
0.34.005 Jun 2024Release notes
Open source →Features:
- Renamed the
UNSTABLE_metricsandUNSTABLE_cadencefeature flags tometricsandmetrics-cadence1respectively.
- Renamed the
-
0.33.027 May 2024Release notes
Open source →Various fixes & improvements
- ref(metrics): Add normalization and update set metrics hashing (#658) by @elramen
- feat: add embedded-svc based http transport (#654) by @madmo
-
0.32.316 Apr 2024Release notes
Open source →Compatiblity:
- Raised the MSRV to 1.73.
Improvements:
- Slightly improved overhead of the
tracinglayer. (#642)
Updates:
- Updated
reqwestto version0.12. - Updated
tonicto version0.11.
-
0.32.230 Jan 2024Release notes
Open source →Various fixes & improvements
- feat(crons): Add new fields to
MonitorConfigtype (#638) by @szokeasaurusrex - build(deps): bump h2 from 0.3.22 to 0.3.24 (#635) by @dependabot
- fix(hub): avoid deadlocks when emitting events (#633) by @Tuetuopay
- feat(crons): Add new fields to
-
0.32.118 Dec 2023Release notes
Open source →Features:
- Add experimental implementations for Sentry metrics and a cadence sink. These
require to use the
UNSTABLE_metricsandUNSTABLE_cadencefeature flags. Note that these APIs are still under development and subject to change.
- Add experimental implementations for Sentry metrics and a cadence sink. These
require to use the
-
0.32.028 Nov 2023 -
0.31.810 Nov 2023Release notes
Open source →Various fixes & improvements
- MonitorSchedule constructor that validates crontab syntax (#625) by @szokeasaurusrex
- fix(docs): Fix some doc errors that slipped in (#623) by @flub
- docs(tower): Mention how to enable http feature from sentry crate (#622) by @flub
- build(deps): bump rustix from 0.37.23 to 0.37.25 (#619) by @dependabot
-
0.31.714 Sep 2023Release notes
Open source →Various fixes & improvements
- The minimum supported Rust version was bumped to 1.68.0 due to requirements from dependencies. (#612)
-
0.31.628 Aug 2023Release notes
Open source →Various fixes & improvements
- Apply clippy fixes and cherry-pick PRs (#610) by @Swatinem
- ref: Apply user field from scope to transaction event (#596) by @kamilogorek
- Remove profiling support (#595) by @viglia
- chore: upgrade webpki-roots 0.22.5 -> 0.23.0 (#593) by @boxdot
-
0.31.516 Jun 2023Release notes
Open source →Various fixes & improvements
- chore(deps): bump rustls (#592) by @utkarshgupta137
-
0.31.414 Jun 2023Release notes
Open source →Various fixes & improvements
- Apply scope metadata to transactions (#590) by @loewenheim
-
0.31.325 May 2023Release notes
Open source →Various fixes & improvements
- feat(tracing): Improve structure for tracing errors (#585) by @jan-auer
-
0.31.223 May 2023Release notes
Open source →Various fixes & improvements
- feat(crons): Add monitor check-in types to sentry-types (#577) by @evanpurkhiser
-
0.31.119 May 2023Release notes
Open source →Features:
- Add a new
(tower-)axum-matched-pathfeature to use theMatchedPathas transaction name, along with attaching the request metadata to the transaction.
Fixes:
- Fix rate-limiting/filtering of raw envelopes.
Thank you:
Features, fixes and improvements in this release have been contributed by:
- Add a new
-
0.31.019 Apr 2023Release notes
Open source →Breaking Changes:
- Aligned profiling-related protocol types.
Features:
- Added a
ProfilesSamplerto theClientOptions.
Fixes:
- Fix building
ureqtransport without thenative-tlsfeature. - Fixed serialization of raw
Envelopes, and added a newfrom_bytes_rawconstructor.
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.30.024 Feb 2023Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.66.0 due to CI workflow misconfiguration.
Fixes:
- Switch to checked version of
from_secs_f64intimestamp_to_datetimefunction to prevent panics (#554) by @olksdr
Internal:
- Disable unnecessary default regex features for
sentry-backtrace(#552) by @xfix - Use correct Rust toolchain for MSRV jobs (#555) by @kamilogorek
-
0.29.309 Feb 2023Release notes
Open source →Features:
debug_imagesis now a default feature. (#545- Added a
from_path_rawfunction toEnvelopethat reads an envelope from a file without parsing anything. (#549) - Added a
datamethod toperformance::Spanthat gives access to the span's attached data. (#548)
Fixes:
- Envelopes will be discarded rather than blocking if the transport channel fills up. (#546)
-
0.29.225 Jan 2023Release notes
Open source →Various fixes & improvements
- fix: Prefer
match_patternovermatch_namein actix (#539) by @wuerges - feat(profiling): Add profile context to transaction. (#538) by @viglia
- Re-disable scheduled jobs on forks (#537) by @MarijnS95
- fix: Avoid Deadlock popping ScopeGuards out of order (#536) by @Swatinem
- sentry-core: make TraceContext publicly readable (#534) by @tommilligan
- sentry-core: make TransactionContext.trace_id readable (#533) by @tommilligan
- docs: fix outdated
native-tls/rustlsinfo in README (#535) by @seritools - features: Make
tower-httpenable thetowerfeature (#532) by @Turbo87
- fix: Prefer
-
0.29.101 Dec 2022Release notes
Open source →Features:
- Users of
TransactionContextmay now addcustomcontext to it. This may be used bytraces_samplerto decide sampling rates on a per-transaction basis. (#512)
Fixes:
- Correctly strip crates hashes for v0 symbol mangling. (#525)
Internal:
Thank you:
Features, fixes and improvements in this release have been contributed by:
- Users of
-
0.29.017 Nov 2022Release notes
Open source →Features:
- Allow
traces_samplerto inspect well known properties ofTransactionContext(#514)
- Allow
-
0.28.004 Nov 2022Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.60.0 due to requirements from dependencies. (#498)
- Added the
traces_sampleroption toClientOptions. This allows the user to customise sampling rates on a per-transaction basis. (#510)
Features:
- Add support for Profiling feature. (#479)
- Add
SSL_VERIFYoption to control certificate verification. (#508) - Add Windows OS version to OS context (#499)
- Add a
tower-httpfeature as a shortcut (#493)
Internal:
- Take advantage of weak features in Rust 1.60 for TLS enablement (#454)
- Turn off
pprofdefault features (#491) - Change session update logic to follow the spec (#477)
- Extract public
event_from_errorfn insentry-anyhow(#476)
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.27.020 Jun 2022Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.57.0 due to requirements from dependencies. (#472)
- Add the
rust-versionfield to the manifest. (#473) - Update to edition 2021. (#473)
Features:
Internal:
- Replace ancient
lazy_staticcrate withonce_cellorconstslices. (#471)
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.26.020 May 2022Release notes
Open source →Breaking Changes:
- Updated the
debugidanduuiddependencies to versions0.8.0and1.0.0respectively.
Features:
- Request data can now be attached to Transactions and Spans via
set_transaction. (#439) - macOS versions are now reported instead of the Darwin kernel version. (#451)
- Support capturing the error of functions instrumented with
#[instrument(err)]. (#453) - Support capturing span data of instrumented functions. (#445)
- Expose the
debug_imagesfunction fromsentry-debug-images.
Fixes:
- Generate a more correct request URL in the
sentry-towerintegration. (#460) - Do not
panicon invalidHTTP(S)_PROXYenv. (#450)
Internal:
- Project Ids in DSN are treated as opaque strings. (#452)
Thank you:
Features, fixes and improvements in this release have been contributed by:
- Updated the
-
0.25.002 Mar 2022Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.54.0 due to requirements from dependencies.
- Updated the
sentry-actixintegration toactix-web@4. (#437)
Features:
- Calling
Scope::set_transactionwill override the Transaction name of any currently running performance monitoring transaction. (#433)
Fixes:
- Make sure Spans/Transactions have a meaningful/non-empty name. (#434)
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.24.308 Feb 2022Release notes
Open source →Features:
Fixes:
- Remove unused
serde_jsonfeature fromcurldependency. (#420) sentry-tracing: When converting atracingevent to asentryevent, don't create an exception if the original event doesn't have one (#423)sentry-tracing: Add line numbers and tags into custom Contexts sections. (#430)
Thank you:
Features, fixes and improvements in this release have been contributed by:
- Remove unused
-
0.24.225 Jan 2022 -
0.24.121 Jan 2022Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.53.0 due to requirements from dependencies.
- The
backtracefeature ofsentry-anyhowis enabled by default. (#362) - The
tracing-subscriberdependency ofsentry-tracinghas been bumped to version0.3.x. (#377) Scope::add_event_processornow takes a generic parameter instead of a boxed function.(#380)- The new performance monitoring APIs required changes to a few
protocoltypes. - A few more constructors are now decorated with
#[must_use]. - Usage of
chronoin public API types was removed in favor ofSystemTime. (#409)
Features:
- Added manual APIs for performance monitoring and span/transaction collection. (#395)
- Added span/transaction collection to
sentry-tracing. (#350, #400) - Added a new crate
sentry-towerand featuretowerthat enables integration withtower. (#356) - The new
sentry-towercrate has ahttpfeature which can be used to log request details and start new performance monitoring spans based on incoming distributed tracing headers. (#397) - Similarly, the
sentry-actixintegration also has the ability to start new performance monitoring spans based on incoming distributed tracing headers. (#411) - Added a new feature
surf-h1for usingsurfwith the h1 client. (#357) - Added support for
Span::recordtosentry-tracing. (#364) - Errors captured in the
tracingintegration are being reported as sentry Exceptions. (#412) - Added Windows support for debug images. (#366)
Fixes:
- The
tokiodependency is now only required for thecurl,reqwest, andsurffeatures. (#363) - The rate limiting implementation was updated to follow the expected behavior. (#410)
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.24.021 Jan 2022Nothing published for this version
-
0.23.008 Jul 2021Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.46.0 due to requirements from dependencies.
Features:
- Added support for pre-aggregated Sessions using the new
SessionMode::Requestoption. This requires Sentry 21.2. - Added a new
Client::flushmethod to explicitly flush the transport and use that to make sure events are flushed out when usingpanic=abort. - Added a new
flushhook to theTransporttrait. - Exposed a new
RateLimiterutility that transport implementations can use to drop envelopes early when the DSN is being rate limited. - Optionally allow capturing backtraces from anyhow errors.
- Added new crate
sentry-tracingand featuretracingthat enables support to capture Events and Breadcrumbs from tracing logs.
Fixes:
- Honor the
attach_stacktraceoption correctly when capturing errors. - Added the missing
addr_modeproperty toFrame. - Fixed extracting the error type from a
anyhow::msg.
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.22.013 Jan 2021Release notes
Open source →Breaking Changes:
- The minimum supported Rust version was bumped to 1.45.0.
- The deprecated
error-chainandfailureintegrations, features and crates were removed.
Features:
- The
slogintegration now supports capturingslog::KVpairs for both breadcrumbs and events. - Preliminary support for attachments was added to
sentry-typesand theEnvelope. However, deeper integration into the SDK is not yet complete.
Fixes:
- Fix regression defaulting
ClientOptions::environmentfromSENTRY_ENVIRONMENT. - The
debug-imagesintegration now captures the correctimage_addr. - Do not send invalid exception events in the
logandslogintegrations. Both integrations no longer attach the location. To receive location information, setoptions.attach_stacktracetotrue. - Process all event backtraces the same way.
- Fix a panic in the session flusher.
Updates:
- Updated
reqwestto version0.11, which is based ontokio 1. - Removed usage of the abandoned
imcrate, thus solving a transitive RUSTSEC advisory.
Thank you:
Features, fixes and improvements in this release have been contributed by:
-
0.21.012 Nov 2020Release notes
Open source →Breaking Changes:
- Bump the minimum required Rust version to 1.42.0.
- The
actixintegration / middleware is now compatible withactix-web 3. - Removed all deprecated exports and deprecated feature flags.
- The
failureintegration / feature is now off-by-default along with its deprecation. - The
logandslogintegrations were re-designed, they now offer types that wrap alog::Logorslog::Drainand forward log events to the currently active sentryHubbased on an optional filter and an optional mapper. - The new
logintegration will not implicitly calllog::set_max_level_filteranymore, and users need to do so manually.
Features:
- The SDK will now set a default
environmentbased ondebug_assertions. - Session updates are now sent lazily.
- Add the new
end_session_with_statusglobal and Hub functions which allow ending a Release Health Session with an explicitSessionStatus.
Deprecations:
- The
error-chainandfailureintegration was officially deprecated and will be removed soon.
-
0.20.115 Sep 2020Release notes
Open source →Fixes:
- Fixed a deadlock when nesting
configure_scopecalls. - Improved transport shutdown logic and fixed a potential deadlock on shutdown.
- Fixed a deadlock when nesting
-
0.20.009 Sep 2020Release notes
Open source →Highlights:
- The Rust SDK now has experimental support for Release Health Sessions using the
start_sessionandend_sessionAPI (global and on theHub).
Breaking Changes:
- The
Transportwas changed to work onEnvelopes instead ofEvents. Thesend_eventtrait function was removed in favor ofsend_envelope.
Features:
- The
Envelope,SessionUpdate, and other related types have been added to thesentry_types::protocol::v7module. - A
clear_breadcrumbsmethod was added toScope. sentry_contexts::utilsis now public.
Fixes:
- Panic events now have a proper
mechanism.
Deprecations:
- The
FutureandFutureExtexports have been renamed toSentryFutureandSentryFutureExtrespectively.
Thank you:
Features, fixes and improvements in this release have been contributed by:
- The Rust SDK now has experimental support for Release Health Sessions using the
-
0.19.128 Aug 2020 -
0.19.018 Jun 2020Release notes
Open source →Highlights:
The
sentrycrate has been split up into asentry-core, and many smaller per-integration crates. Application users should continue using thesentrycrate, but library users and integration/transport authors are encouraged to use thesentry-corecrate instead.Additionally, sentry can now be extended via
Integrations.Breaking Changes:
- The
utilsmodule has been removed, and most utils have been moved into integrations. - The
integrationsmodule was completely rewritten. - When constructing a
Clientusing aClientOptionsstruct manually, it does not have any default integrations, and it does not resolve default options from environment variables any more. Please use the explicitapply_defaultsfunction instead. Theinitfunction will automatically callapply_defaults. - The
initfunction can’t be called with aClientanymore.
Features:
- Sentry can now capture
std::error::Errortypes, using thecapture_errorandHub::capture_errorfunctions, and an additionalevent_from_errorutility function. - Sentry now has built-in support to bind a
Hubto aFuture. - Sentry can now be extended with
Integrations. - The
ClientInitGuard,FutureandScopeGuardstructs andapply_defaults,capture_error,event_from_error,with_integrationandparse_type_from_debugfunctions have been added to the root exports. - The
FutureExt,Integration,IntoBreadcrumbs,IntoDsn,TransportandTransportFactorytraits are now exported. - The
typesmodule now re-exportssentry-types.
Deprecations:
- The
internalsmodule is deprecated. Pleaseuseitems from the crate root or thetypesmodule instead. - All the feature flags have been renamed, the old names are still available but will be removed in the future.
- The
-
0.15.016 Apr 2020