Socolin / ApplicationInsightsRiderPlugin

Rider plugin to see, instantly, in a nice way Application Insights logs.
MIT License
30 stars 2 forks source link

Support grouping by request / operation #5

Open EnCey opened 3 years ago

EnCey commented 3 years ago

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

Socolin commented 3 years ago

Hi,

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

EnCey commented 3 years ago

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.

Socolin commented 3 years ago

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.

EnCey commented 3 years ago

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 :)

darthkurak commented 3 years ago

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?

Socolin commented 3 years ago

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