dotnet / diagnostics

This repository contains the source code for various .NET Core runtime diagnostic tools and documents.
MIT License
1.18k stars 354 forks source link

[feature request] non-Windows lightweight event viewer #489

Open josalem opened 5 years ago

josalem commented 5 years ago

Given a nettrace trace, I want to be able to view the event stats and payloads on a non-Windows platform. We currently have conversions for nettrace to formats like SpeedScope which enable the viewing of CPU sampling and stacks, but these lack the ability to investigate events in the trace.

I imagine that this hypothetical tool would be capable of opening a nettrace file and then filtering/viewing the events. This tool would preferably be something terminal based so that it would work seamlessly over remote connections. I am imagining a very simply 2 pane UI with basic interactions a la htop.

All the building blocks for this tool should already exist as byproducts of writing the other diagnostics tools. The majority of the investment would be in the efficient parsing of the trace file and rendering to the terminal. The System.CommandLine.Rendering APIs are still fairly nascent, but usable. There are alternatives like Miguel de Icaza's GUI.cs library which could also be used to expedite the UI work. If done correctly, the tool will be usable on all platforms.

This tool should be lightweight and focused solely on the viewing and filtering of events in an already collected trace.

elinor-fung commented 5 years ago

Even having an easy non-interactive way to get at raw events on non-Windows would be useful - just a built-in way to dump all the events from a .nettrace into a text file (XML, CSV, JSON?).