Releases: getsentry/sentry-python
1.30.0
Various fixes & improvements
-
Officially support Python 3.11 (#2300) by @sentrivana
-
Context manager monitor (#2290) by @szokeasaurusrex
-
Set response status code in transaction
responsecontext. (#2312) by @antonpirker -
Add missing context kwarg to
_sentry_task_factory(#2267) by @JohnnyDeuss -
In Postgres take the connection params from the connection (#2308) by @antonpirker
-
Experimental: Allow using OTel for performance instrumentation (#2272) by @sentrivana
This release includes experimental support for replacing Sentry's default
performance monitoring solution with one powered by OpenTelemetry without having
to do any manual setup.Try it out by installing
pip install sentry-sdk[opentelemetry-experimental]and
then initializing the SDK with:sentry_sdk.init( # ...your usual options... _experiments={"otel_powered_performance": True}, )
This enables OpenTelemetry performance monitoring support for some of the most
popular frameworks and libraries (Flask, Django, FastAPI, requests...).We're looking forward to your feedback! Please let us know about your experience
in this discussion: getsentry/sentry#55023Important note: Please note that this feature is experimental and in a
proof-of-concept stage and is not meant for production use. It may be changed or
removed at any point. -
Enable backpressure handling by default (#2298) by @sl0thentr0py
The SDK now dynamically downsamples transactions to reduce backpressure in high
throughput systems. It starts a newMonitorthread to perform some health checks
which decide to downsample (halved each time) in 10 second intervals till the system
is healthy again.To disable this behavior, use:
sentry_sdk.init( # ...your usual options... enable_backpressure_handling=False, )
If your system serves heavy load, please let us know how this feature works for you!
Check out the documentation for more information. -
Stop recording spans for internal web requests to Sentry (#2297) by @szokeasaurusrex
-
Add docstrings for
Scope.update_from_*(#2311) by @sentrivana -
Moved
is_sentry_urlto utils (#2304) by @szokeasaurusrex -
Fix: arq attribute error on settings, support worker args (#2260) by @rossmacarthur
-
Fix: Exceptions include detail property for their value (#2193) by @nicolassanmar
-
build(deps): bump mypy from 1.4.1 to 1.5.1 (#2319) by @dependabot
-
build(deps): bump sphinx from 7.1.2 to 7.2.4 (#2322) by @dependabot
-
build(deps): bump sphinx from 7.0.1 to 7.1.2 (#2296) by @dependabot
-
build(deps): bump checkouts/data-schemas from
1b85152toebc77d3(#2254) by @dependabot
1.29.2
Various fixes & improvements
- Revert GraphQL integration (#2287) by @sentrivana
1.29.1
Various fixes & improvements
- Fix GraphQL integration swallowing responses (#2286) by @sentrivana
- Fix typo (#2283) by @sentrivana
1.29.0
Various fixes & improvements
- Capture GraphQL client errors (#2243) by @sentrivana
- The SDK will now create dedicated errors whenever an HTTP client makes a reqwuest to a
/graphqlendpoint and the response contains an error. You can opt out of this by providingcapture_graphql_errors=Falseto the HTTP client integration.
- The SDK will now create dedicated errors whenever an HTTP client makes a reqwuest to a
- Read MAX_VALUE_LENGTH from client options (#2121) (#2171) by @puittenbroek
- Rename
request_bodiestomax_request_body_size(#2247) by @mgaligniana - Always sample checkin regardless of
sample_rate(#2279) by @szokeasaurusrex - Add information to short-interval cron error message (#2246) by @lobsterkatie
- Add DB connection attributes in spans (#2274) by @antonpirker
- Add
db.systemto remaining Redis spans (#2271) by @AbhiPrasad - Clarified the procedure for running tests (#2276) by @szokeasaurusrex
- Fix Chalice tests (#2278) by @sentrivana
- Bump Black from 23.3.0 to 23.7.0 (#2256) by @dependabot
- Remove py3.4 from tox.ini (#2248) by @sentrivana
1.28.1
Various fixes & improvements
- Redis: Add support for redis.asyncio (#1933) by @Zhenay
- Make sure each task that is started by Celery Beat has its own trace. (#2249) by @antonpirker
- Add Sampling Decision to Trace Envelope Header (#2239) by @antonpirker
- Do not add trace headers (
sentry-traceandbaggage) to HTTP requests to Sentry (#2240) by @antonpirker - Prevent adding
sentry-traceheader multiple times (#2235) by @antonpirker - Skip distributions with incomplete metadata (#2231) by @rominf
- Remove stale.yml (#2245) by @hubertdeng123
- Django: Fix 404 Handler handler being labeled as "generic ASGI request" (#1277) by @BeryJu
1.28.0
Various fixes & improvements
- Add support for cron jobs in ARQ integration (#2088) by @lewazo
- Backpressure handling prototype (#2189) by @sl0thentr0py
- Add "replay" context to event payload (#2234) by @antonpirker
- Update test Django app to be compatible for Django 4.x (#1794) by @DilLip-Chowdary-Codes
1.27.1
Various fixes & improvements
- Add Starlette/FastAPI template tag for adding Sentry tracing information (#2225) by @antonpirker
- By adding
{{ sentry_trace_meta }}to your Starlette/FastAPI Jinja2 templates we will include Sentry trace information as a meta tag in the rendered HTML to allow your frontend to pick up and continue the trace started in the backend.
- By adding
- Fixed generation of baggage when a DSC is already in propagation context (#2232) by @antonpirker
- Handle explicitly passing
Nonefortrace_configsinaiohttp(#2230) by @Harmon758 - Support newest Starlette versions (#2227) by @antonpirker
1.27.0
Various fixes & improvements
-
Support for SQLAlchemy 2.0 (#2200) by @antonpirker
-
Add instrumentation of
aiohttpclient requests (#1761) by @md384 -
Add Django template tag for adding Sentry tracing information (#2222) by @antonpirker
- By adding
{{ sentry_trace_meta }}to your Django templates we will include Sentry trace information as a meta tag in the rendered HTML to allow your frontend to pick up and continue the trace started in the backend.
- By adding
-
Update Flask HTML meta helper (#2203) by @antonpirker
-
Take trace ID always from propagation context (#2209) by @antonpirker
-
Fix trace context in event payload (#2205) by @antonpirker
-
Use new top level API in
trace_propagation_meta(#2202) by @antonpirker -
Do not overwrite existing baggage on outgoing requests (#2191, #2214) by @sentrivana
-
Set the transaction/span status from an OTel span (#2115) by @daniil-konovalenko
-
Fix propagation of OTel
NonRecordingSpan(#2187) by @hartungstenio -
Fix
TaskLockedExceptionhandling in Huey integration (#2206) by @Zhenay -
Add message format configuration arguments to Loguru integration (#2208) by @Gwill
-
Profiling: Add client reports for profiles (#2207) by @Zylphrex
-
CI: Fix CI (#2220) by @antonpirker
-
Dependencies: Bump
checkouts/data-schemasfrom7fdde87to1b85152(#2218) by @dependabot -
Dependencies: Bump
mypyfrom 1.3.0 to 1.4.1 (#2194) by @dependabot -
Docs: Change API doc theme (#2210) by @sentrivana
-
Docs: Allow (some) autocompletion for top-level API (#2213) by @sentrivana
-
Docs: Revert autocomplete hack (#2224) by @sentrivana
1.26.0
Various fixes & improvements
- Tracing without performance (#2136) by @antonpirker
- Load tracing information from environment (#2176) by @antonpirker
- Auto-enable HTTPX integration if HTTPX installed (#2177) by @sentrivana
- Support for SOCKS proxies (#1050) by @Roguelazer
- Wrap
parse_urlcalls incapture_internal_exceptions(#2162) by @sentrivana - Run 2.7 tests in CI again (#2181) by @sentrivana
- Crons: Do not support sub-minute cron intervals (#2172) by @antonpirker
- Profile: Add function name to profiler frame cache (#2164) by @Zylphrex
- Dependencies: bump checkouts/data-schemas from
0ed3357to7fdde87(#2165) by @dependabot - Update changelog (#2163) by @sentrivana
1.25.1
Django update (ongoing)
Collections of improvements to our Django integration.
By: @mgaligniana (#1773)
Various fixes & improvements
-
Fix
parse_url(#2161) by @sentrivana and @antonpirkerOur URL sanitization used in multiple integrations broke with the recent Python security update. If you started seeing
ValueErrors with"'Filtered' does not appear to be an IPv4 or IPv6 address", this release fixes that. See the original issue for more context. -
Better version parsing in integrations (#2152) by @antonpirker
We now properly support all integration versions that conform to PEP 440. This replaces our naΓ―ve version parsing that wouldn't accept versions such as
2.0.0rc1or2.0.5.post1. -
Align HTTP status code as span data field
http.response.status_code(#2113) by @antonpirker -
Do not encode cached value to determine size (#2143) by @sentrivana
-
Fix using
unittest.mockwhenever available (#1926) by @mgorny -
Fix 2.7
commontests (#2145) by @sentrivana -
Bump
actions/stalefrom6to8(#1978) by @dependabot -
Bump
blackfrom22.12.0to23.3.0(#1984) by @dependabot -
Bump
mypyfrom1.2.0to1.3.0(#2110) by @dependabot -
Bump
sphinxfrom5.3.0to7.0.1(#2112) by @dependabot