-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
service: Add support for ETW logging #361
Conversation
Event ids are apparently only for manifest-based logging, not tracelogging. Activity ids are needed to match up start/stop events. This enables PerfView to calculate the call duration. ETW Viewer's event matching doesn't work with this (yet) because it relies on event id matching.
Can multiple start events be emitted before the corresponding stop is emitted? If so, there should be a way to annotate the event as recursive, and you can see if that makes a difference. You can look at the TransactionStart event on the PF event source for an example of this. I'm not sure if a similar concept exists or not in the Python library you're using. The pairing logic in the viewer has always been a little finicky. I thought there were three different options for trying to pair up event start/stop data. Do none of them work? I guess if the lack of recursive option is causing the events to get dropped, it would probably throw off all of the pairing algorithms. You could also generate a unique ID that is included with the output of the start/stop event and then use that unique ID to pair start/stop events. That requires hard coding knowledge of that pairing for that event source in ETW Viewer so it's kind of a pain. We could probably generalize the pattern if we find it useful. That might also incur some boxing overhead when logging unless you also provide a matching override of WriteEvent in the event source. |
I filed an issue about this: microsoft/tracelogging#58 |
What does this Pull Request accomplish?
Add support for ETW logging using Microsoft's
traceloggingdynamic
package.Notes:
Why should this Pull Request be merged?
As a developer, I want better visibility into MeasurementLink measurement execution time
What testing has been done?
Manually tested with PerfView and NI's internal ETW viewer.