Releases: getsentry/sentry-python
2.13.0
Various fixes & improvements
-
New integration: Ray (#2400) (#2444) by @glowskir
Usage: (add the RayIntegration to your
sentry_sdk.init()
call and make sure it is called in the worker processes)import ray import sentry_sdk from sentry_sdk.integrations.ray import RayIntegration def init_sentry(): sentry_sdk.init( dsn="...", traces_sample_rate=1.0, integrations=[RayIntegration()], ) init_sentry() ray.init( runtime_env=dict(worker_process_setup_hook=init_sentry), )
For more information, see the documentation for the Ray integration.
-
New integration: Litestar (#2413) (#3358) by @KellyWalker
Usage: (add the LitestarIntegration to your
sentry_sdk.init()
)from litestar import Litestar, get import sentry_sdk from sentry_sdk.integrations.litestar import LitestarIntegration sentry_sdk.init( dsn="...", traces_sample_rate=1.0, integrations=[LitestarIntegration()], ) @get("/") async def index() -> str: return "Hello, world!" app = Litestar(...)
For more information, see the documentation for the Litestar integration.
-
New integration: Dramatiq from @jacobsvante (#3397) by @antonpirker
Usage: (add the DramatiqIntegration to yoursentry_sdk.init()
)import dramatiq import sentry_sdk from sentry_sdk.integrations.dramatiq import DramatiqIntegration sentry_sdk.init( dsn="...", traces_sample_rate=1.0, integrations=[DramatiqIntegration()], ) @dramatiq.actor(max_retries=0) def dummy_actor(x, y): return x / y dummy_actor.send(12, 0)
For more information, see the documentation for the Dramatiq integration.
-
New config option: Expose
custom_repr
function that precedessafe_repr
invocation in serializer (#3438) by @sl0thentr0pySee: https://docs.sentry.io/platforms/python/configuration/options/#custom-repr
-
Profiling: Add client SDK info to profile chunk (#3386) by @Zylphrex
-
Serialize vars early to avoid living references (#3409) by @sl0thentr0py
-
Deprecate hub-based
sessions.py
logic (#3419) by @szokeasaurusrex -
Deprecate
is_auto_session_tracking_enabled
(#3428) by @szokeasaurusrex -
Add note to generated yaml files (#3423) by @sentrivana
-
Slim down PR template (#3382) by @sentrivana
-
Use new banner in readme (#3390) by @sentrivana
2.12.0
Various fixes & improvements
- API: Expose the scope getters to top level API and use them everywhere (#3357) by @sl0thentr0py
- API:
push_scope
deprecation warning (#3355) (#3355) by @szokeasaurusrex - API: Replace
push_scope
(#3353, #3354) by @szokeasaurusrex - API: Deprecate, avoid, or stop using
configure_scope
(#3348, #3349, #3350, #3351) by @szokeasaurusrex - OTel: Remove experimental autoinstrumentation (#3239) by @sentrivana
- Graphene: Add span for grapqhl operation (#2788) by @czyber
- AI: Add async support for
ai_track
decorator (#3376) by @czyber - CI: Workaround bug preventing Django test runs (#3371) by @szokeasaurusrex
- CI: Remove Django setuptools pin (#3378) by @szokeasaurusrex
- Tests: Test with Django 5.1 RC (#3370) by @sentrivana
- Broaden
add_attachment
type (#3342) by @szokeasaurusrex - Add span data to the transactions trace context (#3374) by @antonpirker
- Gracefully fail attachment path not found case (#3337) by @sl0thentr0py
- Document attachment parameters (#3342) by @szokeasaurusrex
- Bump checkouts/data-schemas from
0feb234
to6d2c435
(#3369) by @dependabot - Bump checkouts/data-schemas from
88273a9
to0feb234
(#3252) by @dependabot
1.45.1
This is a security backport release.
-
Don't send full env to subprocess (892dd80) by @kmichel-aiven
See also GHSA-g92j-qhmh-64v2
2.11.0
Various fixes & improvements
-
Add
disabled_integrations
(#3328) by @sentrivanaDisabling individual integrations is now much easier. Instead of disabling all automatically enabled integrations and specifying the ones you want to keep, you can now use the new
disabled_integrations
config option to provide a list of integrations to disable:import sentry_sdk from sentry_sdk.integrations.flask import FlaskIntegration sentry_sdk.init( # Do not use the Flask integration even if Flask is installed. disabled_integrations=[ FlaskIntegration(), ], )
-
Use operation name as transaction name in Strawberry (#3294) by @sentrivana
-
WSGI integrations respect
SCRIPT_NAME
env variable (#2622) by @sarvaSanjay -
Make Django DB spans have origin
auto.db.django
(#3319) by @antonpirker -
Sort breadcrumbs by time before sending (#3307) by @antonpirker
-
Fix
KeyError('sentry-monitor-start-timestamp-s')
(#3278) by @Mohsen-Khodabakhshi -
Set MongoDB tags directly on span data (#3290) by @0Calories
-
Lower logger level for some messages (#3305) by @sentrivana and @antonpirker
-
Emit deprecation warnings from
Hub
API (#3280) by @szokeasaurusrex -
Clarify that
instrumenter
is internal-only (#3299) by @szokeasaurusrex -
Support Django 5.1 (#3207) by @sentrivana
-
Remove apparently unnecessary
if
(#3298) by @szokeasaurusrex -
Preliminary support for Python 3.13 (#3200) by @sentrivana
-
Move
sentry_sdk.init
out ofhub.py
(#3276) by @szokeasaurusrex -
Allow passing of PostgreSQL port in tests (#3281) by @rominf
-
Add tests for
@ai_track
decorator (#3325) by @colin-sentry -
Do not include type checking code in coverage report (#3327) by @antonpirker
-
Fix test_installed_modules (#3309) by @szokeasaurusrex
-
Fix typos and grammar in a comment (#3293) by @szokeasaurusrex
-
Fixed failed tests setup (#3303) by @antonpirker
-
Only assert warnings we are interested in (#3314) by @szokeasaurusrex
2.10.0
Various fixes & improvements
-
Add client cert and key support to
HttpTransport
(#3258) by @grammy-jiangAdd
cert_file
andkey_file
to yoursentry_sdk.init
to use a custom client cert and key. Alternatively, the environment variablesCLIENT_CERT_FILE
andCLIENT_KEY_FILE
can be used as well. -
OpenAI: Lazy initialize tiktoken to avoid http at import time (#3287) by @colin-sentry
-
OpenAI, Langchain: Make tiktoken encoding name configurable + tiktoken usage opt-in (#3289) by @colin-sentry
Fixed a bug where having certain packages installed along the Sentry SDK caused an HTTP request to be made to OpenAI infrastructure when the Sentry SDK was initialized. The request was made when the
tiktoken
package and at least one of theopenai
orlangchain
packages were installed.The request was fetching a
tiktoken
encoding in order to correctly measure token usage in some OpenAI and Langchain calls. This behavior is now opt-in. The choice of encoding to use was made configurable as well. To opt in, set thetiktoken_encoding_name
parameter in the OpenAPI or Langchain integration.sentry_sdk.init( integrations=[ OpenAIIntegration(tiktoken_encoding_name="cl100k_base"), LangchainIntegration(tiktoken_encoding_name="cl100k_base"), ], )
-
PyMongo: Send query description as valid JSON (#3291) by @0Calories
-
Remove Python 2 compatibility code (#3284) by @szokeasaurusrex
-
Fix
sentry_sdk.init
type hint (#3283) by @szokeasaurusrex -
Deprecate
hub
inProfile
(#3270) by @szokeasaurusrex -
Stop using
Hub
ininit
(#3275) by @szokeasaurusrex -
Delete
_should_send_default_pii
(#3274) by @szokeasaurusrex -
Remove
Hub
usage inconftest
(#3273) by @szokeasaurusrex -
Rename debug logging filter (#3260) by @szokeasaurusrex
-
Update
NoOpSpan.finish
signature (#3267) by @szokeasaurusrex -
Remove
Hub
inTransaction.finish
(#3267) by @szokeasaurusrex -
Remove Hub from
capture_internal_exception
logic (#3264) by @szokeasaurusrex -
Improve
Scope._capture_internal_exception
type hint (#3264) by @szokeasaurusrex -
Correct
ExcInfo
type (#3266) by @szokeasaurusrex -
Stop using
Hub
intracing_utils
(#3269) by @szokeasaurusrex
2.9.0
Various fixes & improvements
- ref(transport): Improve event data category typing (#3243) by @szokeasaurusrex
- ref(tracing): Improved handling of span status (#3261) by @antonpirker
- test(client): Add tests for dropped span client reports (#3244) by @szokeasaurusrex
- test(transport): Test new client report features (#3244) by @szokeasaurusrex
- feat(tracing): Record lost spans in client reports (#3244) by @szokeasaurusrex
- test(sampling): Replace custom logic with
capture_record_lost_event_calls
(#3257) by @szokeasaurusrex - test(transport): Non-order-dependent discarded events assertion (#3255) by @szokeasaurusrex
- test(core): Introduce
capture_record_lost_event_calls
fixture (#3254) by @szokeasaurusrex - test(core): Fix non-idempotent test (#3253) by @szokeasaurusrex
2.8.0
Various fixes & improvements
profiler_id
uses underscore (#3249) by @Zylphrex- Don't send full env to subprocess (#3251) by @kmichel-aiven
- Stop using
Hub
inHttpTransport
(#3247) by @szokeasaurusrex - Remove
ipdb
from test requirements (#3237) by @rominf - Avoid propagation of empty baggage (#2968) by @hartungstenio
- Add entry point for
SentryPropagator
(#3086) by @mender - Bump checkouts/data-schemas from
8c13457
to88273a9
(#3225) by @dependabot
2.7.1
Various fixes & improvements
- fix(otel): Fix missing baggage (#3218) by @sentrivana
- This is the config file of asdf-vm which we do not use. (#3215) by @antonpirker
- Added option to disable middleware spans in Starlette (#3052) by @antonpirker
- build: Update tornado version in setup.py to match code check. (#3206) by @aclemons
2.7.0
- Add
origin
to spans and transactions (#3133) by @antonpirker - OTel: Set up typing for OTel (#3168) by @sentrivana
- OTel: Auto instrumentation skeleton (#3143) by @sentrivana
- OpenAI: If there is an internal error, still return a value (#3192) by @colin-sentry
- MongoDB: Add MongoDB collection span tag (#3182) by @0Calories
- MongoDB: Change span operation from
db.query
todb
(#3186) by @0Calories - MongoDB: Remove redundant command name in query description (#3189) by @0Calories
- Apache Spark: Fix spark driver integration (#3162) by @seyoon-lim
- Apache Spark: Add Spark test suite to tox.ini and to CI (#3199) by @sentrivana
- Codecov: Add failed test commits in PRs (#3190) by @antonpirker
- Update library, Python versions in tests (#3202) by @sentrivana
- Remove Hub from our test suite (#3197) by @antonpirker
- Use env vars for default CA cert bundle location (#3160) by @DragoonAethis
- Create a separate test group for AI (#3198) by @sentrivana
- Add additional stub packages for type checking (#3122) by @Daverball
- Proper naming of requirements files (#3191) by @antonpirker
- Pinning pip because new version does not work with some versions of Celery and Httpx (#3195) by @antonpirker
- build(deps): bump supercharge/redis-github-action from 1.7.0 to 1.8.0 (#3193) by @dependabot
- build(deps): bump actions/checkout from 4.1.6 to 4.1.7 (#3171) by @dependabot
- build(deps): update pytest-asyncio requirement (#3087) by @dependabot
2.6.0
- Introduce continuous profiling mode (#2830) by @Zylphrex
- Profiling: Add deprecation comment for profiler internals (#3167) by @sentrivana
- Profiling: Move thread data to trace context (#3157) by @Zylphrex
- Explicitly export cron symbols for typecheckers (#3072) by @spladug
- Cleaning up ASGI tests for Django (#3180) by @antonpirker
- Celery: Add Celery receive latency (#3174) by @antonpirker
- Metrics: Update type hints for tag values (#3156) by @elramen
- Django: Fix psycopg3 reconnect error (#3111) by @szokeasaurusrex
- Tracing: Keep original function signature when decorated (#3178) by @sentrivana
- Reapply "Refactor the Celery Beat integration (#3105)" (#3144) (#3175) by @antonpirker
- Added contributor image to readme (#3183) by @antonpirker
- bump actions/checkout from 4.1.4 to 4.1.6 (#3147) by @dependabot
- bump checkouts/data-schemas from
59f9683
to8c13457
(#3146) by @dependabot