selfmailbot
selfmailbot copied to clipboard
Update dependency sentry-sdk to v2
This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
sentry-sdk (changelog) | ~1 -> ~2.7.0 |
Release Notes
getsentry/sentry-python (sentry-sdk)
v2.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
v2.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
v2.5.1
This change fixes a regression in our cron monitoring feature, which caused cron checkins not to be sent. The regression appears to have been introduced in version 2.4.0.
We recommend that all users, who use Cron monitoring and are currently running sentry-python ≥2.4.0, upgrade to this release as soon as possible!
Other fixes & improvements
- feat(tracing): Warn if not-started transaction entered (#3003) by @szokeasaurusrex
- test(scope): Ensure
last_event_id
cleared (#3124) by @szokeasaurusrex - fix(scope): Clear last_event_id on scope clear (#3124) by @szokeasaurusrex
v2.5.0
Various fixes & improvements
-
Allow to configure status codes to report to Sentry in Starlette and FastAPI (#3008) by @sentrivana
By passing a new option to the FastAPI and Starlette integrations, you're now able to configure what status codes should be sent as events to Sentry. Here's how it works:
from sentry_sdk.integrations.starlette import StarletteIntegration from sentry_sdk.integrations.fastapi import FastApiIntegration sentry_sdk.init(
...
integrations=[
StarletteIntegration(
failed_request_status_codes=[403, range(500, 599)],
),
FastApiIntegration(
failed_request_status_codes=[403, range(500, 599)],
),
]
)
`failed_request_status_codes` expects a list of integers or containers (objects that allow membership checks via `in`)
of integers. Examples of valid `failed_request_status_codes`:
- `[500]` will only send events on HTTP 500.
- `[400, range(500, 599)]` will send events on HTTP 400 as well as the 500-599 range.
- `[500, 503]` will send events on HTTP 500 and 503.
The default is `[range(500, 599)]`.
See the [FastAPI](https://docs.sentry.io/platforms/python/integrations/fastapi/) and [Starlette](https://docs.sentry.io/platforms/python/integrations/starlette/) integration docs for more details.
- Support multiple keys with `cache_prefixes` (#​3136) by @​sentrivana
- Support integer Redis keys (#​3132) by @​sentrivana
- Update SDK version in CONTRIBUTING.md (#​3129) by @​sentrivana
- Bump actions/checkout from 4.1.4 to 4.1.5 (#​3067) by @​dependabot
v2.4.0
Various fixes & improvements
- Celery: Made
cache.key
span data field a list (#3110) by @antonpirker - Celery Beat: Refactor the Celery Beat integration (#3105) by @antonpirker
- GRPC: Add None check for grpc.aio interceptor (#3109) by @ordinary-jamie
- Docs: Remove
last_event_id
from migration guide (#3126) by @szokeasaurusrex - fix(django): Proper transaction names for i18n routes (#3104) by @sentrivana
- fix(scope): Copy
_last_event_id
inScope.__copy__
(#3123) by @szokeasaurusrex - fix(tests): Adapt to new Anthropic version (#3119) by @sentrivana
- build(deps): bump checkouts/data-schemas from
4381a97
to59f9683
(#3066) by @dependabot
v2.3.1
Various fixes & improvements
- Handle also byte arras as strings in Redis caches (#3101) by @antonpirker
- Do not crash exceptiongroup (by patching excepthook and keeping the name of the function) (#3099) by @antonpirker
v2.3.0
Various fixes & improvements
- NEW: Redis integration supports now Sentry Caches module. See https://docs.sentry.io/product/performance/caches/ (#3073) by @antonpirker
- NEW: Django integration supports now Sentry Caches module. See https://docs.sentry.io/product/performance/caches/ (#3009) by @antonpirker
- Fix
cohere
testsuite for new release ofcohere
(#3098) by @antonpirker - Fix ClickHouse integration where
_sentry_span
might be missing (#3096) by @sentrivana
v2.2.1
Various fixes & improvements
- Add conditional check for delivery_info's existence (#3083) by @cmanallen
- Updated deps for latest langchain version (#3092) by @antonpirker
- Fixed grpcio extras to work as described in the docs (#3081) by @antonpirker
- Use pythons venv instead of virtualenv to create virtual envs (#3077) by @antonpirker
- Celery: Add comment about kwargs_headers (#3079) by @szokeasaurusrex
- Celery: Queues module producer implementation (#3079) by @szokeasaurusrex
- Fix N803 flake8 failures (#3082) by @szokeasaurusrex
v2.2.0
New features
- Celery integration now sends additional data to Sentry to enable new features to guage the health of your queues
- Added a new integration for Cohere
- Reintroduced the
last_event_id
function, which had been removed in 2.0.0
Other fixes & improvements
- Add tags + data passing functionality to @ai_track (#3071) by @colin-sentry
- Only propagate headers from spans within transactions (#3070) by @szokeasaurusrex
- Improve type hints for set metrics (#3048) by @elramen
- Fix
get_client
typing (#3063) by @szokeasaurusrex - Auto-enable Anthropic integration + gate imports (#3054) by @colin-sentry
- Made
MeasurementValue.unit
NotRequired (#3051) by @antonpirker
v2.1.1
- Fix trace propagation in Celery tasks started by Celery Beat. (#3047) by @antonpirker
v2.1.0
-
fix(quart): Fix Quart integration (#3043) by @szokeasaurusrex
-
New integration: Langchain (#2911) by @colin-sentry
Usage: (Langchain is auto enabling, so you do not need to do anything special)
from langchain_openai import ChatOpenAI import sentry_sdk sentry_sdk.init( dsn="...", enable_tracing=True, traces_sample_rate=1.0, ) llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)
Check out the LangChain docs for details.
-
New integration: Anthropic (#2831) by @czyber
Usage: (add the AnthropicIntegration to your
sentry_sdk.init()
call)from anthropic import Anthropic import sentry_sdk sentry_sdk.init( dsn="...", enable_tracing=True, traces_sample_rate=1.0, integrations=[AnthropicIntegration()], ) client = Anthropic()
Check out the Anthropic docs for details.
-
New integration: Huggingface Hub (#3033) by @colin-sentry
Usage: (Huggingface Hub is auto enabling, so you do not need to do anything special)
import sentry_sdk from huggingface_hub import InferenceClient sentry_sdk.init( dsn="...", enable_tracing=True, traces_sample_rate=1.0, ) client = InferenceClient("some-model")
Check out the Huggingface docs for details. (comming soon!)
-
fix(huggingface): Reduce API cross-section for huggingface in test (#3042) by @colin-sentry
-
fix(django): Fix Django ASGI integration on Python 3.12 (#3027) by @bellini666
-
feat(perf): Add ability to put measurements directly on spans. (#2967) by @colin-sentry
-
fix(tests): Fix trytond tests (#3031) by @sentrivana
-
fix(tests): Update
pytest-asyncio
to fix CI (#3030) by @sentrivana -
fix(docs): Link to respective migration guides directly (#3020) by @sentrivana
-
docs(scope): Add docstring to
Scope.set_tags
(#2978) by @szokeasaurusrex -
test(scope): Fix typos in assert error message (#2978) by @szokeasaurusrex
-
feat(scope): New
set_tags
function (#2978) by @szokeasaurusrex -
test(scope): Add unit test for
Scope.set_tags
(#2978) by @szokeasaurusrex -
feat(scope): Add
set_tags
to top-level API (#2978) by @szokeasaurusrex -
test(scope): Add unit test for top-level API
set_tags
(#2978) by @szokeasaurusrex -
feat(tests): Parallelize tox (#3025) by @sentrivana
-
build(deps): Bump checkouts/data-schemas from
4aa14a7
to4381a97
(#3028) by @dependabot -
meta(license): Bump copyright year (#3029) by @szokeasaurusrex
v2.0.1
Various fixes & improvements
- Fix: Do not use convenience decorator (#3022) by @sentrivana
- Refactoring propagation context (#2970) by @antonpirker
- Use
pid
for test database name in Django tests (#2998) by @antonpirker - Remove outdated RC mention in docs (#3018) by @sentrivana
- Delete inaccurate comment from docs (#3002) by @szokeasaurusrex
- Add Lambda function that deletes test Lambda functions (#2960) by @antonpirker
- Correct discarded transaction debug message (#3002) by @szokeasaurusrex
- Add tests for discarded transaction debug messages (#3002) by @szokeasaurusrex
- Fix comment typo in metrics (#2992) by @szokeasaurusrex
- build(deps): bump actions/checkout from 4.1.1 to 4.1.4 (#3011) by @dependabot
- build(deps): bump checkouts/data-schemas from
1e17eb5
to4aa14a7
(#2997) by @dependabot
v2.0.0
This is the first major update in a long time!
We dropped support for some ancient languages and frameworks (Yes, Python 2.7 is no longer supported). Additionally we refactored a big part of the foundation of the SDK (how data inside the SDK is handled).
We hope you like it!
For a shorter version of what you need to do, to upgrade to Sentry SDK 2.0 see: https://docs.sentry.io/platforms/python/migration/1.x-to-2.x
New Features
- Additional integrations will now be activated automatically if the SDK detects the respective package is installed: Ariadne, ARQ, asyncpg, Chalice, clickhouse-driver, GQL, Graphene, huey, Loguru, PyMongo, Quart, Starlite, Strawberry.
- Added new API for custom instrumentation:
new_scope
,isolation_scope
. See the Deprecated section to see how they map to the existing APIs.
Changed
(These changes are all backwards-incompatible. Breaking Change (if you are just skimming for that phrase))
- The Pyramid integration will not capture errors that might happen in
authenticated_userid()
in a customAuthenticationPolicy
class. - The method
need_code_loation
of theMetricsAggregator
was renamed toneed_code_location
. - The
BackgroundWorker
thread used to process events was renamed fromraven-sentry.BackgroundWorker
tosentry-sdk.BackgroundWorker
. - The
reraise
function was moved fromsentry_sdk._compat
tosentry_sdk.utils
. - The
_ScopeManager
was moved fromsentry_sdk.hub
tosentry_sdk.scope
. - Moved the contents of
tracing_utils_py3.py
totracing_utils.py
. Thestart_child_span_decorator
is now insentry_sdk.tracing_utils
. - The actual implementation of
get_current_span
was moved tosentry_sdk.tracing_utils
.sentry_sdk.get_current_span
is still accessible as part of the top-level API. -
sentry_sdk.tracing_utils.add_query_source()
: Removed thehub
parameter. It is not necessary anymore. -
sentry_sdk.tracing_utils.record_sql_queries()
: Removed thehub
parameter. It is not necessary anymore. -
sentry_sdk.tracing_utils.get_current_span()
does now take ascope
instead of ahub
as parameter. -
sentry_sdk.tracing_utils.should_propagate_trace()
now takes aClient
instead of aHub
as first parameter. -
sentry_sdk.utils.is_sentry_url()
now takes aClient
instead of aHub
as first parameter. -
sentry_sdk.utils._get_contextvars
does not return a tuple with three values, but a tuple with two values. Thecopy_context
was removed. - If you create a transaction manually and later mutate the transaction in a
configure_scope
block this does not work anymore. Here is a recipe on how to change your code to make it work: Your existing implementation:transaction = sentry_sdk.transaction(...)
later in the code execution:
with sentry_sdk.configure_scope() as scope:
scope.set_transaction_name("new-transaction-name")
```
needs to be changed to this:
```python
transaction = sentry_sdk.transaction(...)
later in the code execution:
scope = sentry_sdk.Scope.get_current_scope()
scope.set_transaction_name("new-transaction-name")
```
-
The classes listed in the table below are now abstract base classes. Therefore, they can no longer be instantiated. Subclasses can only be instantiated if they implement all of the abstract methods.
Show table
Class Abstract methods sentry_sdk.integrations.Integration
setup_once
sentry_sdk.metrics.Metric
add
,serialize_value
, andweight
sentry_sdk.profiler.Scheduler
setup
andteardown
sentry_sdk.transport.Transport
capture_envelope
Removed
(These changes are all backwards-incompatible. Breaking Change (if you are just skimming for that phrase))
- Removed support for Python 2 and Python 3.5. The SDK now requires at least Python 3.6.
- Removed support for Celery 3.*.
- Removed support for Django 1.8, 1.9, 1.10.
- Removed support for Flask 0.*.
- Removed support for gRPC < 1.39.
- Removed support for Tornado < 6.
- Removed
last_event_id()
top level API. The last event ID is still returned bycapture_event()
,capture_exception()
andcapture_message()
but the top level APIsentry_sdk.last_event_id()
has been removed. - Removed support for sending events to the
/store
endpoint. Everything is now sent to the/envelope
endpoint. If you're on SaaS you don't have to worry about this, but if you're running Sentry yourself you'll need version20.6.0
or higher of self-hosted Sentry. - The deprecated
with_locals
configuration option was removed. Useinclude_local_variables
instead. See https://docs.sentry.io/platforms/python/configuration/options/#include-local-variables. - The deprecated
request_bodies
configuration option was removed. Usemax_request_body_size
. See https://docs.sentry.io/platforms/python/configuration/options/#max-request-body-size. - Removed support for
user.segment
. It was also removed from the trace header as well as from the dynamic sampling context. - Removed support for the
install
method for custom integrations. Please usesetup_once
instead. - Removed
sentry_sdk.tracing.Span.new_span
. Usesentry_sdk.tracing.Span.start_child
instead. - Removed
sentry_sdk.tracing.Transaction.new_span
. Usesentry_sdk.tracing.Transaction.start_child
instead. - Removed support for creating transactions via
sentry_sdk.tracing.Span(transaction=...)
. To create a transaction, please usesentry_sdk.tracing.Transaction(name=...)
. - Removed
sentry_sdk.utils.Auth.store_api_url
. -
sentry_sdk.utils.Auth.get_api_url
's now accepts asentry_sdk.consts.EndpointType
enum instead of a string as its only parameter. We recommend omitting this argument when calling the function, since the parameter's default value is the only possiblesentry_sdk.consts.EndpointType
value. The parameter exists for future compatibility. - Removed
tracing_utils_py2.py
. Thestart_child_span_decorator
is now insentry_sdk.tracing_utils
. - Removed the
sentry_sdk.profiler.Scheduler.stop_profiling
method. Any calls to this method can simply be removed, since this was a no-op method.
Deprecated
-
Using the
Hub
directly as well as using hub-based APIs has been deprecated. Where available, use the top-level API instead; otherwise use the scope API or the client API.Before:
with hub.start_span(...):
do something
After:
```python
import sentry_sdk
with sentry_sdk.start_span(...):
### do something
-
Hub cloning is deprecated.
Before:
with Hub(Hub.current) as hub:
do something with the cloned hub
After:
```python
import sentry_sdk
with sentry_sdk.isolation_scope() as scope:
### do something with the forked scope
-
configure_scope
is deprecated. Use the new isolation scope directly viaScope.get_isolation_scope()
instead.Before:
with configure_scope() as scope:
do something with scope
After:
```python
from sentry_sdk.scope import Scope
scope = Scope.get_isolation_scope()
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.