Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 7 additions & 40 deletions src/sentry/seer/issue_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import logging
from datetime import timedelta
from functools import lru_cache
from typing import Any

import orjson
Expand Down Expand Up @@ -175,23 +174,21 @@ def _call_seer(
return SummarizeIssueResponse.validate(response.json())


@lru_cache(maxsize=1)
def create_fixability_connection_pool():
return connection_from_url(
settings.SEER_SEVERITY_URL,
timeout=settings.SEER_FIXABILITY_TIMEOUT,
)
fixability_connection_pool = connection_from_url(
settings.SEER_SEVERITY_URL,
timeout=settings.SEER_FIXABILITY_TIMEOUT,
)


def _generate_fixability_score_via_conn_pool(group: Group):
def _generate_fixability_score(group: Group):
payload = {
"group_id": group.id,
"organization_slug": group.organization.slug,
"organization_id": group.organization.id,
"project_id": group.project.id,
}
response = make_signed_seer_api_request(
create_fixability_connection_pool(),
fixability_connection_pool,
"/v1/automation/summarize/fixability",
body=orjson.dumps(payload, option=orjson.OPT_NON_STR_KEYS),
timeout=settings.SEER_FIXABILITY_TIMEOUT,
Expand All @@ -202,33 +199,6 @@ def _generate_fixability_score_via_conn_pool(group: Group):
return SummarizeIssueResponse.validate(response_data)


def _generate_fixability_score(group: Group):
path = "/v1/automation/summarize/fixability"
body = orjson.dumps(
{
"group_id": group.id,
"organization_slug": group.organization.slug,
"organization_id": group.organization.id,
"project_id": group.project.id,
},
option=orjson.OPT_NON_STR_KEYS,
)

response = requests.post(
f"{settings.SEER_SEVERITY_URL}{path}",
data=body,
headers={
"content-type": "application/json;charset=utf-8",
**sign_with_seer_secret(body),
},
timeout=settings.SEER_FIXABILITY_TIMEOUT,
)

response.raise_for_status()

return SummarizeIssueResponse.validate(response.json())


def _get_trace_connected_issues(event: GroupEvent) -> list[Group]:
try:
trace_id = event.trace_id
Expand Down Expand Up @@ -324,10 +294,7 @@ def _run_automation(
)

with sentry_sdk.start_span(op="ai_summary.generate_fixability_score"):
if group.organization.id == 1: # TODO(kddubey): rm temp guard
issue_summary = _generate_fixability_score_via_conn_pool(group)
else:
issue_summary = _generate_fixability_score(group)
issue_summary = _generate_fixability_score(group)

if not issue_summary.scores:
raise ValueError("Issue summary scores is None or empty.")
Expand Down
Loading