Releases: getsentry/sentry-python
1.14.0
Various fixes & improvements
-
Add
before_send_transaction
(#1840) by @antonpirkerAdds a hook (similar to
before_send
) that is called for all transaction events (performance releated data).Usage:
import sentry_sdk def strip_sensitive_data(event, hint): # modify event here (or return `None` if you want to drop the event entirely) return event sentry_sdk.init( # ... before_send_transaction=strip_sensitive_data, )
-
Django: Always remove values of Django session related cookies. (#1842) by @antonpirker
-
Profiling: Enable profiling for ASGI frameworks (#1824) by @Zylphrex
-
Profiling: Add profile context to transaction (#1860) by @Zylphrex
-
Profiling: Use co_qualname in python 3.11 (#1831) by @Zylphrex
-
OpenTelemetry: fix Use dict for sentry-trace context instead of tuple (#1847) by @AbhiPrasad
-
OpenTelemetry: fix extra dependency (#1825) by @bernardotorres
-
OpenTelemetry: fix NoOpSpan updates scope (#1834) by @Zylphrex
-
OpenTelemetry: Make sure to noop when there is no DSN (#1852) by @antonpirker
-
FastAPI: Fix middleware being patched multiple times (#1841) by @JohnnyDeuss
-
Starlette: Avoid import of pkg_resource with Starlette integration (#1836) by @mgu
-
Removed code coverage target (#1862) by @antonpirker
1.13.0
Various fixes & improvements
-
Add Starlite integration (#1748) by @gazorby
Adding support for the Starlite framework. Unhandled errors are captured. Performance spans for Starlite middleware are also captured. Thanks @gazorby for the great work!
Usage:
from starlite import Starlite, get import sentry_sdk from sentry_sdk.integrations.starlite import StarliteIntegration sentry_sdk.init( dsn="...", traces_sample_rate=1.0, integrations=[ StarliteIntegration(), ], ) @get("/") def hello_world() -> dict[str, str]: """Keeping the tradition alive with hello world.""" bla = 1/0 # causing an error return {"hello": "world"} app = Starlite(route_handlers=[hello_world])
-
Profiling: Remove sample buffer from profiler (#1791) by @Zylphrex
-
Profiling: Performance tweaks to profile sampler (#1789) by @Zylphrex
-
Add span for Django SimpleTemplateResponse rendering (#1818) by @chdsbd
-
Add enqueued_at and started_at to rq job extra (#1024) by @kruvasyan
-
Remove sanic v22 pin (#1819) by @sl0thentr0py
-
Add support for
byterray
andmemoryview
built-in types (#1833) by @Tarty -
Handle
"rc"
in SQLAlchemy version. (#1812) by @peterschutt -
Doc: Use .venv (not .env) as a virtual env location in CONTRIBUTING.md (#1790) by @tonyo
-
Auto publish to internal pypi on release (#1823) by @asottile-sentry
-
Added Python 3.11 to test suite (#1795) by @antonpirker
-
Update test/linting dependencies (#1801) by @antonpirker
-
Deps: bump sphinx from 5.2.3 to 5.3.0 (#1686) by @dependabot
1.12.1
Various fixes & improvements
- Link errors to OTel spans (#1787) by @antonpirker
1.12.0
Basic OTel support
This adds support to automatically integrate OpenTelemetry performance tracing with Sentry.
See the documentation on how to set it up:
https://docs.sentry.io/platforms/python/performance/instrumentation/opentelemetry/
Give it a try and let us know if you have any feedback or problems with using it.
By: @antonpirker (#1772, #1766, #1765)
Various fixes & improvements
1.11.1
Various fixes & improvements
- Move set_transaction_name out of event processor in fastapi/starlette (#1751) by @sl0thentr0py
- Expose proxy_headers as top level config and use in ProxyManager: https://docs.sentry.io/platforms/python/configuration/options/#proxy-headers (#1746) by @sl0thentr0py
1.11.0
Various fixes & improvements
-
NEW: Support for MongoDB (#1590) by @Agalin
Queries to MongoDB are now instrumented!
See https://docs.sentry.io/platforms/python/guides/pymongo/ for more information.
-
Profiling: Do not error if already setup (#1731) by @Zylphrex
-
Profiling: Use sleep scheduler by default (#1729) by @Zylphrex
-
Profiling: Tune the sample profile generation code for performance (#1694) by @Zylphrex
-
Fix: Reading FastAPI request body twice. (#1724) by @antonpirker
-
Fix: Django signals problem on sentry.io (#1732) by @antonpirker
-
Fix: Performance optimizations for Django signals (#1725) by @antonpirker
-
Fix: Move relay to port 5333 to avoid collisions (#1716) by @sl0thentr0py
-
Fix: strip_string() checks text length counting bytes not chars (#1711) by @mgaligniana
-
Chore: remove jira workflow (#1707) by @vladanpaunovic
-
Update actions/upload-artifact to v3.1.1 (#1718) by @mattgauntseo-sentry
-
Update checkouts/data-schemas from
a214fbc
to20ff3b9
(#1703) by @dependabot
1.10.1
Various fixes & improvements
- Bug fixes for FastAPI and Sentry SDK 1.10.0 (#1699) by @antonpirker
- The wrapped receive() did not return anything. (#1698) by @antonpirker
1.10.0
Various fixes & improvements
-
Unified naming for span ops (#1661) by @antonpirker
We have unified the strings of our span operations. See https://develop.sentry.dev/sdk/performance/span-operations/
WARNING: If you have Sentry Dashboards or Sentry Discover queries that use
transaction.op
in their fields, conditions, aggregates or columns this change could potentially break your Dashboards/Discover setup.
Here is a list of the changes we made to theop
s. Please adjust your dashboards and Discover queries accordingly:Old operation ( op
)New Operation ( op
)asgi.server
http.server
aws.request
http.client
aws.request.stream
http.client.stream
celery.submit
queue.submit.celery
celery.task
queue.task.celery
django.middleware
middleware.django
django.signals
event.django
django.template.render
template.render
django.view
view.render
http
http.client
redis
db.redis
rq.task
queue.task.rq
serverless.function
function.aws
serverless.function
function.gcp
starlette.middleware
middleware.starlette
-
Include framework in SDK name (#1662) by @antonpirker
-
Asyncio integration (#1671) by @antonpirker
-
Add exception handling to Asyncio Integration (#1695) by @antonpirker
-
Fix asyncio task factory (#1689) by @antonpirker
-
Have instrumentation for ASGI middleware receive/send callbacks. (#1673) by @antonpirker
-
Use Django internal ASGI handling from Channels version 4.0.0. (#1688) by @antonpirker
-
fix(integrations): Fix http putrequest when url is None (#1693) by @MattFlower
-
build(deps): bump checkouts/data-schemas from
f0a57f2
toa214fbc
(#1627) by @dependabot -
build(deps): bump flake8-bugbear from 22.9.11 to 22.9.23 (#1637) by @dependabot
-
build(deps): bump sphinx from 5.1.1 to 5.2.3 (#1653) by @dependabot
-
build(deps): bump actions/stale from 5 to 6 (#1638) by @dependabot
-
build(deps): bump black from 22.8.0 to 22.10.0 (#1670) by @dependabot
-
Remove unused node setup from ci. (#1681) by @antonpirker
-
Check for Decimal is in_valid_sample_rate (#1672) by @Arvind2222
-
Add session for aiohttp integration (#1605) by @denys-pidlisnyi
-
feat(profiling): Extract qualified name for each frame (#1669) by @Zylphrex
-
feat(profiling): Attach thread metadata to profiles (#1660) by @Zylphrex
-
ref(profiling): Rename profiling frame keys (#1680) by @Zylphrex
-
fix(profiling): get_frame_name only look at arguments (#1684) by @Zylphrex
-
fix(profiling): Need to sample profile correctly (#1679) by @Zylphrex
-
fix(profiling): Race condition spawning multiple profiling threads (#1676) by @Zylphrex
-
tests(profiling): Add basic profiling tests (#1677) by @Zylphrex
-
tests(profiling): Add tests for thread schedulers (#1683) by @Zylphrex
1.9.10
Various fixes & improvements
- Use content-length header in ASGI instead of reading request body (#1646, #1631, #1595, #1573) (#1649) by @antonpirker
- Added newer Celery versions to test suite (#1655) by @antonpirker
- Django 4.x support (#1632) by @antonpirker
- Cancel old CI runs when new one is started. (#1651) by @antonpirker
- Increase max string size for desc (#1647) by @k-fish
- Pin Sanic version for CI (#1650) by @antonpirker
- Fix for partial signals in old Django and old Python versions. (#1641) by @antonpirker
- Convert profile output to the sample format (#1611) by @phacops
- Dynamically adjust profiler sleep time (#1634) by @Zylphrex
1.9.9
Django update (ongoing)
- Instrument Django Signals so they show up in "Performance" view (#1526) by @BeryJu
- include other Django enhancements brought up by the community
Various fixes & improvements
- fix(profiling): Profiler mode type hints (#1633) by @Zylphrex
- New ASGIMiddleware tests (#1600) by @antonpirker
- build(deps): bump mypy from 0.961 to 0.971 (#1517) by @dependabot
- build(deps): bump black from 22.3.0 to 22.8.0 (#1596) by @dependabot
- build(deps): bump sphinx from 5.0.2 to 5.1.1 (#1524) by @dependabot
- ref: upgrade linters to flake8 5.x (#1610) by @asottile-sentry
- feat(profiling): Introduce different profiler schedulers (#1616) by @Zylphrex
- fix(profiling): Check transaction sampled status before profiling (#1624) by @Zylphrex
- Wrap Baggage ser/deser in capture_internal_exceptions (#1630) by @sl0thentr0py
- Faster Tests (DjangoCon) (#1602) by @antonpirker
- feat(profiling): Add support for profiles_sample_rate (#1613) by @Zylphrex
- feat(profiling): Support for multithreaded profiles (#1570) by @Zylphrex