Skip to content

Public API for creating DiagnosticsClient from IPC endpoint #3631

Open
@mstefarov

Description

@mstefarov

Background and Motivation

I build custom diagnostic tooling for my company using 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions