getsentry / sentry

Developer-first error tracking and performance monitoring
https://sentry.io
Other
38.95k stars 4.18k forks source link

Enable .NET platforms to have stack trace links for System frames #58460

Closed brianthi closed 9 months ago

brianthi commented 1 year ago

We've recently updated stack trace links to use source_link for .NET platforms when we couldn't derive our own stack trace link using a source code integration. This was done for only in-app stack frames, similar to how all other platforms currently behave. However, source_link also provides links to open source repositories for system frames which could be valuable for customers to reference from Sentry as well.

AC:

mattjohnsonpint commented 1 year ago

I thought this was done already:

No?

bruno-garcia commented 1 year ago

Thanks for sharing that context @mattjohnsonpint

This issue is specifically to show the open on GitHub link in the Sentry UI for frames that are not inApp. That's a follow up from the recent work from @isabellaenriquez adding this link for inApp frames: https://github.com/getsentry/sentry/pull/55407

The PRs you linked were the base we needed to get this UI work done (the URL is available on the frames, inApp or not).

getsantry[bot] commented 11 months ago

Routing to @getsentry/product-owners-issues for triage ⏲️

bruno-garcia commented 10 months ago

Here's some data on value for linking to source on system frames: https://twitter.com/terrajobst/status/1732533578905632815?s=12&t=uJlRYGhev6-GU2e4iAXVUg

image

bruno-garcia commented 9 months ago

Summary of a chat with @NisanthanNanthakumar

sourceLinks will likely be for non-inapp frames

Right, most .NET frames have a link because the framework itself, and popular libraries, like the Sentry SDK, use this feature

inapp frames will generally not have sourceLink values

right, generally, but they can have, just less common as it requires more work on the user to set up. But they might have GitHub integration hooked up, so we’d show links based on the standard Sentry way

we want to render the stacktrace link for non-inapp frames only if they have the sourceLink

I’d say conceptually we should always render it. It just happens that we can cheaply do that when source_link exists on the event itself, so lets do that one now only. If we could render for other system libraries (npm/whatever) I think it would be pretty awesome but I understand we don’t have a cheap way to do that right now.

for non-inapp frames without sourceLink, we are will not fetch from Github/Gitlab.

That’s fair since we can’t really know where on GitHub the code lives right now, right? source_link works by the user defining the repo info on the code level and making that available to Sentry by uploading debug symbols. So far that’s .NET specific tech.