-
-
Notifications
You must be signed in to change notification settings - Fork 4.4k
feat(replays): Add Breadcrumb AI Summaries #93256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
❌ 12 Tests Failed:
View the top 3 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we link the relevant linear tickets in the description from https://linear.app/getsentry/project/replay-breadcrumb-summary-7897b9280afa/overview? (i know it says TODO rn)
this one is related:
| title | str | The main title of the user journey summary. | | ||
| summary | str | A concise summary featuring the highlights of the user's journey while using the application. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what's the difference between title and summary? do we need both?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Its a condensed summary. We could drop it if its not useful. I want to add more fields before we take away though (at least during the early periods while we're experimenting).
src/sentry/replays/endpoints/project_replay_summarize_breadcrumbs.py
Outdated
Show resolved
Hide resolved
src/sentry/replays/endpoints/project_replay_summarize_breadcrumbs.py
Outdated
Show resolved
Hide resolved
| ------------------------ | --------------- | --------------------------------------------------------------------------------------------- | | ||
| title | str | The main title of the user journey summary. | | ||
| summary | str | A concise summary featuring the highlights of the user's journey while using the application. | | ||
| time_ranges | list[TimeRange] | A list of TimeRange objects. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| time_ranges | list[TimeRange] | A list of TimeRange objects. | | |
| time_ranges | list[TimeRange] | An ordered list of TimeRange objects. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good, I don't know specifics for the event formats though. Do we have any docs for replay event/breadcrumb types?
"period_end": 1749584992.912, | ||
"period_title": "Second Replay Load Failure" | ||
} | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could add a second example to show the ordering and relationship of start/end (will all ranges be disjoint? no gaps in between?)
return response.content | ||
|
||
|
||
def get_request_data(iterator: Iterator[tuple[int, memoryview]]) -> list[str]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
def get_request_data(iterator: Iterator[tuple[int, memoryview]]) -> list[str]: | |
def get_request_data(segment_iterator: Iterator[tuple[int, memoryview]]) -> list[str]: |
src/sentry/replays/endpoints/project_replay_summarize_breadcrumbs.py
Outdated
Show resolved
Hide resolved
@aliu39 if you look at |
…mbs.py Co-authored-by: Andrew Liu <159852527+aliu39@users.noreply.github.com>
}, | ||
) | ||
if response.status_code != 200: | ||
raise ParseError("A non 200 HTTP status code was returned.") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could we make this error more detailed? when i was getting errors testing in devserver it was tough to figure out that it was coming from here, and what error was happening
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(it was a google cloud auth error but i didn't know until i looked at my seer terminal)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, think it'd be better to raise a ValueError
or Exception
so the code is 500 instead of 400, since it's not a user triggered error right? And the error message can contain the specific Seer response code
TODO