sentry-sdk 2.26.1__py2.py3-none-any.whl → 3.0.0a1__py2.py3-none-any.whl

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.

Potentially problematic release.


This version of sentry-sdk might be problematic. Click here for more details.

Files changed (114) hide show
  1. sentry_sdk/__init__.py +4 -8
  2. sentry_sdk/_compat.py +0 -1
  3. sentry_sdk/_init_implementation.py +6 -44
  4. sentry_sdk/_log_batcher.py +47 -28
  5. sentry_sdk/_types.py +8 -64
  6. sentry_sdk/ai/monitoring.py +14 -10
  7. sentry_sdk/ai/utils.py +1 -1
  8. sentry_sdk/api.py +69 -163
  9. sentry_sdk/client.py +25 -72
  10. sentry_sdk/consts.py +42 -23
  11. sentry_sdk/debug.py +0 -10
  12. sentry_sdk/envelope.py +2 -10
  13. sentry_sdk/feature_flags.py +5 -1
  14. sentry_sdk/integrations/__init__.py +5 -2
  15. sentry_sdk/integrations/_asgi_common.py +3 -3
  16. sentry_sdk/integrations/_wsgi_common.py +11 -40
  17. sentry_sdk/integrations/aiohttp.py +104 -57
  18. sentry_sdk/integrations/anthropic.py +10 -7
  19. sentry_sdk/integrations/arq.py +24 -13
  20. sentry_sdk/integrations/asgi.py +103 -83
  21. sentry_sdk/integrations/asyncio.py +1 -0
  22. sentry_sdk/integrations/asyncpg.py +45 -30
  23. sentry_sdk/integrations/aws_lambda.py +109 -92
  24. sentry_sdk/integrations/boto3.py +38 -9
  25. sentry_sdk/integrations/bottle.py +1 -1
  26. sentry_sdk/integrations/celery/__init__.py +48 -38
  27. sentry_sdk/integrations/clickhouse_driver.py +59 -28
  28. sentry_sdk/integrations/cohere.py +2 -0
  29. sentry_sdk/integrations/django/__init__.py +25 -46
  30. sentry_sdk/integrations/django/asgi.py +6 -2
  31. sentry_sdk/integrations/django/caching.py +13 -22
  32. sentry_sdk/integrations/django/middleware.py +1 -0
  33. sentry_sdk/integrations/django/signals_handlers.py +3 -1
  34. sentry_sdk/integrations/django/templates.py +8 -12
  35. sentry_sdk/integrations/django/transactions.py +1 -6
  36. sentry_sdk/integrations/django/views.py +5 -2
  37. sentry_sdk/integrations/falcon.py +7 -25
  38. sentry_sdk/integrations/fastapi.py +3 -3
  39. sentry_sdk/integrations/flask.py +1 -1
  40. sentry_sdk/integrations/gcp.py +63 -38
  41. sentry_sdk/integrations/graphene.py +6 -13
  42. sentry_sdk/integrations/grpc/aio/client.py +14 -8
  43. sentry_sdk/integrations/grpc/aio/server.py +19 -21
  44. sentry_sdk/integrations/grpc/client.py +8 -6
  45. sentry_sdk/integrations/grpc/server.py +12 -14
  46. sentry_sdk/integrations/httpx.py +47 -12
  47. sentry_sdk/integrations/huey.py +26 -22
  48. sentry_sdk/integrations/huggingface_hub.py +1 -0
  49. sentry_sdk/integrations/langchain.py +22 -15
  50. sentry_sdk/integrations/launchdarkly.py +3 -3
  51. sentry_sdk/integrations/litestar.py +4 -2
  52. sentry_sdk/integrations/logging.py +12 -3
  53. sentry_sdk/integrations/openai.py +2 -0
  54. sentry_sdk/integrations/openfeature.py +3 -5
  55. sentry_sdk/integrations/pymongo.py +18 -25
  56. sentry_sdk/integrations/pyramid.py +1 -1
  57. sentry_sdk/integrations/quart.py +3 -3
  58. sentry_sdk/integrations/ray.py +23 -17
  59. sentry_sdk/integrations/redis/_async_common.py +30 -18
  60. sentry_sdk/integrations/redis/_sync_common.py +28 -18
  61. sentry_sdk/integrations/redis/modules/caches.py +13 -10
  62. sentry_sdk/integrations/redis/modules/queries.py +14 -11
  63. sentry_sdk/integrations/redis/rb.py +4 -4
  64. sentry_sdk/integrations/redis/redis.py +6 -6
  65. sentry_sdk/integrations/redis/redis_cluster.py +18 -16
  66. sentry_sdk/integrations/redis/redis_py_cluster_legacy.py +4 -4
  67. sentry_sdk/integrations/redis/utils.py +63 -19
  68. sentry_sdk/integrations/rq.py +68 -23
  69. sentry_sdk/integrations/rust_tracing.py +28 -43
  70. sentry_sdk/integrations/sanic.py +23 -13
  71. sentry_sdk/integrations/socket.py +9 -5
  72. sentry_sdk/integrations/sqlalchemy.py +8 -8
  73. sentry_sdk/integrations/starlette.py +11 -31
  74. sentry_sdk/integrations/starlite.py +4 -2
  75. sentry_sdk/integrations/stdlib.py +56 -9
  76. sentry_sdk/integrations/strawberry.py +40 -59
  77. sentry_sdk/integrations/threading.py +10 -26
  78. sentry_sdk/integrations/tornado.py +57 -18
  79. sentry_sdk/integrations/trytond.py +4 -1
  80. sentry_sdk/integrations/unleash.py +2 -3
  81. sentry_sdk/integrations/wsgi.py +84 -38
  82. sentry_sdk/opentelemetry/__init__.py +9 -0
  83. sentry_sdk/opentelemetry/consts.py +33 -0
  84. sentry_sdk/opentelemetry/contextvars_context.py +73 -0
  85. sentry_sdk/{integrations/opentelemetry → opentelemetry}/propagator.py +19 -28
  86. sentry_sdk/opentelemetry/sampler.py +326 -0
  87. sentry_sdk/opentelemetry/scope.py +218 -0
  88. sentry_sdk/opentelemetry/span_processor.py +329 -0
  89. sentry_sdk/opentelemetry/tracing.py +35 -0
  90. sentry_sdk/opentelemetry/utils.py +476 -0
  91. sentry_sdk/profiler/__init__.py +0 -40
  92. sentry_sdk/profiler/continuous_profiler.py +1 -30
  93. sentry_sdk/profiler/transaction_profiler.py +5 -56
  94. sentry_sdk/scope.py +107 -351
  95. sentry_sdk/sessions.py +0 -87
  96. sentry_sdk/tracing.py +418 -1134
  97. sentry_sdk/tracing_utils.py +134 -169
  98. sentry_sdk/transport.py +4 -104
  99. sentry_sdk/types.py +26 -2
  100. sentry_sdk/utils.py +169 -152
  101. {sentry_sdk-2.26.1.dist-info → sentry_sdk-3.0.0a1.dist-info}/METADATA +3 -5
  102. sentry_sdk-3.0.0a1.dist-info/RECORD +154 -0
  103. {sentry_sdk-2.26.1.dist-info → sentry_sdk-3.0.0a1.dist-info}/WHEEL +1 -1
  104. sentry_sdk-3.0.0a1.dist-info/entry_points.txt +2 -0
  105. sentry_sdk/hub.py +0 -739
  106. sentry_sdk/integrations/opentelemetry/__init__.py +0 -7
  107. sentry_sdk/integrations/opentelemetry/consts.py +0 -5
  108. sentry_sdk/integrations/opentelemetry/integration.py +0 -58
  109. sentry_sdk/integrations/opentelemetry/span_processor.py +0 -391
  110. sentry_sdk/metrics.py +0 -965
  111. sentry_sdk-2.26.1.dist-info/RECORD +0 -152
  112. sentry_sdk-2.26.1.dist-info/entry_points.txt +0 -2
  113. {sentry_sdk-2.26.1.dist-info → sentry_sdk-3.0.0a1.dist-info}/licenses/LICENSE +0 -0
  114. {sentry_sdk-2.26.1.dist-info → sentry_sdk-3.0.0a1.dist-info}/top_level.txt +0 -0
@@ -33,7 +33,6 @@ import sys
33
33
  import threading
34
34
  import time
35
35
  import uuid
36
- import warnings
37
36
  from abc import ABC, abstractmethod
38
37
  from collections import deque
39
38
 
@@ -49,7 +48,6 @@ from sentry_sdk.utils import (
49
48
  is_gevent,
50
49
  is_valid_sample_rate,
51
50
  logger,
52
- nanosecond_time,
53
51
  set_in_app_in_frames,
54
52
  )
55
53
 
@@ -127,16 +125,6 @@ def has_profiling_enabled(options):
127
125
  if profiles_sample_rate is not None and profiles_sample_rate > 0:
128
126
  return True
129
127
 
130
- profiles_sample_rate = options["_experiments"].get("profiles_sample_rate")
131
- if profiles_sample_rate is not None:
132
- logger.warning(
133
- "_experiments['profiles_sample_rate'] is deprecated. "
134
- "Please use the non-experimental profiles_sample_rate option "
135
- "directly."
136
- )
137
- if profiles_sample_rate > 0:
138
- return True
139
-
140
128
  return False
141
129
 
142
130
 
@@ -159,16 +147,9 @@ def setup_profiler(options):
159
147
  else:
160
148
  default_profiler_mode = ThreadScheduler.mode
161
149
 
150
+ profiler_mode = default_profiler_mode
162
151
  if options.get("profiler_mode") is not None:
163
152
  profiler_mode = options["profiler_mode"]
164
- else:
165
- profiler_mode = options.get("_experiments", {}).get("profiler_mode")
166
- if profiler_mode is not None:
167
- logger.warning(
168
- "_experiments['profiler_mode'] is deprecated. Please use the "
169
- "non-experimental profiler_mode option directly."
170
- )
171
- profiler_mode = profiler_mode or default_profiler_mode
172
153
 
173
154
  if (
174
155
  profiler_mode == ThreadScheduler.mode
@@ -210,7 +191,6 @@ class Profile:
210
191
  self,
211
192
  sampled, # type: Optional[bool]
212
193
  start_ns, # type: int
213
- hub=None, # type: Optional[sentry_sdk.Hub]
214
194
  scheduler=None, # type: Optional[Scheduler]
215
195
  ):
216
196
  # type: (...) -> None
@@ -241,16 +221,6 @@ class Profile:
241
221
 
242
222
  self.unique_samples = 0
243
223
 
244
- # Backwards compatibility with the old hub property
245
- self._hub = None # type: Optional[sentry_sdk.Hub]
246
- if hub is not None:
247
- self._hub = hub
248
- warnings.warn(
249
- "The `hub` parameter is deprecated. Please do not use it.",
250
- DeprecationWarning,
251
- stacklevel=2,
252
- )
253
-
254
224
  def update_active_thread_id(self):
255
225
  # type: () -> None
256
226
  self.active_thread_id = get_current_thread_meta()[0]
@@ -296,12 +266,11 @@ class Profile:
296
266
 
297
267
  options = client.options
298
268
 
269
+ sample_rate = None
299
270
  if callable(options.get("profiles_sampler")):
300
271
  sample_rate = options["profiles_sampler"](sampling_context)
301
272
  elif options["profiles_sample_rate"] is not None:
302
273
  sample_rate = options["profiles_sample_rate"]
303
- else:
304
- sample_rate = options["_experiments"].get("profiles_sample_rate")
305
274
 
306
275
  # The profiles_sample_rate option was not set, so profiling
307
276
  # was never enabled.
@@ -342,7 +311,7 @@ class Profile:
342
311
  logger.debug("[Profiling] Starting profile")
343
312
  self.active = True
344
313
  if not self.start_ns:
345
- self.start_ns = nanosecond_time()
314
+ self.start_ns = time.perf_counter_ns()
346
315
  self.scheduler.start_profiling(self)
347
316
 
348
317
  def stop(self):
@@ -353,7 +322,7 @@ class Profile:
353
322
  assert self.scheduler, "No scheduler specified"
354
323
  logger.debug("[Profiling] Stopping profile")
355
324
  self.active = False
356
- self.stop_ns = nanosecond_time()
325
+ self.stop_ns = time.perf_counter_ns()
357
326
 
358
327
  def __enter__(self):
359
328
  # type: () -> Profile
@@ -517,26 +486,6 @@ class Profile:
517
486
 
518
487
  return True
519
488
 
520
- @property
521
- def hub(self):
522
- # type: () -> Optional[sentry_sdk.Hub]
523
- warnings.warn(
524
- "The `hub` attribute is deprecated. Please do not access it.",
525
- DeprecationWarning,
526
- stacklevel=2,
527
- )
528
- return self._hub
529
-
530
- @hub.setter
531
- def hub(self, value):
532
- # type: (Optional[sentry_sdk.Hub]) -> None
533
- warnings.warn(
534
- "The `hub` attribute is deprecated. Please do not set it.",
535
- DeprecationWarning,
536
- stacklevel=2,
537
- )
538
- self._hub = value
539
-
540
489
 
541
490
  class Scheduler(ABC):
542
491
  mode = "unknown" # type: ProfilerMode
@@ -612,7 +561,7 @@ class Scheduler(ABC):
612
561
  # were started after this point.
613
562
  new_profiles = len(self.new_profiles)
614
563
 
615
- now = nanosecond_time()
564
+ now = time.perf_counter_ns()
616
565
 
617
566
  try:
618
567
  sample = [