sentry-arroyo 2.19.7__tar.gz → 2.19.9__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_arroyo-2.19.7/sentry_arroyo.egg-info → sentry_arroyo-2.19.9}/PKG-INFO +1 -1
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/dlq.py +7 -1
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/processor.py +23 -5
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9/sentry_arroyo.egg-info}/PKG-INFO +1 -1
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/setup.py +1 -1
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/LICENSE +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/MANIFEST.in +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/README.md +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/abstract.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/commit.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/configuration.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/kafka/consumer.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/backend.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/storages/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/storages/abstract.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/backends/local/storages/memory.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/commit.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/errors.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/abstract.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/batching.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/buffer.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/commit.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/filter.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/guard.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/healthcheck.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/noop.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/produce.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/reduce.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task_in_threads.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task_with_multiprocessing.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/unfold.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/py.typed +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/types.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/clock.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/codecs.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/concurrent.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/logging.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/metricDefs.json +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/metric_defs.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/metrics.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/profiler.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/utils/retries.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/batched.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/script.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/examples/transform_and_produce/simple.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/requirements.txt +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/SOURCES.txt +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/dependency_links.txt +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/not-zip-safe +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/requires.txt +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/sentry_arroyo.egg-info/top_level.txt +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/setup.cfg +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/mixins.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/test_commit.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/test_kafka.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/backends/test_local.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_all.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_batching.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_buffer.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_commit.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_filter.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_guard.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_noop.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_produce.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_reduce.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_run_task.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_run_task_in_threads.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_run_task_with_multiprocessing.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/strategies/test_unfold.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/processing/test_processor.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/test_commit.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/test_dlq.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/test_types.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/__init__.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/test_concurrent.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/test_metrics.py +0 -0
- {sentry_arroyo-2.19.7 → sentry_arroyo-2.19.9}/tests/utils/test_retries.py +0 -0
|
@@ -44,12 +44,18 @@ class InvalidMessage(Exception):
|
|
|
44
44
|
"""
|
|
45
45
|
|
|
46
46
|
def __init__(
|
|
47
|
-
self,
|
|
47
|
+
self,
|
|
48
|
+
partition: Partition,
|
|
49
|
+
offset: int,
|
|
50
|
+
needs_commit: bool = True,
|
|
51
|
+
reason: Optional[str] = None,
|
|
52
|
+
log_exception: bool = True
|
|
48
53
|
) -> None:
|
|
49
54
|
self.partition = partition
|
|
50
55
|
self.offset = offset
|
|
51
56
|
self.needs_commit = needs_commit
|
|
52
57
|
self.reason = reason
|
|
58
|
+
self.log_exception = log_exception
|
|
53
59
|
|
|
54
60
|
@classmethod
|
|
55
61
|
def from_value(cls, value: BrokerValue[Any]) -> InvalidMessage:
|
|
@@ -365,7 +365,8 @@ class StreamProcessor(Generic[TStrategyPayload]):
|
|
|
365
365
|
):
|
|
366
366
|
self.__message = None
|
|
367
367
|
|
|
368
|
-
|
|
368
|
+
if exc.log_exception:
|
|
369
|
+
logger.exception(exc)
|
|
369
370
|
self.__metrics_buffer.incr_counter("arroyo.consumer.invalid_message.count", 1)
|
|
370
371
|
if self.__dlq_policy:
|
|
371
372
|
start_dlq = time.time()
|
|
@@ -446,10 +447,27 @@ class StreamProcessor(Generic[TStrategyPayload]):
|
|
|
446
447
|
self.__is_paused = True
|
|
447
448
|
|
|
448
449
|
elif self.__is_paused:
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
450
|
+
paused_partitions = set(self.__consumer.paused())
|
|
451
|
+
unpaused_partitions = (
|
|
452
|
+
set(self.__consumer.tell()) - paused_partitions
|
|
453
|
+
)
|
|
454
|
+
if unpaused_partitions:
|
|
455
|
+
logger.warning(
|
|
456
|
+
"Processor in paused state while consumer is partially unpaused: %s, paused: %s",
|
|
457
|
+
unpaused_partitions,
|
|
458
|
+
paused_partitions,
|
|
459
|
+
)
|
|
460
|
+
self.__is_paused = False
|
|
461
|
+
# unpause paused partitions... just in case a subset is paused
|
|
462
|
+
self.__metrics_buffer.incr_counter(
|
|
463
|
+
"arroyo.consumer.resume", 1
|
|
464
|
+
)
|
|
465
|
+
self.__consumer.resume([*paused_partitions])
|
|
466
|
+
else:
|
|
467
|
+
# A paused consumer should still poll periodically to avoid it's partitions
|
|
468
|
+
# getting revoked by the broker after reaching the max.poll.interval.ms
|
|
469
|
+
# Polling a paused consumer should never yield a message.
|
|
470
|
+
assert self.__consumer.poll(0.1) is None
|
|
453
471
|
else:
|
|
454
472
|
time.sleep(0.01)
|
|
455
473
|
|
|
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_arroyo-2.19.7 → sentry_arroyo-2.19.9}/arroyo/processing/strategies/run_task_in_threads.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
|