Releases: getsentry/sentry-python
2.0.0a1
Sentry SDK 2.0a1 is alpha software and not yet ready for production!
Please give it a spin and test it with your project. If you have any questions or feedback please contact us on Discord in the #python channel or create a GitHub Issue or start a GitHub Discussion.
Thanks!
New Features
- Additional integrations will now be activated automatically if the SDK detects the respective package is installed: Ariadne, ARQ, asyncpg, Chalice, clickhouse-driver, GQL, Graphene, huey, Loguru, PyMongo, Quart, Starlite, Strawberry.
Changed
-
The Pyramid integration will not capture errors that might happen in
authenticated_userid()in a customAuthenticationPolicyclass. -
The method
need_code_loationof theMetricsAggregatorwas renamed toneed_code_location. -
The
BackgroundWorkerthread used to process events was renamed fromraven-sentry.BackgroundWorkertosentry-sdk.BackgroundWorker. -
The
reraisefunction was moved fromsentry_sdk._compattosentry_sdk.utils. -
The
_ScopeManagerwas moved fromsentry_sdk.hubtosentry_sdk.scope. -
Moved the contents of
tracing_utils_py3.pytotracing_utils.py. Thestart_child_span_decoratoris now insentry_sdk.tracing_utils. -
The actual implementation of
get_current_spanwas moved tosentry_sdk.tracing_utils.sentry_sdk.get_current_spanis still accessible as part of the top-level API. -
sentry_sdk.tracing_utils.get_current_span()does now take ascopeinstead of ahubas parameter. -
sentry_sdk.utils._get_contextvarsdoes not return a tuple with three values, but a tuple with two values. Thecopy_contextwas removed. -
If you create a transaction manually and later mutate the transaction in a
configure_scopeblock this does not work anymore. Here is a recipe on how to change your code to make it work:
Your existing implementation:transaction = sentry_sdk.transaction(...) # later in the code execution: with sentry_sdk.configure_scope() as scope: scope.set_transaction_name("new-transaction-name")
needs to be changed to this:
transaction = sentry_sdk.transaction(...) # later in the code execution: scope = sentry_sdk.Scope.get_current_scope() scope.set_transaction_name("new-transaction-name")
-
The classes listed in the table below are now abstract base classes. Therefore, they can no longer be instantiated. Subclasses can only be instantiated if they implement all of the abstract methods.
Show table
Class Abstract methods sentry_sdk.integrations.Integrationsetup_oncesentry_sdk.metrics.Metricadd,serialize_value, andweightsentry_sdk.profiler.Schedulersetupandteardownsentry_sdk.transport.Transportcapture_envelope
Removed
- Removed support for Python 2 and Python 3.5. The SDK now requires at least Python 3.6.
- Removed support for Celery 3.*.
- Removed support for Django 1.8, 1.9, 1.10.
- Removed support for Flask 0.*.
- Removed
last_event_id()top level API. The last event ID is still returned bycapture_event(),capture_exception()andcapture_message()but the top level APIsentry_sdk.last_event_id()has been removed. - Removed support for sending events to the
/storeendpoint. Everything is now sent to the/envelopeendpoint. If you're on SaaS you don't have to worry about this, but if you're running Sentry yourself you'll need version20.6.0or higher of self-hosted Sentry. - The deprecated
with_localsconfiguration option was removed. Useinclude_local_variablesinstead. See https://docs.sentry.io/platforms/python/configuration/options/#include-local-variables. - The deprecated
request_bodiesconfiguration option was removed. Usemax_request_body_size. See https://docs.sentry.io/platforms/python/configuration/options/#max-request-body-size. - Removed support for
user.segment. It was also removed from the trace header as well as from the dynamic sampling context. - Removed support for the
installmethod for custom integrations. Please usesetup_onceinstead. - Removed
sentry_sdk.tracing.Span.new_span. Usesentry_sdk.tracing.Span.start_childinstead. - Removed
sentry_sdk.tracing.Transaction.new_span. Usesentry_sdk.tracing.Transaction.start_childinstead. - Removed
sentry_sdk.utils.Auth.store_api_url. sentry_sdk.utils.Auth.get_api_url's now accepts asentry_sdk.consts.EndpointTypeenum instead of a string as its only parameter. We recommend omitting this argument when calling the function, since the parameter's default value is the only possiblesentry_sdk.consts.EndpointTypevalue. The parameter exists for future compatibility.- Removed
tracing_utils_py2.py. Thestart_child_span_decoratoris now insentry_sdk.tracing_utils. - Removed the
sentry_sdk.profiler.Scheduler.stop_profilingmethod. Any calls to this method can simply be removed, since this was a no-op method.
Deprecated
profiler_modeandprofiles_sample_ratehave been deprecated as_experimentsoptions. Use them as top level options instead:sentry_sdk.init( ..., profiler_mode="thread", profiles_sample_rate=1.0, )
- Deprecated
sentry_sdk.transport.Transport.capture_event. Please usesentry_sdk.transport.Transport.capture_envelope, instead. - Passing a function to
sentry_sdk.init'stransportkeyword argument has been deprecated. If you wish to provide a custom transport, please pass asentry_sdk.transport.Transportinstance or a subclass. - The parameter
propagate_hubinThreadingIntegration()was deprecated and renamed topropagate_scope.
1.40.5
Various fixes & improvements
-
Deprecate
last_event_id(). (#2749) by @antonpirker -
Warn if uWSGI is set up without proper thread support (#2738) by @sentrivana
uWSGI has to be run in threaded mode for the SDK to run properly. If this is
not the case, the consequences could range from features not working unexpectedly
to uWSGI workers crashing.Please make sure to run uWSGI with both
--enable-threadsand--py-call-uwsgi-fork-hooks. -
parsed_urlcan beNone(#2734) by @sentrivana -
Python 3.7 is not supported anymore by Lambda, so removed it and added 3.12 (#2729) by @antonpirker
1.40.4
Various fixes & improvements
- Only start metrics flusher thread on demand (#2727) by @sentrivana
- Bump checkouts/data-schemas from
aa7058cto6121fd3(#2724) by @dependabot
1.40.3
Various fixes & improvements
- Turn off metrics for uWSGI (#2720) by @sentrivana
- Minor improvements (#2714) by @antonpirker
1.40.2
Various fixes & improvements
- test: Fix
pytesterror (#2712) by @szokeasaurusrex - build(deps): bump types-protobuf from 4.24.0.4 to 4.24.0.20240129 (#2691) by @dependabot
1.40.1
Various fixes & improvements
- Fix uWSGI workers hanging (#2694) by @sentrivana
- Make metrics work with
gevent(#2694) by @sentrivana - Guard against
engine.urlbeingNone(#2708) by @sentrivana - Fix performance regression in
sentry_sdk.utils._generate_installed_modules(#2703) by @GlenWalker - Guard against Sentry initialization mid SQLAlchemy cursor (#2702) by @apmorton
- Fix yaml generation script (#2695) by @sentrivana
- Fix AWS Lambda workflow (#2710) by @sentrivana
- Bump
codecov/codecov-actionfrom 3 to 4 (#2706) by @dependabot - Bump
actions/cachefrom 3 to 4 (#2661) by @dependabot - Bump
actions/checkoutfrom 3.1.0 to 4.1.1 (#2561) by @dependabot - Bump
github/codeql-actionfrom 2 to 3 (#2603) by @dependabot - Bump
actions/setup-pythonfrom 4 to 5 (#2577) by @dependabot
1.40.0
Various fixes & improvements
- Enable metrics related settings by default (#2685) by @iambriccardo
- Fix
UnicodeDecodeErroron Python 2 (#2657) by @sentrivana - Enable DB query source by default (#2629) by @sentrivana
- Fix query source duration check (#2675) by @sentrivana
- Reformat with
black==24.1.0(#2680) by @sentrivana - Cleaning up existing code to prepare for new Scopes API (#2611) by @antonpirker
- Moved redis related tests to databases (#2674) by @antonpirker
- Improve
sentry_sdk.tracetype hints (#2633) by @szokeasaurusrex - Bump
checkouts/data-schemasfrome9f7d58toaa7058c(#2639) by @dependabot
1.39.2
Various fixes & improvements
- Fix timestamp in transaction created by OTel (#2627) by @antonpirker
- Fix relative path in DB query source (#2624) by @antonpirker
- Run more CI checks on 2.0 branch (#2625) by @sentrivana
- Fix tracing
TypeErrorfor static and class methods (#2559) by @szokeasaurusrex - Fix missing
ctxin Arq integration (#2600) by @ivanovart - Change
data_categoryfromcheck_intomonitor(#2598) by @sentrivana
1.39.1
Various fixes & improvements
- Fix psycopg2 detection in the Django integration (#2593) by @sentrivana
- Filter out empty string releases (#2591) by @sentrivana
- Fixed local var not present when there is an error in a user's
error_samplerfunction (#2511) by @antonpirker - Fixed typing in
aiohttp(#2590) by @antonpirker
1.39.0
Various fixes & improvements
- Add support for cluster clients from Redis SDK (#2394) by @md384
- Improve location reporting for timer metrics (#2552) by @mitsuhiko
- Fix Celery
TypeErrorwith no-argumentapply_async(#2575) by @szokeasaurusrex - Fix Lambda integration with EventBridge source (#2546) by @davidcroda
- Add max tries to Spotlight (#2571) by @HazAT
- Handle
os.path.devnullaccess issues (#2579) by @sentrivana - Change
code.filepathframe picking logic (#2568) by @sentrivana - Trigger AWS Lambda tests on label (#2538) by @sentrivana
- Run permissions step on pull_request_target but not push (#2548) by @sentrivana
- Hash AWS Lambda test functions based on current revision (#2557) by @sentrivana
- Update Django version in tests (#2562) by @sentrivana
- Make metrics tests non-flaky (#2572) by @antonpirker