diff --git a/src/sentry/receivers/onboarding.py b/src/sentry/receivers/onboarding.py index c7b59070dd762d..6a5f7e3fd9d9c4 100644 --- a/src/sentry/receivers/onboarding.py +++ b/src/sentry/receivers/onboarding.py @@ -375,7 +375,6 @@ def record_first_cron_checkin(project, monitor_id, **kwargs): ) -@first_insight_span_received.connect(weak=False) def record_first_insight_span(project, module, **kwargs): flag = None if module == InsightModules.HTTP: @@ -410,6 +409,9 @@ def record_first_insight_span(project, module, **kwargs): ) +first_insight_span_received.connect(record_first_insight_span, weak=False) + + @member_invited.connect(weak=False) def record_member_invited(member, user, **kwargs): OrganizationOnboardingTask.objects.record( diff --git a/tests/sentry/event_manager/test_event_manager.py b/tests/sentry/event_manager/test_event_manager.py index d3df3af242b760..7f3929c60d70ce 100644 --- a/tests/sentry/event_manager/test_event_manager.py +++ b/tests/sentry/event_manager/test_event_manager.py @@ -1662,6 +1662,49 @@ def test_transaction_sampler_and_receive_mock_called( mock.call(ClustererNamespace.TRANSACTIONS, self.project, "wait") ] + def test_first_insight_span(self) -> None: + event_data = make_event( + transaction="test_transaction", + contexts={ + "trace": { + "parent_span_id": "bce14471e0e9654d", + "op": "foobar", + "trace_id": "a0fa8803753e40fd8124b21eeb2986b5", + "span_id": "bf5be759039ede9a", + } + }, + spans=[ + { + "trace_id": "a0fa8803753e40fd8124b21eeb2986b5", + "parent_span_id": "bf5be759039ede9a", + "span_id": "a" * 16, + "start_timestamp": 0, + "timestamp": 1, + "same_process_as_parent": True, + "op": "db.redis", + "description": "EXEC *", + "sentry_tags": { + "description": "EXEC *", + "category": "db", + "op": "db.redis", + "transaction": "/app/index", + }, + } + ], + timestamp="2019-06-14T14:01:40Z", + start_timestamp="2019-06-14T14:01:40Z", + type="transaction", + ) + + assert not self.project.flags.has_insights_db + + manager = EventManager(event_data) + manager.normalize() + manager.save(self.project.id) + + self.project.refresh_from_db() + assert self.project.flags.has_insights_db + def test_sdk(self) -> None: manager = EventManager(make_event(**{"sdk": {"name": "sentry-unity", "version": "1.0"}})) manager.normalize()