ApplicationInsightsRiderPlugin icon indicating copy to clipboard operation
ApplicationInsightsRiderPlugin copied to clipboard

Support grouping by request / operation

Open EnCey opened this issue 3 years ago • 6 comments

This is a tall order probably, but it would be great if there's a tree view that shows the relation of telemetry items based on OperationId and RequestId/ ParentId.

Maybe as an alternative to the main view, that is a flat list ordered by timestamp? This is a feature that would help a ton, because you see at a glance during which request an exception happened, and which other requests took place right before/after the exception.

image

EnCey avatar Mar 30 '21 08:03 EnCey

Hi,

Does all the request appear that way or it's a view when one is selected ?

Socolin avatar Mar 30 '21 13:03 Socolin

My original screenshot is from portal.azure.com, where all telemetry items that belong to a session are rendered in a tree-view. Each RequestTelemetry item becomes a parent node, with all telemetry items that belong to it as child nodes (recursively, if there are child-requests).

The VisualStudio extension only shows the telemetry items that belong to a request when a request is selected (no tree view): image

It also has this filter action, to only show telemetry items that belong to the selected request (which filters the main view) image

It's probably best to only show a hierarchical view for selected items. It might be confusing or hard to use if all telemetry items are always displayed in a hierarchical fashion, because new items would not be at the top of the list but rather somewhere nested under a potentially long running request.

Would be cool if the nested telemetry items would be displayed in a tree-ish fashion, i.e. if there are child-requests, then their telemetry items would be nested under them, so it's easy to skip them when looking for something specific. But, a flat list of nested telemetry items (like in the VS extension) would already be very helpful.

The key use case here is to see at a glance all telemetry items of a request, to better understand why an error occurred. The advantage of this view is that only telemetry items that belong to the request are shown.

EnCey avatar Mar 31 '21 08:03 EnCey

I don't know if you see that but you can already filter by operationId by clicking on it on a Request, it's not a hiearchical view but it may help you until I add more stuff. I don't know when I'll find time for this, I was planning in adding more filtering option first.

Socolin avatar Mar 31 '21 12:03 Socolin

Oh, I didn't know that! Via the Raw view, I get the ai.operation.parentId as well, so you can walk a hierarchy upward like this too in a way.

And no pressure, I just wanted to leave the feature suggestion here, you're already doing us all a great service by providing this plugin :)

EnCey avatar Apr 02 '21 12:04 EnCey

I am using extension on daily basis and having tree-view with duration timeline as it is in portal would be awesome! However, it is possible at all to craft such UI in Rider extension?

darthkurak avatar Sep 02 '21 09:09 darthkurak

I am using extension on daily basis and having tree-view with duration timeline as it is in portal would be awesome! However, it is possible at all to craft such UI in Rider extension?

The UI is done with the UI stuff in java (Swing I think) + some custom component from jetbrains. So we can do almost anything I think.

It's really a pain to modify the UI, I'm not a UI or UX designer and java is not my main language anymore, so the UI of this extensions is not my favorite part :p (I think I would need to rewrite a big part, code starts to get messy). So if you can give me some drawing of what you are expected for the view and more details about the grouping (Should the telemetry be grouped by sub operationId too) It would help me a lot

Socolin avatar Sep 02 '21 14:09 Socolin