diff --git a/src/sentry/tasks/store.py b/src/sentry/tasks/store.py index 4e7b341a32336f..ecb760d193b74e 100644 --- a/src/sentry/tasks/store.py +++ b/src/sentry/tasks/store.py @@ -287,7 +287,11 @@ def save_event(cache_key=None, data=None, start_time=None, event_id=None, **kwar 'description': exc.message, } ) - tsdb.incr(tsdb.models.project_total_received_discarded, project, timestamp=start_time) + tsdb.incr( + tsdb.models.project_total_received_discarded, + project, + timestamp=to_datetime(start_time) if start_time is not None else None, + ) finally: if cache_key: default_cache.delete(cache_key) diff --git a/tests/sentry/tasks/test_store.py b/tests/sentry/tasks/test_store.py index 5c7eae33005214..13e9c0a8ae6ee6 100644 --- a/tests/sentry/tasks/test_store.py +++ b/tests/sentry/tasks/test_store.py @@ -1,10 +1,15 @@ from __future__ import absolute_import import mock +import uuid +from time import time +from sentry import tsdb +from sentry.event_manager import EventManager, HashDiscarded from sentry.plugins import Plugin2 -from sentry.tasks.store import preprocess_event, process_event +from sentry.tasks.store import preprocess_event, process_event, save_event from sentry.testutils import PluginTestCase +from sentry.utils.dates import to_datetime class BasicPreprocessorPlugin(Plugin2): @@ -164,3 +169,28 @@ def test_process_event_unprocessed(self, mock_default_cache, mock_save_event): mock_save_event.delay.assert_called_once_with( cache_key='e:1', data=None, start_time=1, event_id=None ) + + @mock.patch.object(tsdb, 'incr') + def test_hash_discarded_raised(self, mock_incr): + project = self.create_project() + + data = { + 'project': project.id, + 'platform': 'NOTMATTLANG', + 'message': 'test', + 'event_id': uuid.uuid4().hex, + 'extra': { + 'foo': 'bar' + }, + } + + now = time() + mock_save = mock.Mock() + mock_save.side_effect = HashDiscarded + with mock.patch.object(EventManager, 'save', mock_save): + save_event(data=data, start_time=now) + mock_incr.assert_called_with( + tsdb.models.project_total_received_discarded, + project.id, + timestamp=to_datetime(now), + )