Compatiblity:
- Raised the MSRV to 1.73.
Improvements:
- Slightly improved overhead of the
tracing
layer. (#642)
Updates:
- Updated
reqwest
to version0.12
.
- feat(crons): Add new fields to
MonitorConfig
type (#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
Features:
- Add experimental implementations for Sentry metrics and a cadence sink. These
require to use the
UNSTABLE_metrics
andUNSTABLE_cadence
feature flags. Note that these APIs are still under development and subject to change.
Features:
- Updated
sentry-tower
dependencies, includingaxum
andhttp
.
- 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
- The minimum supported Rust version was bumped to 1.68.0 due to requirements from dependencies. (#612)
- 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
- chore(deps): bump rustls (#592) by @utkarshgupta137
- Apply scope metadata to transactions (#590) by @loewenheim
- feat(tracing): Improve structure for tracing errors (#585) by @jan-auer
- feat(crons): Add monitor check-in types to sentry-types (#577) by @evanpurkhiser
Features:
- Add a new
(tower-)axum-matched-path
feature to use theMatchedPath
as 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:
Breaking Changes:
- Aligned profiling-related protocol types.
Features:
- Added a
ProfilesSampler
to theClientOptions
.
Fixes:
- Fix building
ureq
transport without thenative-tls
feature. - Fixed serialization of raw
Envelope
s, and added a newfrom_bytes_raw
constructor.
Thank you:
Features, fixes and improvements in this release have been contributed by:
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_f64
intimestamp_to_datetime
function 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
Features:
debug_images
is now a default feature. (#545- Added a
from_path_raw
function toEnvelope
that reads an envelope from a file without parsing anything. (#549) - Added a
data
method toperformance::Span
that gives access to the span's attached data. (#548)
Fixes:
- Envelopes will be discarded rather than blocking if the transport channel fills up. (#546)
- fix: Prefer
match_pattern
overmatch_name
in 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
/rustls
info in README (#535) by @seritools - features: Make
tower-http
enable thetower
feature (#532) by @Turbo87
Features:
- Users of
TransactionContext
may now addcustom
context to it. This may be used bytraces_sampler
to 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:
Features:
- Allow
traces_sampler
to inspect well known properties ofTransactionContext
(#514)
Breaking Changes:
- The minimum supported Rust version was bumped to 1.60.0 due to requirements from dependencies. (#498)
- Added the
traces_sampler
option toClientOptions
. This allows the user to customise sampling rates on a per-transaction basis. (#510)
Features:
- Add support for Profiling feature. (#479)
- Add
SSL_VERIFY
option to control certificate verification. (#508) - Add Windows OS version to OS context (#499)
- Add a
tower-http
feature as a shortcut (#493)
Internal:
- Take advantage of weak features in Rust 1.60 for TLS enablement (#454)
- Turn off
pprof
default features (#491) - Change session update logic to follow the spec (#477)
- Extract public
event_from_error
fn insentry-anyhow
(#476)
Thank you:
Features, fixes and improvements in this release have been contributed by:
Breaking Changes:
- The minimum supported Rust version was bumped to 1.57.0 due to requirements from dependencies. (#472)
- Add the
rust-version
field to the manifest. (#473) - Update to edition 2021. (#473)
Features:
Internal:
- Replace ancient
lazy_static
crate withonce_cell
orconst
slices. (#471)
Thank you:
Features, fixes and improvements in this release have been contributed by:
Breaking Changes:
- Updated the
debugid
anduuid
dependencies to versions0.8.0
and1.0.0
respectively.
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_images
function fromsentry-debug-images
.
Fixes:
- Generate a more correct request URL in the
sentry-tower
integration. (#460) - Do not
panic
on invalidHTTP(S)_PROXY
env. (#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:
Breaking Changes:
- The minimum supported Rust version was bumped to 1.54.0 due to requirements from dependencies.
- Updated the
sentry-actix
integration toactix-web@4
. (#437)
Features:
- Calling
Scope::set_transaction
will 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:
Features:
Fixes:
- Remove unused
serde_json
feature fromcurl
dependency. (#420) sentry-tracing
: When converting atracing
event to asentry
event, 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:
Fixes:
- Make sure
sentry-core
compiler without theclient
feature. (#416) - Fix incorrect wrapping of Service Futures in
sentry-tower
that could lead to memory leaks combined with the Http Service. (#417)
Breaking Changes:
- The minimum supported Rust version was bumped to 1.53.0 due to requirements from dependencies.
- The
backtrace
feature ofsentry-anyhow
is enabled by default. (#362) - The
tracing-subscriber
dependency ofsentry-tracing
has been bumped to version0.3.x
. (#377) Scope::add_event_processor
now takes a generic parameter instead of a boxed function.(#380)- The new performance monitoring APIs required changes to a few
protocol
types. - A few more constructors are now decorated with
#[must_use]
. - Usage of
chrono
in 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-tower
and featuretower
that enables integration withtower
. (#356) - The new
sentry-tower
crate has ahttp
feature which can be used to log request details and start new performance monitoring spans based on incoming distributed tracing headers. (#397) - Similarly, the
sentry-actix
integration also has the ability to start new performance monitoring spans based on incoming distributed tracing headers. (#411) - Added a new feature
surf-h1
for usingsurf
with the h1 client. (#357) - Added support for
Span::record
tosentry-tracing
. (#364) - Errors captured in the
tracing
integration are being reported as sentry Exceptions. (#412) - Added Windows support for debug images. (#366)
Fixes:
- The
tokio
dependency is now only required for thecurl
,reqwest
, andsurf
features. (#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:
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::Request
option. This requires Sentry 21.2. - Added a new
Client::flush
method to explicitly flush the transport and use that to make sure events are flushed out when usingpanic=abort
. - Added a new
flush
hook to theTransport
trait. - Exposed a new
RateLimiter
utility 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-tracing
and featuretracing
that enables support to capture Events and Breadcrumbs from tracing logs.
Fixes:
- Honor the
attach_stacktrace
option correctly when capturing errors. - Added the missing
addr_mode
property toFrame
. - Fixed extracting the error type from a
anyhow::msg
.
Thank you:
Features, fixes and improvements in this release have been contributed by:
Breaking Changes:
- The minimum supported Rust version was bumped to 1.45.0.
- The deprecated
error-chain
andfailure
integrations, features and crates were removed.
Features:
- The
slog
integration now supports capturingslog::KV
pairs for both breadcrumbs and events. - Preliminary support for attachments was added to
sentry-types
and theEnvelope
. However, deeper integration into the SDK is not yet complete.
Fixes:
- Fix regression defaulting
ClientOptions::environment
fromSENTRY_ENVIRONMENT
. - The
debug-images
integration now captures the correctimage_addr
. - Do not send invalid exception events in the
log
andslog
integrations. Both integrations no longer attach the location. To receive location information, setoptions.attach_stacktrace
totrue
. - Process all event backtraces the same way.
- Fix a panic in the session flusher.
Updates:
- Updated
reqwest
to version0.11
, which is based ontokio 1
. - Removed usage of the abandoned
im
crate, thus solving a transitive RUSTSEC advisory.
Thank you:
Features, fixes and improvements in this release have been contributed by:
Breaking Changes:
- Bump the minimum required Rust version to 1.42.0.
- The
actix
integration / middleware is now compatible withactix-web 3
. - Removed all deprecated exports and deprecated feature flags.
- The
failure
integration / feature is now off-by-default along with its deprecation. - The
log
andslog
integrations were re-designed, they now offer types that wrap alog::Log
orslog::Drain
and forward log events to the currently active sentryHub
based on an optional filter and an optional mapper. - The new
log
integration will not implicitly calllog::set_max_level_filter
anymore, and users need to do so manually.
Features:
- The SDK will now set a default
environment
based ondebug_assertions
. - Session updates are now sent lazily.
- Add the new
end_session_with_status
global and Hub functions which allow ending a Release Health Session with an explicitSessionStatus
.
Deprecations:
- The
error-chain
andfailure
integration was officially deprecated and will be removed soon.
Fixes:
- Fixed a deadlock when nesting
configure_scope
calls. - Improved transport shutdown logic and fixed a potential deadlock on shutdown.
Highlights:
- The Rust SDK now has experimental support for Release Health Sessions using the
start_session
andend_session
API (global and on theHub
).
Breaking Changes:
- The
Transport
was changed to work onEnvelope
s instead ofEvent
s. Thesend_event
trait function was removed in favor ofsend_envelope
.
Features:
- The
Envelope
,SessionUpdate
, and other related types have been added to thesentry_types::protocol::v7
module. - A
clear_breadcrumbs
method was added toScope
. sentry_contexts::utils
is now public.
Fixes:
- Panic events now have a proper
mechanism
.
Deprecations:
- The
Future
andFutureExt
exports have been renamed toSentryFuture
andSentryFutureExt
respectively.
Thank you:
Features, fixes and improvements in this release have been contributed by:
Fixes:
- Better deal with concurrent Hub access.
Highlights:
The sentry
crate has been split up into a sentry-core
, and many smaller per-integration crates. Application users should continue using the sentry
crate, but library users and integration/transport authors are encouraged to use the sentry-core
crate instead.
Additionally, sentry can now be extended via Integration
s.
Breaking Changes:
- The
utils
module has been removed, and most utils have been moved into integrations. - The
integrations
module was completely rewritten. - When constructing a
Client
using aClientOptions
struct manually, it does not have any default integrations, and it does not resolve default options from environment variables any more. Please use the explicitapply_defaults
function instead. Theinit
function will automatically callapply_defaults
. - The
init
function can’t be called with aClient
anymore.
Features:
- Sentry can now capture
std::error::Error
types, using thecapture_error
andHub::capture_error
functions, and an additionalevent_from_error
utility function. - Sentry now has built-in support to bind a
Hub
to aFuture
. - Sentry can now be extended with
Integration
s. - The
ClientInitGuard
,Future
andScopeGuard
structs andapply_defaults
,capture_error
,event_from_error
,with_integration
andparse_type_from_debug
functions have been added to the root exports. - The
FutureExt
,Integration
,IntoBreadcrumbs
,IntoDsn
,Transport
andTransportFactory
traits are now exported. - The
types
module now re-exportssentry-types
.
Deprecations:
- The
internals
module is deprecated. Pleaseuse
items from the crate root or thetypes
module instead. - All the feature flags have been renamed, the old names are still available but will be removed in the future.
- Fix potential segfault with
with_debug_meta
(#211). - Fix panic when running inside of tokio (#186).
-
Bump the minimum required Rust version to 1.40.0.
-
Upgrade most dependencies to their current versions (#183):
env_logger 0.7
reqwest 0.10
error-chain 0.12
url 2.1
sentry-types 0.14
-
Remove the
log
andenv_logger
integration from default features (#183). -
Fix backtraces for newer
failure
andbacktrace
versions (#183). -
Fix compilation of the
with_rust_info
feature (#183). -
Add "panics" sections to functions that may panic (#174).
-
Document all feature flags consistently.
- Upgrade findshlibs (#153)
- Bump the minimum required Rust version to 1.34.0.
- Fix potentially broken payloads when using the
curl
transport (#152). - Report the SDK as
sentry.rust
for analytics (#142).
- Fix backtraces with inline frames in newer Rust versions (#141).
- Added a feature flag to disable the default sentry features in sentry-actix. (#139)
- Added
with_rustls
andwith_native_tls
features to control SSL in the default reqwest transport. (#137)
- Added support for passing custom reqwest clients/curl handles to the transport (#130)
- Correct dependency bump for sentry types.
- Upgraded to newer version of the internal sentry types crate.
- Fixed a potential issue where an event might have been dropped if it was sent right after the curl transport was created.
- Fixed an issue where turning off the http transports would cause a compile error.
- Added support for reading
SENTRY_ENVIRONMENT
andSENTRY_RELEASE
environment variables. - Added support for panicking with failure errors.
- Added
attach_stacktraces
configuration option to logging integration - Fixed a bug where
emit_breadcrumbs
was incorrectly handled. - Restructured the transport system. You can now disable the builtin HTTP reqwest based transport or opt for the curl transport.
- Fixed a potential issue where an event might have been dropped if it was sent right after the reqwest transport was created.
- Added support for server side symbolication for linux platforms.
Breaking Change: This release requires Rust 1.31 or newer.
- Upgrade the logger integration to
env_logger:0.6
- Support debug identifiers of loaded images on Linux (#114)
- Update
sentry-types
to the latest version - Fix
log::log_enabled!
when log integration is active
- Resolve a memory leak in the actix integration.
- Fix an issue where dropping a scope guard for a non active hub resulted in a panic.
- Added support for the new failure
Fail::name
- Improved support for actix failure based error
- Added
RefUnwindSafe
forClientOptions
- Remove the never supported
repos
option.
- Upgrade reqwest to 0.9
- Add support for debug logging through the log crate (
with_debug_to_log
feature) - Added debug log for when events are dropped in the transport.
- Fix compilation error in
sentry-actix
(#87)
- Added
sentry::with_scope
- Updated the sentry types to 0.8.x
- Streamline types with other SDKs. Most notabe changes:
Event::id
has been renamed toEvent::event_id
Event::exceptions
has been renamed toEvent::exception
- Some collections are now wrapped in
Values
- Added more debug logs.
- Removed
drain_events
. Events are now drained by callingClient::close
or on the transport onTransport::shutdown
. - Removed
Hub::add_event_processor
. This was replaced byScope::add_event_processor
which is easier to use (only returns factory function)/ - Added various new client configuration values.
- Unified option handling
This is likely to be the final API before 1.0
- Remove null byte terminator from device model context (#33)
- Fix
uname
breaking builds on Windows (#32) - Fix the crate documentation link (#31)