Comments (2)
Thanks a lot @ivberg! I think we'll likely go forward with your (2) above, since we have an abstraction layer in our WPA plugin already that reads MsQuic ETW events and converts them to a general object model that we use in all our charts/graphs. We just need to read LTTng events and convert to the same object model.
We'll likely be in contact if we need anything else, but for now I think this all answers my question. Thanks!
from microsoft-performance-tools-linux-android.
Hey @nibanks. Nice to see you are looking at using these parsing libs and library!
We do publish various LTTng plugins on NuGet.
https://www.nuget.org/packages?q=Microsoft.Performance.Toolkit.Plugins.LTTng
Currently this is how these NuGet packages map to code:
- CtfPlayback\CtfPlayback.csproj - Microsoft.Performance.Toolkit.Plugins.LTTngCtfPlayback
- Plays back (reads) Common Trace Format (CTF) that LTTng uses for trace, using Antlr4 runtime
- LTTngCds\LTTngCds.csproj - Microsoft.Performance.Toolkit.Plugins.LTTngPlugin
- Uses CtfPlayback but provides higher level API and introduces LTTng specific things on top of CTF necessary to fully read LTTng traces
- LTTngDataExtensions\LTTngDataExtensions.csproj - Microsoft.Performance.Toolkit.Plugins.LTTngDataExtensions
- Presents various datasources and views (as tables) either programmatically for things that consume the ToolKit SDK. WPA GUI happens to be one of the tools that supports this plugin addin
- LTTngDriver\LTTngDriver.csproj - Microsoft.Performance.Toolkit.Plugins.LTTngDriver
- A simple test program that consumes above and dumps to the command line
Here are some options
- If MsQuic logs as LTTng on Linux which it sounds like it does. You should automatically get support for displaying MsQuic events in the GenericEvents table and data source. You could add support to LTTngDataExtensions if you wanted to add a specific table or support in this repo.
- If you wanted to instead consume these libs and add support for say reading MsQuic events from LTTng in your own code/repo, then you would use the LTTngCds package. Then you would add support similar to LTTngDataExtensions in order to present/display the data.
P.S. The MsQuic data is already like present in the GenericEvent datasource and can be queried like so:
tableData.QueryOutput<ProcessedEventData<LTTngGenericEvent>>(
DataOutputPath.ForSource(LTTngConstants.SourceId, LTTngGenericEventDataCooker.Identifier, nameof(LTTngGenericEventDataCooker.Events)))
Both option 1 and 2 would give the same result - it's just where you might want the MsQuic specific parsing logic and views to live code-wise.
Hope that helps but LMK if you have questions
from microsoft-performance-tools-linux-android.
Related Issues (20)
- LTTngDataExtensions unable to process traces from NET6.0+ project
- Lack of LTTngCds implementation? HOT 1
- Loading perf artifact is not well documented, or not flexible HOT 3
- WPA sometimes fails to load perf data HOT 3
- perf artifact recorded without -a option failed to be loaded HOT 1
- error while load trace with perf HOT 2
- WPA cannot find this plugin even SET WPA_ADDITIONAL_SEARCH_DIRECTORIES HOT 2
- [Feature Request] Add resolved callstacks to Execution Events HOT 4
- [Feature] Perfetto - Support Android 12 CPU Scheduling CallStacks
- [Feature] Perfetto - GPU Counters tables HOT 1
- Linux "perf" traces give a confusing error if the trace is not named "perf.data.txt" HOT 1
- Linux "perf" traces should allow multiple file names, not just "perf.data.txt" HOT 2
- LTTng traces do not show the thread id
- Zooming in the LTTng graph view does not filter the events in the table view
- WPA crashes on data from latest lttng HOT 22
- No Graphs visible HOT 10
- [Feature request] Perfetto - Display browser tab title alongside renderer view HOT 1
- "Open Unified" button not showing HOT 3
- hello HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from microsoft-performance-tools-linux-android.