You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Linux |[x64](https://aka.ms/dotnet-counters/linux-x64)\|[arm](https://aka.ms/dotnet-counters/linux-arm)\|[arm64](https://aka.ms/dotnet-counters/linux-arm64)\|[musl-x64](https://aka.ms/dotnet-counters/linux-musl-x64)\|[musl-arm64](https://aka.ms/dotnet-counters/linux-musl-arm64)|
31
31
32
+
> [!NOTE]
33
+
> To use `dotnet-counters` on an x86 app, you need a corresponding x86 version of the tool.
> Launching a .NET executable via dotnet-counters will make its input/output to be redirected and you won't be able to interact with its stdin/stdout. Exiting the tool via CTRL+C or SIGTERM will safely end both the tool and the child process. If the child process exits before the tool, the tool will exit as well and the trace should be safely viewable. If you need to use stdin/stdout, you can use the `--diagnostic-port` option. See [Using diagnostic port](#using-diagnostic-port) for more information.
110
113
114
+
> [!NOTE]
115
+
> On Linux and macOS, this command expects the target application and `dotnet-counters` to share the same `TMPDIR` environment variable. Otherwise, the command will time out.
116
+
117
+
> [!NOTE]
118
+
> To collect metrics using `dotnet-counters`, it needs to be run as the same user as the user running target process or as root. Otherwise, the tool will fail to establish a connection with the target process.
119
+
111
120
### Examples
112
121
113
122
- Collect all counters at a refresh interval of 3 seconds and generate a csv as output:
> Launching a .NET executable via dotnet-counters will make its input/output to be redirected and you won't be able to interact with its stdin/stdout. Exiting the tool via CTRL+C or SIGTERM will safely end both the tool and the child process. If the child process exits before the tool, the tool will exit as well. If you need to use stdin/stdout, you can use the `--diagnostic-port` option. See [Using diagnostic port](#using-diagnostic-port) for more information.
218
227
228
+
> [!NOTE]
229
+
> On Linux and macOS, this command expects the target application and `dotnet-counters` to share the same `TMPDIR` environment variable.
230
+
231
+
> [!NOTE]
232
+
> To monitor metrics using `dotnet-counters`, it needs to be run as the same user as the user running target process or as root.
233
+
219
234
### Examples
220
235
221
236
- Monitor all counters from `System.Runtime` at a refresh interval of 3 seconds:
| Linux |[x64](https://aka.ms/dotnet-dump/linux-x64)\|[arm](https://aka.ms/dotnet-dump/linux-arm)\|[arm64](https://aka.ms/dotnet-dump/linux-arm64)\|[musl-x64](https://aka.ms/dotnet-dump/linux-musl-x64)\|[musl-arm64](https://aka.ms/dotnet-dump/linux-musl-arm64)|
34
34
35
+
> [!NOTE]
36
+
> To use `dotnet-dump` on an x86 app, you need a corresponding x86 version of the tool.
> On Linux and macOS, this command expects the target application and `dotnet-dump` to share the same `TMPDIR` environment variable. Otherwise, the command will time out.
116
+
117
+
> [!NOTE]
118
+
> To collect a dump using `dotnet-dump`, it needs to be run as the same user as the user running target process or as root. Otherwise, the tool will fail to establish a connection with the target process.
119
+
111
120
## dotnet-dump analyze
112
121
113
122
Starts an interactive shell to explore a dump. The shell accepts various [SOS commands](#analyze-sos-commands).
| Linux |[x64](https://aka.ms/dotnet-gcdump/linux-x64)\|[arm](https://aka.ms/dotnet-gcdump/linux-arm)\|[arm64](https://aka.ms/dotnet-gcdump/linux-arm64)\|[musl-x64](https://aka.ms/dotnet-gcdump/linux-musl-x64)\|[musl-arm64](https://aka.ms/dotnet-gcdump/linux-musl-arm64)|
31
31
32
+
> [!NOTE]
33
+
> To use `dotnet-gcdump` on an x86 app, you need a corresponding x86 version of the tool.
The name of the process to collect the GC dump from.
100
103
104
+
> [!NOTE]
105
+
> On Linux and macOS, this command expects the target application and `dotnet-gcdump` to share the same `TMPDIR` environment variable. Otherwise, the command will time out.
106
+
107
+
> [!NOTE]
108
+
> To collect a GC dump using `dotnet-gcdump`, it needs to be run as the same user as the user running target process or as root. Otherwise, the tool will fail to establish a connection with the target process.
109
+
101
110
## `dotnet-gcdump ps`
102
111
103
112
Lists the dotnet processes that GC dumps can be collected for.
| Linux |[x64](https://aka.ms/dotnet-trace/linux-x64)\|[arm](https://aka.ms/dotnet-trace/linux-arm)\|[arm64](https://aka.ms/dotnet-trace/linux-arm64)\|[musl-x64](https://aka.ms/dotnet-trace/linux-musl-x64)\|[musl-arm64](https://aka.ms/dotnet-trace/linux-musl-arm64)|
31
31
32
+
> [!NOTE]
33
+
> To use `dotnet-trace` on an x86 app, you need a corresponding x86 version of the tool.
> Stopping the trace may take a long time (up to minutes) for large applications. The runtime needs to send over the type cache for all managed code that was captured in the trace.
143
146
147
+
> [!NOTE]
148
+
> On Linux and macOS, this command expects the target application and `dotnet-trace` to share the same `TMPDIR` environment variable. Otherwise, the command will time out.
149
+
150
+
> [!NOTE]
151
+
> To collect a trace using `dotnet-trace`, it needs to be run as the same user as the user running target process or as root. Otherwise, the tool will fail to establish a connection with the target process.
152
+
144
153
## dotnet-trace convert
145
154
146
155
Converts `nettrace` traces to alternate formats for use with alternate trace analysis tools.
0 commit comments