Public API for creating DiagnosticsClient from IPC endpoint
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 404
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 35
Description
## Background and Motivation
I build custom diagnostic tooling for my company using [TraceEvent](https://github.com/microsoft/perfview/tree/main/src/TraceEvent) library. Currently our tools can show either a "live" view of a process on the same PC (using TraceEventSession) or open previously-recorded ETL/nettrace files.
I would love to be able to provide a live view for mobile apps as well by connecting to dsrouter. The Microsoft.Diagnostics.NETCore.Client package is very promising, but unfortunately all APIs related to IPC are marked "internal".
## Proposed Feature
Expose APIs for creating a DiagnosticsClient from IPC endpoint. The minimal API surface is probably `new DiagnosticsClient(string diagnosticPort)`, but something more flexible — like exposing IpcEndpoint and its implementations — would also be welcome.
## Usage Examples
Creating custom tools that interact with dsrouter, such as live monitoring for processes that run on Android/macOS/iOS. For a specific example, we use tools to diagnose performance problems / network issues / authentication issues in mobile apps, in interactive scenarios where stepping through the whole app with a debugger is not practical.
If public API is not available in the Microsoft.Diagnostics.NETCore.Client package, I could try pulling the whole dotnet/diagnostics repo as a submodule, and including its source code directly into our diagnostic tools. That seems like a much messier, harder-to-maintain option.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.