dotnet / dotnet/diagnostics

Public API for creating DiagnosticsClient from IPC endpoint

Open
#3,631 3 comments 4 reactions 1 assignee Claimed by @tommcdon View on GitHub
documentation enhancement Microsoft.Diagnostics.NETCore.Client
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.