Releases: getsentry/sentry-python
1.38.0
Various fixes & improvements
- Only add trace context to checkins and do not run
event_processorsfor checkins (#2536) by @antonpirker - Metric span summaries (#2522) by @mitsuhiko
- Add source context to code locations (#2539) by @jan-auer
- Use in-app filepath instead of absolute path (#2541) by @antonpirker
- Switch to
jinja2for generating CI yamls (#2534) by @sentrivana
1.37.1
Various fixes & improvements
- Fix
NameErroronparse_versionwith eventlet (#2532) by @sentrivana - build(deps): bump checkouts/data-schemas from
68def1etoe9f7d58(#2501) by @dependabot
1.37.0
Various fixes & improvements
-
Move installed modules code to utils (#2429) by @sentrivana
Note: We moved the internal function
_get_installed_modulesfromsentry_sdk.integrations.modulestosentry_sdk.utils.
So if you use this function you have to update your imports -
Add query source to DB spans (#2521) by @antonpirker
-
Run integration tests with newest
pytest(#2518) by @sentrivana -
Bring tests up to date (#2512) by @sentrivana
-
Fix: Prevent global var from being discarded at shutdown (#2530) by @antonpirker
-
Fix: Scope transaction source not being updated in scope.span setter (#2519) by @sl0thentr0py
1.36.0
- Django: Support Django 5.0 (#2490) by @sentrivana
- Django: Handling ASGI body in the right way. (#2513) by @antonpirker
- Flask: Test with Flask 3.0 (#2506) by @sentrivana
- Celery: Do not create a span when task is triggered by Celery Beat (#2510) by @antonpirker
- Redis: Ensure
RedisIntegrationis disabled, unlessredisis installed (#2504) by @szokeasaurusrex - Quart: Fix Quart integration for Quart 0.19.4 (#2516) by @antonpirker
- gRPC: Make async gRPC less noisy (#2507) by @jyggen
1.35.0
Various fixes & improvements
-
Updated gRPC integration: Asyncio interceptors and easier setup (#2369) by @fdellekart
Our gRPC integration now instruments incoming unary-unary grpc requests and outgoing unary-unary, unary-stream grpc requests using grpcio channels. Everything works now for sync and async code.
Before this release you had to add Sentry interceptors by hand to your gRPC code, now the only thing you need to do is adding the
GRPCIntegrationto yousentry_sdk_init()call. (See documentation for more information):import sentry_sdk from sentry_sdk.integrations.grpc import GRPCIntegration sentry_sdk.init( dsn="___PUBLIC_DSN___", enable_tracing=True, integrations=[ GRPCIntegration(), ], )
The old way still works, but we strongly encourage you to update your code to the way described above.
-
Python 3.12: Replace deprecated datetime functions (#2502) by @sentrivana
-
Metrics: Unify datetime format (#2409) by @mitsuhiko
-
Celery: Set correct data in
check_ins (#2500) by @antonpirker -
Celery: Read timezone for Crons monitors from
celery_scheduleif existing (#2497) by @antonpirker -
Django: Removing redundant code in Django tests (#2491) by @vagi8
-
Django: Make reading the request body work in Django ASGI apps. (#2495) by @antonpirker
-
FastAPI: Use wraps on fastapi request call wrapper (#2476) by @nkaras
-
Fix: Probe for psycopg2 and psycopg3 parameters function. (#2492) by @antonpirker
-
Fix: Remove unnecessary TYPE_CHECKING alias (#2467) by @rafrafek
1.34.0
Various fixes & improvements
- Added Python 3.12 support (#2471, #2483)
- Handle missing
connection_kwargsinpatch_redis_client(#2482) by @szokeasaurusrex - Run common test suite on Python 3.12 (#2479) by @sentrivana
1.33.1
Various fixes & improvements
- Make parse_version work in utils.py itself. (#2474) by @antonpirker
1.33.0
Various fixes & improvements
- New: Added
error_sampleroption (#2456) by @szokeasaurusrex - Python 3.12: Detect interpreter in shutdown state on thread spawn (#2468) by @mitsuhiko
- Patch eventlet under Sentry SDK (#2464) by @szokeasaurusrex
- Mitigate CPU spikes when sending lots of events with lots of data (#2449) by @antonpirker
- Make
debugoption also configurable via environment (#2450) by @antonpirker - Make sure
get_dsn_parametersis an actual function (#2441) by @sentrivana - Bump pytest-localserver, add compat comment (#2448) by @sentrivana
- AWS Lambda: Update compatible runtimes for AWS Lambda layer (#2453) by @antonpirker
- AWS Lambda: Load AWS Lambda secrets in Github CI (#2153) by @antonpirker
- Redis: Connection attributes in
redisdatabase spans (#2398) by @antonpirker - Falcon: Falcon integration checks response status before reporting error (#2465) by @szokeasaurusrex
- Quart: Support Quart 0.19 onwards (#2403) by @pgjones
- Sanic: Sanic integration initial version (#2419) by @szokeasaurusrex
- Django: Fix parsing of Django
pathpatterns (#2452) by @sentrivana - Django: Add Django 4.2 to test suite (#2462) by @sentrivana
- Polish changelog (#2434) by @sentrivana
- Update CONTRIBUTING.md (#2443) by @krishvsoni
- Update README.md (#2435) by @sentrivana
1.32.0
Various fixes & improvements
-
New: Error monitoring for some of the most popular Python GraphQL libraries:
-
Add GQL GraphQL integration (#2368) by @szokeasaurusrex
Usage:
import sentry_sdk from sentry_sdk.integrations.gql import GQLIntegration sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ GQLIntegration(), ], )
-
Add Graphene GraphQL error integration (#2389) by @sentrivana
Usage:
import sentry_sdk from sentry_sdk.integrations.graphene import GrapheneIntegration sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ GrapheneIntegration(), ], )
-
Add Strawberry GraphQL error & tracing integration (#2393) by @sentrivana
Usage:
import sentry_sdk from sentry_sdk.integrations.strawberry import StrawberryIntegration sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ # make sure to set async_execution to False if you're executing # GraphQL queries synchronously StrawberryIntegration(async_execution=True), ], traces_sample_rate=1.0, )
-
Add Ariadne GraphQL error integration (#2387) by @sentrivana
Usage:
import sentry_sdk from sentry_sdk.integrations.ariadne import AriadneIntegration sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ AriadneIntegration(), ], )
-
-
Capture multiple named groups again (#2432) by @sentrivana
-
Don't fail when upstream scheme is unusual (#2371) by @vanschelven
-
Support new RQ version (#2405) by @antonpirker
-
Remove
utcnow,utcfromtimestampdeprecated in Python 3.12 (#2415) by @rmad17 -
Add
traceto__all__in top-level__init__.py(#2401) by @lobsterkatie -
Move minimetrics code to the SDK (#2385) by @mitsuhiko
-
Add configurable compression levels (#2382) by @mitsuhiko
-
Shift flushing by up to a rollup window (#2396) by @mitsuhiko
-
Make a consistent noop flush behavior (#2428) by @mitsuhiko
-
Stronger recursion protection (#2426) by @mitsuhiko
-
Remove
OpenTelemetryIntegrationfrom__init__.py(#2379) by @sentrivana -
Update API docs (#2397) by @antonpirker
-
Pin some test requirements because new majors break our tests (#2404) by @antonpirker
-
Run more
requests,celery,falcontests (#2414) by @sentrivana -
Move
importorskips in tests to__init__.pyfiles (#2412) by @sentrivana -
Fix
mypyerrors (#2433) by @sentrivana -
Fix pre-commit issues (#2424) by @bukzor-sentryio
-
Update CONTRIBUTING.md (#2411) by @sentrivana
-
Bump
sphinxfrom 7.2.5 to 7.2.6 (#2378) by @dependabot -
[Experimental] Add explain plan to DB spans (#2315) by @antonpirker
1.31.0
Various fixes & improvements
-
New: Add integration for
clickhouse-driver(#2167) by @mimre25For more information, see the documentation for clickhouse-driver for more information.
Usage:
import sentry_sdk from sentry_sdk.integrations.clickhouse_driver import ClickhouseDriverIntegration sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ ClickhouseDriverIntegration(), ], )
-
New: Add integration for
asyncpg(#2314) by @mimre25For more information, see the documentation for asyncpg for more information.
Usage:
import sentry_sdk from sentry_sdk.integrations.asyncpg import AsyncPGIntegration sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ AsyncPGIntegration(), ], )
-
New: Allow to override
propagate_tracesinCeleryper task (#2331) by @jan-auerFor more information, see the documentation for Celery for more information.
Usage:
import sentry_sdk from sentry_sdk.integrations.celery import CeleryIntegration # Enable global distributed traces (this is the default, just to be explicit.) sentry_sdk.init( dsn='___PUBLIC_DSN___', integrations=[ CeleryIntegration(propagate_traces=True), ], ) ... # This will NOT propagate the trace. (The task will start its own trace): my_task_b.apply_async( args=("some_parameter", ), headers={"sentry-propagate-traces": False}, )
-
Prevent Falcon integration from breaking ASGI apps (#2359) by @szokeasaurusrex
-
Backpressure: only downsample a max of 10 times (#2347) by @sl0thentr0py
-
Made NoOpSpan compatible to Transactions. (#2364) by @antonpirker
-
Cleanup ASGI integration (#2335) by @antonpirker
-
Pin anyio in tests (dep of httpx), because new major 4.0.0 breaks tests. (#2336) by @antonpirker
-
Added link to backpressure section in docs. (#2354) by @antonpirker
-
Add .vscode to .gitignore (#2317) by @shoaib-mohd
-
Documenting Spans and Transactions (#2358) by @antonpirker
-
Fix in profiler: do not call getcwd from module root (#2329) by @Zylphrex
-
Fix transaction name in Starlette and FastAPI (#2341) by @antonpirker
-
Fix tests using Postgres (#2362) by @antonpirker
-
build(deps): Updated linting tooling (#2350) by @antonpirker
-
build(deps): bump sphinx from 7.2.4 to 7.2.5 (#2344) by @dependabot
-
build(deps): bump actions/checkout from 2 to 4 (#2352) by @dependabot
-
build(deps): bump checkouts/data-schemas from
ebc77d3to68def1e(#2351) by @dependabot