Releases: getsentry/sentry-python
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
None
fortrace_configs
inaiohttp
(#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
aiohttp
client 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
TaskLockedException
handling 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-schemas
from7fdde87
to1b85152
(#2218) by @dependabot -
Dependencies: Bump
mypy
from 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_url
calls 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
0ed3357
to7fdde87
(#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
ValueError
s 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.0rc1
or2.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.mock
whenever available (#1926) by @mgorny -
Fix 2.7
common
tests (#2145) by @sentrivana -
Bump
actions/stale
from6
to8
(#1978) by @dependabot -
Bump
black
from22.12.0
to23.3.0
(#1984) by @dependabot -
Bump
mypy
from1.2.0
to1.3.0
(#2110) by @dependabot -
Bump
sphinx
from5.3.0
to7.0.1
(#2112) by @dependabot
1.25.0
Various fixes & improvements
-
Support urllib3>=2.0.0 (#2148) by @asottile-sentry
We're now supporting urllib3's new major version, 2.0.0. If you encounter issues (e.g. some of your dependencies not supporting the new urllib3 version yet) you might consider pinning the urllib3 version to
<2.0.0
manually in your project. Check out the the urllib3 migration guide for details. -
Auto-retry tests on failure (#2134) by @sentrivana
-
Correct
importlib.metadata
check intest_modules
(#2149) by @asottile-sentry -
Fix distribution name normalization (PEP-0503) (#2144) by @rominf
1.24.0
Various fixes & improvements
-
New: Celery Beat exclude tasks option (#2130) by @antonpirker
You can exclude Celery Beat tasks from being auto-instrumented. To do this, add a list of tasks you want to exclude as option
exclude_beat_tasks
when creatingCeleryIntegration
. The list can contain simple strings with the full task name, as specified in the Celery Beat schedule, or regular expressions to match multiple tasks.For more information, see the documentation for Crons for more information.
Usage:
exclude_beat_tasks = [ "some-task-a", "payment-check-.*", ] sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ CeleryIntegration( monitor_beat_tasks=True, exclude_beat_tasks=exclude_beat_tasks, ), ], )
In this example the task
some-task-a
and all tasks with a name starting withpayment-check-
will be ignored. -
New: Add support for ExceptionGroups (#2025) by @antonpirker
Note: If running Self-Hosted Sentry, you should wait to adopt this SDK update until after updating to the 23.6.0 (est. June 2023) release of Sentry. Updating early will not break anything, but you will not get the full benefit of the Exception Groups improvements to issue grouping that were added to the Sentry backend.
-
Prefer
importlib.metadata
overpkg_resources
if available (#2081) by @sentrivana -
Work with a copy of request, vars in the event (#2125) by @sentrivana
-
Pinned version of dependency that broke the build (#2133) by @antonpirker
1.23.1
Various fixes & improvements
- Disable Django Cache spans by default. (#2120) by @antonpirker
1.23.0
Various fixes & improvements
-
New: Add
loguru
integration (#1994) by @PerchunPakCheck the documentation for more information.
Usage:
from loguru import logger import sentry_sdk from sentry_sdk.integrations.loguru import LoguruIntegration sentry_sdk.init( dsn="___PUBLIC_DSN___", integrations=[ LoguruIntegration(), ], ) logger.debug("I am ignored") logger.info("I am a breadcrumb") logger.error("I am an event", extra=dict(bar=43)) logger.exception("An exception happened")
- An error event with the message
"I am an event"
will be created. "I am a breadcrumb"
will be attached as a breadcrumb to that event.bar
will end up in theextra
attributes of that event."An exception happened"
will send the current exception fromsys.exc_info()
with the stack trace to Sentry. If there's no exception, the current stack will be attached.- The debug message
"I am ignored"
will not be captured by Sentry. To capture it, setlevel
toDEBUG
or lower inLoguruIntegration
.
- An error event with the message
-
Do not truncate request body if
request_bodies
is"always"
(#2092) by @sentrivana -
Fixed Celery headers for Beat auto-instrumentation (#2102) by @antonpirker
-
Add
db.operation
to Redis and MongoDB spans (#2089) by @antonpirker -
Make sure we're importing
redis
the library (#2106) by @sentrivana -
Add
include_source_context
option (#2020) by @farhat-nawaz and @sentrivana -
Import
Markup
frommarkupsafe
(#2047) by @rco-ableton -
Fix
__qualname__
missing attribute in asyncio integration (#2105) by @sl0thentr0py -
Remove relay extension from AWS Layer (#2068) by @sl0thentr0py
-
Add a note about
pip freeze
to the bug template (#2103) by @sentrivana
1.22.2
Various fixes & improvements
- Fix: Django caching spans when using keyword arguments (#2086) by @antonpirker
- Fix: Duration in Celery Beat tasks monitoring (#2087) by @antonpirker
- Fix: Docstrings of SPANDATA (#2084) by @antonpirker
1.22.1
Various fixes & improvements
- Fix: Handle a list of keys (not just a single key) in Django cache spans (#2082) by @antonpirker