sentry-sdk 2.2.0__tar.gz → 2.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sentry_sdk-2.2.0/sentry_sdk.egg-info → sentry_sdk-2.2.1}/PKG-INFO +2 -1
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/consts.py +2 -1
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/celery/__init__.py +54 -5
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1/sentry_sdk.egg-info}/PKG-INFO +2 -1
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk.egg-info/requires.txt +1 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/setup.py +2 -2
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/LICENSE +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/MANIFEST.in +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/README.md +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/pyproject.toml +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/_compat.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/_lru_cache.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/_queue.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/_types.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/_werkzeug.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/ai/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/ai/monitoring.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/ai/utils.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/api.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/attachments.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/client.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/crons/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/crons/api.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/crons/consts.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/crons/decorator.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/db/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/db/explain_plan/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/db/explain_plan/django.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/db/explain_plan/sqlalchemy.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/debug.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/envelope.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/hub.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/_asgi_common.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/_wsgi_common.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/aiohttp.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/anthropic.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/argv.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/ariadne.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/arq.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/asgi.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/asyncio.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/asyncpg.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/atexit.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/aws_lambda.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/beam.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/boto3.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/bottle.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/celery/beat.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/celery/utils.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/chalice.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/clickhouse_driver.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/cloud_resource_context.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/cohere.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/dedupe.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/asgi.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/caching.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/middleware.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/signals_handlers.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/templates.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/transactions.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/django/views.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/excepthook.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/executing.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/falcon.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/fastapi.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/flask.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/gcp.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/gnu_backtrace.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/gql.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/graphene.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/grpc/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/grpc/aio/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/grpc/aio/client.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/grpc/aio/server.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/grpc/client.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/grpc/server.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/httpx.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/huey.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/huggingface_hub.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/langchain.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/logging.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/loguru.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/modules.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/openai.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/opentelemetry/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/opentelemetry/consts.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/opentelemetry/integration.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/opentelemetry/propagator.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/opentelemetry/span_processor.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/pure_eval.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/pymongo.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/pyramid.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/quart.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/redis/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/redis/asyncio.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/rq.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/sanic.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/serverless.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/socket.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/spark/__init__.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/spark/spark_driver.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/spark/spark_worker.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/sqlalchemy.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/starlette.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/starlite.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/stdlib.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/strawberry.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/threading.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/tornado.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/trytond.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/wsgi.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/metrics.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/monitor.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/profiler.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/py.typed +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/scope.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/scrubber.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/serializer.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/session.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/sessions.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/spotlight.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/tracing.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/tracing_utils.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/transport.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/types.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/utils.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/worker.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk.egg-info/SOURCES.txt +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk.egg-info/dependency_links.txt +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk.egg-info/not-zip-safe +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk.egg-info/top_level.txt +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/setup.cfg +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_api.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_basics.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_client.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_conftest.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_crons.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_envelope.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_exceptiongroup.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_lru_cache.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_metrics.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_monitor.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_new_scopes_compat.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_new_scopes_compat_event.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_profiler.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_propagationcontext.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_scope.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_scrubber.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_serializer.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_sessions.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_spotlight.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_transport.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_types.py +0 -0
- {sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sentry-sdk
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Python client for Sentry (https://sentry.io)
|
|
5
5
|
Home-page: https://github.com/getsentry/sentry-python
|
|
6
6
|
Author: Sentry Team and Contributors
|
|
@@ -60,6 +60,7 @@ Requires-Dist: blinker>=1.1; extra == "flask"
|
|
|
60
60
|
Requires-Dist: markupsafe; extra == "flask"
|
|
61
61
|
Provides-Extra: grpcio
|
|
62
62
|
Requires-Dist: grpcio>=1.21.1; extra == "grpcio"
|
|
63
|
+
Requires-Dist: protobuf>=3.8.0; extra == "grpcio"
|
|
63
64
|
Provides-Extra: httpx
|
|
64
65
|
Requires-Dist: httpx>=0.16.0; extra == "httpx"
|
|
65
66
|
Provides-Extra: huey
|
|
@@ -388,6 +388,7 @@ class OP:
|
|
|
388
388
|
LANGCHAIN_AGENT = "ai.agent.langchain"
|
|
389
389
|
LANGCHAIN_CHAT_COMPLETIONS_CREATE = "ai.chat_completions.create.langchain"
|
|
390
390
|
QUEUE_PROCESS = "queue.process"
|
|
391
|
+
QUEUE_PUBLISH = "queue.publish"
|
|
391
392
|
QUEUE_SUBMIT_ARQ = "queue.submit.arq"
|
|
392
393
|
QUEUE_TASK_ARQ = "queue.task.arq"
|
|
393
394
|
QUEUE_SUBMIT_CELERY = "queue.submit.celery"
|
|
@@ -488,4 +489,4 @@ DEFAULT_OPTIONS = _get_default_options()
|
|
|
488
489
|
del _get_default_options
|
|
489
490
|
|
|
490
491
|
|
|
491
|
-
VERSION = "2.2.
|
|
492
|
+
VERSION = "2.2.1"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import sys
|
|
2
|
+
from collections.abc import Mapping
|
|
2
3
|
from functools import wraps
|
|
3
4
|
|
|
4
5
|
import sentry_sdk
|
|
@@ -47,6 +48,7 @@ try:
|
|
|
47
48
|
Retry,
|
|
48
49
|
SoftTimeLimitExceeded,
|
|
49
50
|
)
|
|
51
|
+
from kombu import Producer # type: ignore
|
|
50
52
|
except ImportError:
|
|
51
53
|
raise DidNotEnable("Celery not installed")
|
|
52
54
|
|
|
@@ -82,6 +84,7 @@ class CeleryIntegration(Integration):
|
|
|
82
84
|
_patch_build_tracer()
|
|
83
85
|
_patch_task_apply_async()
|
|
84
86
|
_patch_worker_exit()
|
|
87
|
+
_patch_producer_publish()
|
|
85
88
|
|
|
86
89
|
# This logger logs every status of every task that ran on the worker.
|
|
87
90
|
# Meaning that every task's breadcrumbs are full of stuff like "Task
|
|
@@ -330,11 +333,12 @@ def _set_messaging_destination_name(task, span):
|
|
|
330
333
|
"""Set "messaging.destination.name" tag for span"""
|
|
331
334
|
with capture_internal_exceptions():
|
|
332
335
|
delivery_info = task.request.delivery_info
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
336
|
+
if delivery_info:
|
|
337
|
+
routing_key = delivery_info.get("routing_key")
|
|
338
|
+
if delivery_info.get("exchange") == "" and routing_key is not None:
|
|
339
|
+
# Empty exchange indicates the default exchange, meaning the tasks
|
|
340
|
+
# are sent to the queue with the same name as the routing key.
|
|
341
|
+
span.set_data(SPANDATA.MESSAGING_DESTINATION_NAME, routing_key)
|
|
338
342
|
|
|
339
343
|
|
|
340
344
|
def _wrap_task_call(task, f):
|
|
@@ -433,3 +437,48 @@ def _patch_worker_exit():
|
|
|
433
437
|
sentry_sdk.flush()
|
|
434
438
|
|
|
435
439
|
Worker.workloop = sentry_workloop
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
def _patch_producer_publish():
|
|
443
|
+
# type: () -> None
|
|
444
|
+
original_publish = Producer.publish
|
|
445
|
+
|
|
446
|
+
@ensure_integration_enabled(CeleryIntegration, original_publish)
|
|
447
|
+
def sentry_publish(self, *args, **kwargs):
|
|
448
|
+
# type: (Producer, *Any, **Any) -> Any
|
|
449
|
+
kwargs_headers = kwargs.get("headers", {})
|
|
450
|
+
if not isinstance(kwargs_headers, Mapping):
|
|
451
|
+
# Ensure kwargs_headers is a Mapping, so we can safely call get().
|
|
452
|
+
# We don't expect this to happen, but it's better to be safe. Even
|
|
453
|
+
# if it does happen, only our instrumentation breaks. This line
|
|
454
|
+
# does not overwrite kwargs["headers"], so the original publish
|
|
455
|
+
# method will still work.
|
|
456
|
+
kwargs_headers = {}
|
|
457
|
+
|
|
458
|
+
task_name = kwargs_headers.get("task")
|
|
459
|
+
task_id = kwargs_headers.get("id")
|
|
460
|
+
retries = kwargs_headers.get("retries")
|
|
461
|
+
|
|
462
|
+
routing_key = kwargs.get("routing_key")
|
|
463
|
+
exchange = kwargs.get("exchange")
|
|
464
|
+
|
|
465
|
+
with sentry_sdk.start_span(op=OP.QUEUE_PUBLISH, description=task_name) as span:
|
|
466
|
+
if task_id is not None:
|
|
467
|
+
span.set_data(SPANDATA.MESSAGING_MESSAGE_ID, task_id)
|
|
468
|
+
|
|
469
|
+
if exchange == "" and routing_key is not None:
|
|
470
|
+
# Empty exchange indicates the default exchange, meaning messages are
|
|
471
|
+
# routed to the queue with the same name as the routing key.
|
|
472
|
+
span.set_data(SPANDATA.MESSAGING_DESTINATION_NAME, routing_key)
|
|
473
|
+
|
|
474
|
+
if retries is not None:
|
|
475
|
+
span.set_data(SPANDATA.MESSAGING_MESSAGE_RETRY_COUNT, retries)
|
|
476
|
+
|
|
477
|
+
with capture_internal_exceptions():
|
|
478
|
+
span.set_data(
|
|
479
|
+
SPANDATA.MESSAGING_SYSTEM, self.connection.transport.driver_type
|
|
480
|
+
)
|
|
481
|
+
|
|
482
|
+
return original_publish(self, *args, **kwargs)
|
|
483
|
+
|
|
484
|
+
Producer.publish = sentry_publish
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: sentry-sdk
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Python client for Sentry (https://sentry.io)
|
|
5
5
|
Home-page: https://github.com/getsentry/sentry-python
|
|
6
6
|
Author: Sentry Team and Contributors
|
|
@@ -60,6 +60,7 @@ Requires-Dist: blinker>=1.1; extra == "flask"
|
|
|
60
60
|
Requires-Dist: markupsafe; extra == "flask"
|
|
61
61
|
Provides-Extra: grpcio
|
|
62
62
|
Requires-Dist: grpcio>=1.21.1; extra == "grpcio"
|
|
63
|
+
Requires-Dist: protobuf>=3.8.0; extra == "grpcio"
|
|
63
64
|
Provides-Extra: httpx
|
|
64
65
|
Requires-Dist: httpx>=0.16.0; extra == "httpx"
|
|
65
66
|
Provides-Extra: huey
|
|
@@ -21,7 +21,7 @@ def get_file_text(file_name):
|
|
|
21
21
|
|
|
22
22
|
setup(
|
|
23
23
|
name="sentry-sdk",
|
|
24
|
-
version="2.2.
|
|
24
|
+
version="2.2.1",
|
|
25
25
|
author="Sentry Team and Contributors",
|
|
26
26
|
author_email="hello@sentry.io",
|
|
27
27
|
url="https://github.com/getsentry/sentry-python",
|
|
@@ -57,7 +57,7 @@ setup(
|
|
|
57
57
|
"falcon": ["falcon>=1.4"],
|
|
58
58
|
"fastapi": ["fastapi>=0.79.0"],
|
|
59
59
|
"flask": ["flask>=0.11", "blinker>=1.1", "markupsafe"],
|
|
60
|
-
"grpcio": ["grpcio>=1.21.1"],
|
|
60
|
+
"grpcio": ["grpcio>=1.21.1", "protobuf>=3.8.0"],
|
|
61
61
|
"httpx": ["httpx>=0.16.0"],
|
|
62
62
|
"huey": ["huey>=2"],
|
|
63
63
|
"huggingface_hub": ["huggingface_hub>=0.22"],
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sentry_sdk-2.2.0 → sentry_sdk-2.2.1}/sentry_sdk/integrations/opentelemetry/span_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|