Skip to content

Commit fe2c37c

Browse files
authored
chore(similarity): Add seer failure reason to backfill log (#74735)
Add the reason seer post request failed to the similarity seer failure backfill log
1 parent 99b7210 commit fe2c37c

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

src/sentry/seer/similarity/grouping_records.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ class CreateGroupingRecordsRequest(TypedDict):
3636
class BulkCreateGroupingRecordsResponse(TypedDict):
3737
success: bool
3838
groups_with_neighbor: NotRequired[dict[str, RawSeerSimilarIssueData]]
39+
reason: NotRequired[str | None]
3940

4041

4142
seer_grouping_connection_pool = connection_from_url(
@@ -69,15 +70,15 @@ def post_bulk_grouping_records(
6970
except ReadTimeoutError:
7071
extra.update({"reason": "ReadTimeoutError", "timeout": POST_BULK_GROUPING_RECORDS_TIMEOUT})
7172
logger.info("seer.post_bulk_grouping_records.failure", extra=extra)
72-
return {"success": False}
73+
return {"success": False, "reason": "ReadTimeoutError"}
7374

7475
if response.status >= 200 and response.status < 300:
7576
logger.info("seer.post_bulk_grouping_records.success", extra=extra)
7677
return json.loads(response.data.decode("utf-8"))
7778
else:
7879
extra.update({"reason": response.reason})
7980
logger.info("seer.post_bulk_grouping_records.failure", extra=extra)
80-
return {"success": False}
81+
return {"success": False, "reason": response.reason}
8182

8283

8384
def delete_project_grouping_records(

src/sentry/tasks/embeddings_grouping/backfill_seer_grouping_records_for_project.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ def backfill_seer_grouping_records_for_project(
199199
extra={
200200
"current_project_id": current_project_id,
201201
"last_processed_project_index": last_processed_project_index,
202+
"reason": seer_response.get("reason"),
202203
},
203204
)
204205
sentry_sdk.capture_exception(Exception("Seer failed during backfill"))

tests/sentry/seer/similarity/test_grouping_records.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def test_post_bulk_grouping_records_success(mock_seer_request: MagicMock, mock_l
6868
@mock.patch("sentry.seer.similarity.grouping_records.logger")
6969
@mock.patch("sentry.seer.similarity.grouping_records.seer_grouping_connection_pool.urlopen")
7070
def test_post_bulk_grouping_records_timeout(mock_seer_request: MagicMock, mock_logger: MagicMock):
71-
expected_return_value = {"success": False}
71+
expected_return_value = {"success": False, "reason": "ReadTimeoutError"}
7272
mock_seer_request.side_effect = ReadTimeoutError(
7373
DUMMY_POOL, settings.SEER_AUTOFIX_URL, "read timed out"
7474
)
@@ -91,7 +91,7 @@ def test_post_bulk_grouping_records_timeout(mock_seer_request: MagicMock, mock_l
9191
@mock.patch("sentry.seer.similarity.grouping_records.logger")
9292
@mock.patch("sentry.seer.similarity.grouping_records.seer_grouping_connection_pool.urlopen")
9393
def test_post_bulk_grouping_records_failure(mock_seer_request: MagicMock, mock_logger: MagicMock):
94-
expected_return_value = {"success": False}
94+
expected_return_value = {"success": False, "reason": "INTERNAL SERVER ERROR"}
9595
mock_seer_request.return_value = HTTPResponse(
9696
b"<!doctype html>\n<html lang=en>\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n",
9797
reason="INTERNAL SERVER ERROR",

0 commit comments

Comments
 (0)