getsentry / sentry

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

Differentiate between custom-instrumented values and SDK-auto-instrumented ones in UI #64125

Open cstavitsky opened 7 months ago

cstavitsky commented 7 months ago

Problem Statement

When debugging problems with Sentry, it would be helpful to know whether a value, for example a tag or a transaction, is auto-instrumented or custom-instrumented. It would ideally apply across errors and transactions alike.

If I know something is custom-instrumented, I'd immediately go to my codebase to see where developers created or modified it. But if something is auto-instrumented, I'd spend more time in the docs.

I understand that this could be tricky. Where do you draw the line between auto vs. custom instrumented? For example, if it's a custom instrumented transaction, but I modify fields in the event before it's sent, is that considered 'auto' or 'custom'? 🤷

Solution Brainstorm

Mark auto-instrumented values as auto-instrumented in the UI somehow, so that the user can tell whether someone on their team deliberately caused the span/tag/etc to be sent in, or whether Sentry SDK automatically instrumented it.

When I say 'the UI', I mean anywhere the custom span/tag/etc shows up, for example in an Issue, Transaction, or Discover.

Product Area

Other

getsantry[bot] commented 7 months ago

Assigning to @getsentry/support for routing ⏲️

getsantry[bot] commented 7 months ago

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

getsantry[bot] commented 7 months ago

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

scttcper commented 7 months ago

Yeah that is really hard because it might also depend on which sdk / framework. Adding to the backlog

cstavitsky commented 1 month ago

This seems to have been done for tags at least:

Image

(FWIW I still think having the ask here for identifying custom spans is useful)

scttcper commented 1 month ago

We have a list of known tags now but that doesn't stop someone from overriding the values with their own values. We still wouldn't know if it was automatic or set by the user