getsentry / sentry

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

[Discover] Control which tags appear in Tag Summary #51798

Open narsaynorath opened 1 year ago

narsaynorath commented 1 year ago

Problem Statement

To close #44978 we added a feature to expand the tags and show more. There are some user experience gaps where the tags do not appear in an order that is predictable to users, and users would like to see a specific set of tags.

Solution Brainstorm

A proposed idea is to allow users to pin specific tags, but this requires more workflow investigation. Since Discover queries can change the subset of events/transactions, and thus change the tags that are relevant, we'd have to find a way to handle selected tags that are not applicable in the current query.

An option is to always show what's pinned, but if there are no results then the segments will show an empty state if there is no data. We also need to consider if its a priority to have these tags persist across saved queries, or if saved queries should have their own pinned tags.

Product Area

Discover

┆Issue is synchronized with this Jira Improvement by Unito

realkosty commented 1 year ago

Summarizing use case and proposed solutions from @DamGouz, who is the original requester for this feature:

Use case: Find Issue root cause by ad-hoc correlating errors to a combination of tag values in Discover, progressively narrowing down by adding tags to filter. A large number of custom tags is used ~ 300-500. Individual teams are interested in certain types of tags. Application type: video game.

Workarounds that have been suggested to customer and why they are inadequate:

"Show more" button (https://github.com/getsentry/sentry/issues/44978) - with 300-500 custom tags it's tedious to repeatedly click the button. Since it's a frequent workflow for the customer this level of friction is not acceptable.

Add columns for tags of interest and save query - doesn't work because adding columns for 3 tags each of which takes 2 values (for example) produces 8 rows for all possible combinations of those tags values and is not equivalent to Tag Summary.

Solutions proposed by requester:

  • Bare Minimum: Ability to search tags (with autocomplete) which temporarily places them at the top of the list of tags displayed and adds them to the URL query string so that it can be bookmarked or shared.
  • Good solution: Ability to permanently pin an arbitrary number of tags. Scoped to (user + project). 10 tags shown initially as right now, Pinned tags come before all other tags. If more than 10 tags pinned can use "Show more" button.
  • Ideal solution: Saved Tags. Allow the user to edit the set of currently displayed tags by searching/adding/removing tags and allow them to save a set of tags. Those Saved Tag sets are independent from Saved Queries, but work similar to them: they are shared between users, can be set as default, etc.

@quickstark and myself believe that a solution that might be most useful for the broadest range of customers (perhaps less advanced than requester) would be Suspect Tags for Errors (which may or may not be part of Discover) defined as follows:

Automatically surfacing tags with most “interesting” or “unusual” distributions. e.g. as defined by how different the distribution is from baseline distribution (across all events, before Discover filters are applied)

However according to requester this solution wouldn't work for them as different teams have different criteria for choosing tags they are interested in and want to have precise control over that instead of relying on some smart algorithm which may end up picking tags they don't care about.

realkosty commented 1 year ago

Updated linked Jira ticket with internal discussion notes

brentc commented 1 year ago

Just seeing this now after some time off in July. Thanks for the additional context, solution ideas, and commentary. I'll check with the team and discuss the proposed solutions.

realkosty commented 1 year ago

Here is my proposal. I think this should address most use cases and be relatively manageable in terms of implementation.

getsantry[bot] commented 1 year ago

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

DamGouz commented 1 year ago

After speaking with the team, we believe that this proposal will fit all our needs. Thank you for taking the time to flesh it out. Please keep us up to date with the progress of this request.

brentc commented 1 year ago

Thanks for the summary @realkosty and feedback @DamGouz. We still haven't had a chance to scope/validate the proposed improvement due to a ton of competing priorities for our team right now, but this hasn't fallen off my radar. We'll be reviewing in the next couple of weeks and I'll report back our findings then.

realkosty commented 1 year ago

Thank you @brentc. In the meantime I've expanded "Bookmark URL" section with more details and edge cases but high-level approach is the same.

Or maybe you guys can come up with some other, more elegant solution to [sharing] and [bookmarking] use cases.

brentc commented 1 year ago

Still on our radar, but have had to push our discussions about it a few more weeks out due to P0 priorities and team capacity.

irodrigues-git commented 1 year ago

Thanks for staying on top of this @brentc and for the updates. Looking forward to some updates.

brentc commented 1 year ago

We're putting this issue in the backlog for now as the team is fully tasked with a number of high priority items. We'll continue to review this issue against all our priorities and will update the ticket when we have a plan to come back to it.

realkosty commented 1 year ago

From a different customer in gaming space (not asking directly for this feature but similar needs at high level):

we mainly are looking at having the ability to group for an specific tag and then we check the graphs to see easily if an specific group is trending differently, in this case is useful when digging if some errors are more likely to happen in some specific platforms, though we could use any tag like to differentiate between pro/base players, GPU vendors, versions, scene, etc