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
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="<your-dsn>",
integrations=[
DjangoIntegration(middleware_spans=True),
],
)New Features ✨
-
feat(ai): add single message truncation by @shellmayr in #5079
-
feat(django): Add span around
Task.enqueueby @sentrivana in #5209 -
feat(starlette): Set transaction name when middleware spans are disabled by @alexander-alderman-webb in #5223
-
feat: Add "K_REVISION" to environment variable release check (exposed by cloud run) by @rpradal in #5222
Langgraph
- feat(langgraph): Response model attribute on invocation spans by @alexander-alderman-webb in #5212
- feat(langgraph): Usage attributes on invocation spans by @alexander-alderman-webb in #5211
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
-
fix(django): Set active thread ID when middleware spans are disabled by @alexander-alderman-webb in #5220
-
fix(integrations): openai-agents fixing the input messages structure which was wrapped too much in some cases by @constantinius in #5203
-
fix(integrations): openai-agents fix multi-patching of
get_modelfunction by @constantinius in #5195 -
fix(integrations): add values for pydantic-ai and openai-agents to
_INTEGRATION_DEACTIVATESto prohibit double span creation by @constantinius in #5196 -
fix(logs): Set
span_idinstead ofsentry.trace.parent_span_idattribute by @sentrivana in #5241 -
fix(logs, metrics): Gate metrics, logs user attributes behind
send_default_piiby @sentrivana in #5240 -
fix(pydantic-ai): Stop capturing internal exceptions by @alexander-alderman-webb in #5237
-
fix(ray): Actor class decorator with arguments by @alexander-alderman-webb in #5230
-
fix: Don't log internal exception for tornado user auth by @sl0thentr0py in #5208
-
fix: Fix changelog config by @sentrivana in #5192
Internal Changes 🔧
-
chore(django): Disable middleware spans by default by @alexander-alderman-webb in #5219
-
chore(starlette): Disable middleware spans by default by @alexander-alderman-webb in #5224
-
ci: Unpin Python version for LiteLLM tests by @alexander-alderman-webb in #5238
-
ci: 🤖 Update test matrix with new releases (12/15) by @github-actions in #5229
-
chore: Ignore type annotation migration in blame by @alexander-alderman-webb in #5234
-
ref: Clean up get_active_propagation_context by @sl0thentr0py in #5217
-
ref: Cleanup outgoing propagation_context logic by @sl0thentr0py in #5215
-
ci: Pin Python version to at least 3.10 for LiteLLM by @alexander-alderman-webb in #5202
-
test: Remove skipped test by @sentrivana in #5197
-
Convert all remaining type annotations into the modern format by @zsol in #5239
-
Convert sentry_sdk type annotations into the modern format by @zsol in #5206