Skip to content

Releases: getsentry/sentry-python

2.50.0

20 Jan 12:53
27b0bfd

Choose a tag to compare

New Features ✨

Ai

Other

  • feat(asyncio): Add on-demand way to enable AsyncioIntegration by @sentrivana in #5288

    You can now enable the AsyncioIntegration on demand, after calling sentry_sdk.init(). This is useful in scenarios where you don't have
    the event loop running early on, or when you need to instrument multiple event loops.

importsentry_sdkfromsentry_sdk.integrations.asyncioimportenable_asyncio_integration# Initializing the SDK as early as possible, when there is no event loop yetsentry_sdk.init( ... # No AsyncioIntegration in explicitly provided `integrations` ) asyncdefmain(): enable_asyncio_integration() # instruments the current event loop# ...your code...

Bug Fixes 🐛

Integrations

  • fix(integrations): google genai report image inputs by @constantinius in #5337
  • fix(integrations): google-genai: reworked gen_ai.request.messages extraction from parameters by @constantinius in #5275
  • fix(integrations): pydantic-ai: properly format binary input message parts to be conformant with the gen_ai.request.messages structure by @constantinius in #5251
  • fix(integrations): Anthropic: add content transformation for images and documents by @constantinius in #5276
  • fix(integrations): langchain add multimodal content transformation functions for images, audio, and files by @constantinius in #5278

Litellm

Other

Documentation 📚

Internal Changes 🔧

Fastmcp

Release

  • ci(release): Bump Craft version to fix issues by @BYK in #5305
  • ci(release): Switch from action-prepare-release to Craft by @BYK in #5290

Other

2.49.0

08 Jan 09:56

Choose a tag to compare

New Features ✨

Bug Fixes 🐛

Documentation 📚

Internal Changes 🔧

2.48.0

16 Dec 14:55

Choose a tag to compare

Middleware spans are now disabled by default in Django, Starlette and FastAPI integrations. Set the middleware_spans integration-level
option to capture individual spans per middleware layer. To record Django middleware spans, for example, configure as follows

importsentry_sdkfromsentry_sdk.integrations.djangoimportDjangoIntegrationsentry_sdk.init( dsn="<your-dsn>", integrations=[ DjangoIntegration(middleware_spans=True), ], )

New Features ✨

Langgraph

OTLP

  • feat(otlp): Optionally capture exceptions from otel's Span.record_exception api by @sl0thentr0py in #5235
  • feat(otlp): Implement new Propagator.inject for OTLPIntegration by @sl0thentr0py in #5221

Bug Fixes 🐛

Integrations

Internal Changes 🔧

2.47.0

03 Dec 14:06
a1e3004

Choose a tag to compare

Bug Fixes 🐛

New Features ✨

Deprecations

Build / dependencies / internal 🔧

2.46.0

24 Nov 09:34
d3375bc

Choose a tag to compare

Various fixes & improvements

2.45.0

18 Nov 13:23

Choose a tag to compare

Various fixes & improvements

  • OTLPIntegration (#4877) by @sl0thentr0py

    Enable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.

    importsentry_sdkfromsentry_sdk.integrations.otlpimportOTLPIntegrationsentry_sdk.init( dsn="<your-dsn>", # Add data like inputs and responses;# see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more infosend_default_pii=True, integrations=[ OTLPIntegration(), ], )

    Under the hood, this will setup:

    • A SpanExporter that will automatically set up the OTLP ingestion endpoint from your DSN
    • A Propagator that ensures Distributed Tracing works
    • Trace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics

    If you were using the SentrySpanProcessor before, we recommend migrating over to OTLPIntegration since it's a much simpler setup.

  • feat(integrations): implement context management for invoke_agent spans (#5089) by @constantinius

  • feat(loguru): Capture extra (#5096) by @sentrivana

  • feat: Attach server.address to metrics (#5113) by @alexander-alderman-webb

  • fix: Cast message and detail attributes before appending exception notes (#5114) by @alexander-alderman-webb

  • fix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (#5030) by @constantinius

  • fix(logs): Update sentry.origin (#5112) by @sentrivana

  • chore: Deprecate description truncation option for Redis spans (#5073) by @alexander-alderman-webb

  • chore: Deprecate max_spans LangChain parameter (#5074) by @alexander-alderman-webb

  • chore(toxgen): Check availability of pip and add detail to exceptions (#5076) by @alexander-alderman-webb

  • chore: add MCP SDK Pydantic AI and OpenAI Agents to the list of auto enabled integrations (#5111) by @constantinius

  • test: add tests for either FastMCP implementation (#5075) by @constantinius

  • fix(ci): Re-enable skipped tests (#5104) by @sentrivana

  • ci: 🤖 Update test matrix with new releases (11/17) (#5110) by @github-actions

  • ci: Force coverage core ctrace for 3.14 (#5108) by @sl0thentr0py

2.44.0

11 Nov 09:36

Choose a tag to compare

Various fixes & improvements

2.43.0

29 Oct 11:26
b069aa2

Choose a tag to compare

Various fixes & improvements

  • Pydantic AI integration (#4906) by @constantinius

    Enable the new Pydantic AI integration with the code snippet below, and you can use the Sentry AI dashboards to observe your AI calls:

    importsentry_sdkfromsentry_sdk.integrations.pydantic_aiimportPydanticAIIntegrationsentry_sdk.init( dsn="<your-dsn>", # Set traces_sample_rate to 1.0 to capture 100%# of transactions for tracing.traces_sample_rate=1.0, # Add data like inputs and responses;# see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more infosend_default_pii=True, integrations=[ PydanticAIIntegration(), ], )
  • MCP Python SDK (#4964) by @constantinius

    Enable the new Python MCP integration with the code snippet below:

    importsentry_sdkfromsentry_sdk.integrations.mcpimportMCPIntegrationsentry_sdk.init( dsn="<your-dsn>", # Set traces_sample_rate to 1.0 to capture 100%# of transactions for tracing.traces_sample_rate=1.0, # Add data like inputs and responses;# see https://docs.sentry.io/platforms/python/data-management/data-collected/ for more infosend_default_pii=True, integrations=[ MCPIntegration(), ], )
  • fix(strawberry): Remove autodetection, always use sync extension (#4984) by @sentrivana

    Previously, StrawberryIntegration would try to guess whether it should install the sync or async version of itself. This auto-detection was very brittle and could lead to us auto-enabling async code in a sync context. With this change, StrawberryIntegration remains an auto-enabling integration, but it'll enable the sync version by default. If you want to enable the async version, pass the option explicitly:

    sentry_sdk.init( # ...integrations=[ StrawberryIntegration( async_execution=True ), ], )
  • fix(google-genai): Set agent name (#5038) by @constantinius

  • fix(integrations): hooking into error tracing function to find out if an execute tool span should be set to error (#4986) by @constantinius

  • fix(django): Improve logic for classifying cache hits and misses (#5029) by @alexander-alderman-webb

  • chore(metrics): Rename _metrics to metrics (#5035) by @alexander-alderman-webb

  • fix(tracemetrics): Bump metric buffer size to 1k (#5031) by @k-fish

  • fix startlette deprecation warning (#5034) by @DeoLeung

  • build(deps): bump actions/upload-artifact from 4 to 5 (#5032) by @dependabot

  • fix(ai): truncate messages for google genai (#4992) by @shellmayr

  • fix(ai): add message truncation to litellm (#4973) by @shellmayr

  • feat(langchain): Support v1 (#4874) by @sentrivana

  • ci: Run common test suite on Python 3.14t (#4969) by @alexander-alderman-webb

  • feat: Officially support 3.14 & run integration tests on 3.14 (#4974) by @sentrivana

  • Make logger template format safer to missing kwargs (#4981) by @sl0thentr0py

  • tests(huggingface): Support 1.0.0rc7 (#4979) by @alexander-alderman-webb

  • feat: Enable HTTP request code origin by default (#4967) by @alexander-alderman-webb

  • ci: Run common test suite on Python 3.14 (#4896) by @sentrivana

3.0.0a7

20 Oct 13:50
7d96f39

Choose a tag to compare

3.0.0a7Pre-release
Pre-release

We are discontinuing development on 3.0. Please see
https://github.com/getsentry/sentry-python/discussions/4955 for more information.

3.0.0a7 is a maintenance release that adds a warning that there won't be
a stable 3.0 release. If you are on a 3.0 alpha release, please switch back
to 2.x to get the newest features and fixes.

2.42.1

20 Oct 12:38

Choose a tag to compare

Various fixes & improvements