.NET
.NET is a free, cross-platform, open source developer platform for building many different types of applications.
Pyroscope Agent uses Diagnostic IPC Protocol client to communicate to .NET runtime and gather trace events. It is important to note that only managed code is accounted. Refer to dotnetdiag package for implementation details.
#
Supported .NET versions:- .NET 6.0
- .NET 5.0
- .NET Core 3.1
#
Supported platformsSpy Name | Type | Linux | macOS | Windows | Docker |
---|---|---|---|---|---|
dotnetspy | embedded | โ | โ | โ | โ |
#
Running .NET profiler- Windows
- Linux / macOS
- Docker
#
InteractivelyTo start profiling a .NET application, add pyroscope exec
before the command. Run in PowerShell:
$env:PYROSCOPE_SPY_NAME="dotnetspy";$env:PYROSCOPE_APPLICATION_NAME="my.dotnet.app";$env:PYROSCOPE_SERVER_ADDRESS="http://pyroscope-server:4040";
pyroscope exec dotnet myapp.dll
Or, if your application is an executable file:
pyroscope exec myapp.exe "arg1" "arg2"
You can also attach pyroscope to already running process using pyroscope connect
:
pyroscope connect -pid {my-app-pid}
#
Windows ServiceOn Windows, Pyroscope Agent runs as a Windows service (with pyroscope agent
command). Therefore if you are going
to continuously profile Windows services, you may find it handy to pre-define targets
in the configuration file
(by default, the configuration file path is C:\Program Files\Pyroscope\Pyroscope Agent\agent.yml
):
---log-level: "info"server-address: http://pyroscope-server:4040targets: - application-name: my.dotnet.svc spy-name: dotnetspy service-name: MyService
After the pyroscope configuration is changed, pyroscope service should be restarted for changes to take effect. Run in PowerShell as Administrator:
Get-Service pyroscope | Restart-Service
Refer to Configuration page to learn more about Pyroscop Agent and how to configure it.