From eb12c0d299ff57d722cf8732d1bbe538f16b572d Mon Sep 17 00:00:00 2001 From: Rohan Agarwal Date: Thu, 22 May 2025 13:08:08 -0700 Subject: [PATCH 1/2] Fix log format --- src/sentry/seer/autofix.py | 14 ++++++++++---- tests/sentry/seer/test_autofix.py | 5 +++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/sentry/seer/autofix.py b/src/sentry/seer/autofix.py index 20172106b15376..121249f522f66f 100644 --- a/src/sentry/seer/autofix.py +++ b/src/sentry/seer/autofix.py @@ -35,10 +35,14 @@ TIMEOUT_SECONDS = 60 * 30 # 30 minutes -def _get_logs_for_event(event: Event | GroupEvent, project: Project) -> list[dict] | None: +def _get_logs_for_event( + event: Event | GroupEvent, project: Project +) -> dict[str, list[dict]] | None: trace_id = event.trace_id if not trace_id: - return None + return { + "logs": [], + } projects_qs = Project.objects.filter( organization=project.organization, status=ObjectStatus.ACTIVE @@ -136,7 +140,9 @@ def _get_logs_for_event(event: Event | GroupEvent, project: Project) -> list[dic prev_log["consecutive_count"] = count merged_logs.append(prev_log) - return merged_logs + return { + "logs": merged_logs, + } def build_spans_tree(spans_data: list[dict]) -> list[dict]: @@ -782,7 +788,7 @@ def _call_autofix( serialized_event: dict[str, Any], profile: dict[str, Any] | None, trace_tree: dict[str, Any] | None, - logs: list[dict] | None, + logs: dict[str, list[dict]] | None, instruction: str | None = None, timeout_secs: int = TIMEOUT_SECONDS, pr_to_comment_on_url: str | None = None, diff --git a/tests/sentry/seer/test_autofix.py b/tests/sentry/seer/test_autofix.py index 4fdb003a9eca00..191ddbcd4ae9ce 100644 --- a/tests/sentry/seer/test_autofix.py +++ b/tests/sentry/seer/test_autofix.py @@ -1638,8 +1638,9 @@ def test_merging_consecutive_logs(self, mock_query): project = self.project # Patch project.organization to avoid DB hits project.organization = self.organization - merged = _get_logs_for_event(event, project) - assert merged is not None + result = _get_logs_for_event(event, project) + assert result is not None + merged = result["logs"] # The first two "foo" logs should be merged (consecutive), the last "foo" is not consecutive foo_merged = [ log for log in merged if log["message"] == "foo" and log.get("consecutive_count") == 2 From 14d924790b29b53d8a69175d98249718a70ac008 Mon Sep 17 00:00:00 2001 From: Rohan Agarwal Date: Thu, 22 May 2025 13:12:06 -0700 Subject: [PATCH 2/2] Fix typing --- tests/sentry/seer/test_autofix.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/sentry/seer/test_autofix.py b/tests/sentry/seer/test_autofix.py index 191ddbcd4ae9ce..d6d710c4f60677 100644 --- a/tests/sentry/seer/test_autofix.py +++ b/tests/sentry/seer/test_autofix.py @@ -1336,7 +1336,7 @@ def test_call_autofix(self, mock_sign, mock_post): serialized_event = {"event_id": "test-event"} profile = {"profile_data": "test"} trace_tree = {"trace_data": "test"} - logs = [{"message": "test-log"}] + logs = {"logs": [{"message": "test-log"}]} instruction = "Test instruction" # Call the function with keyword arguments