🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › core › diagnostics › diagnostic-port
Diagnostic port - .NET | Microsoft Learn
November 22, 2025 - DOTNET_DiagnosticPorts=/foo/tool1.socket;foo/tool2.socket - (Linux and macOS) The runtime connects to both the Unix Domain Sockets /foo/tool1.socket and /foo/tool2.socket.
🌐
GitHub
github.com › dotnet › diagnostics › blob › main › documentation › design-docs › ipc-protocol.md
diagnostics/documentation/design-docs/ipc-protocol.md at main · dotnet/diagnostics
This spec describes the IPC Protocol to be used for communicating with the dotnet core runtime's Diagnostics Server from an external client over a platform-specific transport, e.g., Unix Domain Sockets.
Author   dotnet
🌐
Jeppe Andersen Blog
nocture.dk › posts › .net core diagnostics tools and containers
.NET Core Diagnostics Tools and Containers | Jeppe Andersen Blog
June 17, 2020 - Maybe obvious from the file name, dotnet-diagnostic-1-213386-socket is the socket (otherwise, the s in the mode srw indicates it).
🌐
GitHub
github.com › dotnet › runtime › issues › 13194
dotnet-diagnostic sockets lingering after crash · Issue #13194 · dotnet/runtime
July 26, 2019 - The runtime is leaving these diagnostic sockets with names like dotnet-diagnostic-28148-23379390-socket under /tmp if the process exits with an unhandled exception. If the process is repeatedly crashing in this way then these sockets pile up, using more and more memory (/tmp is mounted in RAM on my system), eventually overwhelming the system.
Author   dotnet
🌐
Wordpress
lowleveldesign.wordpress.com › 2021 › 01 › 20 › snooping-on-net-eventpipes
Snooping on .NET EventPipes – Debug notes by Sebastian Solnica
December 23, 2023 - The endpoint name begins with a ‘dotnet-diagnostic-’ string and then contains the process ID to make it unique. The name also includes a timestamp and a ‘-socket’ suffix on Unix. Valid example names are dotnet-diagnostic-2675 on Windows and dotnet-diagnostic-2675-2489049-socket on Unix.
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › core › diagnostics › dotnet-counters
dotnet-counters diagnostic tool - .NET CLI - .NET | Microsoft Learn
The following command makes dotnet-counters create a diagnostics socket named myport.sock and wait for a connection.
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › core › diagnostics › dotnet-trace
dotnet-trace diagnostic tool - .NET CLI - .NET | Microsoft Learn
March 20, 2026 - The following command makes dotnet-trace create a diagnostics socket named myport.sock and wait for a connection.
🌐
Debug notes
lowleveldesign.wordpress.com › tag › net
.net – Debug notes
This protocol is used to transfer diagnostic data between the .NET runtime and a diagnostic client, such as, for example, dotnet-trace. When a .NET process starts, the runtime creates the diagnostic endpoint. On Windows, the endpoint is a named pipe, and on Unix, it’s a Unix domain socket created in the temp files folder.
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › core › diagnostics › dotnet-monitor
dotnet-monitor diagnostic tool - .NET | Microsoft Learn
The fully qualified path and filename of the diagnostic port to which runtime instances can connect. Specifying this option places dotnet-monitor into 'listen' mode. When not specified, dotnet-monitor is in 'connect' mode. On Windows, this must be a valid named pipe name. On Linux and macOS, this must be a valid Unix Domain Socket ...
Find elsewhere
🌐
Medium
chnasarre.medium.com › digging-into-the-clr-diagnostics-ipc-protocol-in-c-4d4cbe57826c
Digging into the CLR Diagnostics IPC Protocol in C# | by Christophe Nasarre | Medium
July 28, 2022 - As I explained during a DotNext conference session, the .NET CLI tools such as dotnet-trace, dotnet-counter or dotnet-dump are communicating with the CLR thanks to Named Pipe on Windows and Domain Socket on Linux. Within the CLR, a diagnostic server thread is responsible for answering requests.
🌐
Poppastring
poppastring.com › blog › configuring-the-diagnostics-port-for-dotnet-monitor
Configuring the Diagnostics Port for dotnet monitor
May 12, 2022 - The diagnostic port is supported across multiple OS’s by using Named Pipes on Windows and Unix Domain Sockets on Linux. The runtime will create diagnostics ports in a well defined location on Windows and Linux (and macOS for that matter) in the following format: Windows Named Pipe: \\.\pipe\dotnet-diagnostic-{pid}
🌐
Datadog
docs.datadoghq.com › tracing › troubleshooting › dotnet_diagnostic_tool
Using the .NET diagnostic tool for troubleshooting
Use the dd-dotnet diagnostic tool to troubleshoot .NET tracing setup issues and Agent connectivity problems.
🌐
GitHub
github.com › dotnet › dotnet-monitor › blob › main › documentation › configuration › diagnostic-port-configuration.md
dotnet-monitor/documentation/configuration/diagnostic-port-configuration.md at main · dotnet/dotnet-monitor
dotnet monitor communicates via .NET processes through their diagnostic port. In the default configuration, .NET processes listen on a platform native transport (named pipes on Windows/Unix-domain sockets on *nix) in a well-known location.
Author   dotnet
🌐
Go Packages
pkg.go.dev › github.com › open-telemetry › opentelemetry-collector-contrib › receiver › dotnetdiagnosticsreceiver
dotnetdiagnosticsreceiver package - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dotnetdiagnosticsreceiver - Go Packages
April 27, 2023 - At startup, this recevier looks for a file in TMPDIR (or /tmp if not set) corresponding to the given PID and a naming convention. If found, a Unix domain socket connection is opened, using the file as the endpoint, and a request is made to the dotnet process for metrics, with the given (in the config) collection interval and counters.
🌐
Medium
chnasarre.medium.com › net-diagnostic-ipc-protocol-the-c-way-ea5b8024d8d0
.NET Diagnostic IPC protocol: the C++ way | by Christophe Nasarre | Medium
September 18, 2022 - On Linux, you connect to a domain socket named “{$TMPDIR}/dotnet-diagnostic-{%d:PID}-{%llu:disambiguation key}-socket”. For Windows, a named pipe called \\.\pipe\dotnet-diagnostic-{%d:PID} needs to be accessed.
🌐
GitHub
github.com › dotnet › diagnostics › issues › 2426
dotnet-trace/dotnet-counters leaves Unix Domain Socket file on ctrl-c, preventing restart when using --diagnostic-port. · Issue #2426 · dotnet/diagnostics
Starting up dotnet-trace/dotnet-counters using --diagnostic-port argument in reverse connect mode, will create the Unix Domain Socket file based on --diagnostic-port argument. If process is then closed using ctrl+c on for example MacOS, ...
Author   dotnet
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › core › diagnostics › diagnostics-in-containers
Collect diagnostics in Linux containers - .NET | Microsoft Learn
The tools need access to the diagnostic port Unix Domain Socket which the .NET runtime writes to the /tmp directory, so the /tmp directory must be shared between the target and sidecar container via a volume mount. This could be done, for example, by having the containers share a common volume or a Kubernetes emptyDir volume.
🌐
GitHub
github.com › dotnet › docs › blob › main › docs › core › diagnostics › diagnostic-port.md
docs/docs/core/diagnostics/diagnostic-port.md at main · dotnet/docs
April 11, 2022 - DOTNET_DiagnosticPorts=/foo/tool1.socket;foo/tool2.socket - (Linux and macOS) The runtime connects to both the Unix Domain Sockets /foo/tool1.socket and /foo/tool2.socket.
Author   dotnet
🌐
Microsoft
devblogs.microsoft.com › dev blogs › .net blog › introducing diagnostics improvements in .net core 3.0
Introducing diagnostics improvements in .NET Core 3.0 - .NET Blog
May 8, 2019 - Traditionally, the .NET Framework (and frameworks like ASP.NET) emitted diagnostic traces about its internals via Event Tracing for Windows (ETW). In .NET Core, these trace were written to ETW on Windows and LTTng on Linux. In 3.0-preview5, every .NET Core application opens a duplex pipe named EventPipe (Unix domain socket on *nix/named pipe on Windows) over which it can emit events. While we’re still working on the controller protocol, dotnet-trace implements the preview version of this protocol.
🌐
GitHub
gist.github.com › maskati › 0d9d678a075e4c0aa3d9bdf2ec12f5c7
Diagnosing .NET applications remotely · GitHub
Currently only dotnet-trace and dotnet-counters support the --diagnostic-port parameter. In order to perform remote diagnostics, make sure you mount the default diagnostic port directory /tmp as a shared volume between your application and the container from which you are performing diagnostics. First you need to determine the default diagnostic port socket your application is listening on.