Atatus .NET Profiler auto instruments your application and dependency code for complete performance monitoring and analysis without requiring any direct modifications to the source code. Follow the steps below to configure the Atatus .NET CoreProfiler for .NET Core, .NET Framework, IIS, and other .NET applications. Atatus agent profiler will auto-instrument your application.
.NET Framework
To install the .NET Framework profiler agent, download and execute the below installer package
- Download Atatus profiler.
# For Windows
https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-2.0.2-win-x64.zip
- Upon downloading the profiler agent, please configure the following environment variables.
set COR_ENABLE_PROFILING=1
set COR_PROFILER={A6C28362-6F75-472A-B36C-50C1644DA40A}
set COR_PROFILER_PATH=<extracted directory>\atatus_profiler.dll
set ATATUS_PROFILER_HOME=<extracted directory>
set ATATUS_PROFILER_INTEGRATIONS=<extracted directory>\integrations.yml
set ATATUS_LICENSE_KEY=YOUR_LICENSE_KEY
set ATATUS_APP_NAME=YOUR_APP_NAME
# For setting up API Analytics
set ATATUS_ANALYTICS=true
set ATATUS_CAPTURE_BODY=all
.NET Core in Windows
To install the Atatus agent for .NET Core on Windows, apply the script provided below.
Atatus Profiler Agent supports .NET Core 5 and above."
Download Atatus profiler.
# For Windows
https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-2.0.2-win-x64.zip
- Upon downloading the profiler agent, please configure the following environment variables.
set CORECLR_ENABLE_PROFILING=1
set CORECLR_PROFILER={A6C28362-6F75-472A-B36C-50C1644DA40A}
set CORECLR_PROFILER_PATH=<extracted directory>/atatus_profiler.dll
set ATATUS_PROFILER_HOME=<extracted directory>
set ATATUS_PROFILER_INTEGRATIONS=<extracted directory>/integrations.yml
set ATATUS_LICENSE_KEY=YOUR_LICENSE_KEY
set ATATUS_APP_NAME=YOUR_APP_NAME
# For setting up API Analytics
set ATATUS_ANALYTICS=true
set ATATUS_CAPTURE_BODY=all
- Restart your applications
.NET Core in Linux
The provided installation script can be used to deploy the Atatus agent on Linux for .NET Core applications.
Atatus Profiler Agent supports .NET Core 5 and above."
Download Atatus profiler.
# For Linux
wget https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-2.0.2-linux-x64.zip
unzip atatus-dotnet-agent-profiler-2.0.2-linux-x64.zip
- Upon downloading the profiler agent, please configure the following environment variables.
export CORECLR_ENABLE_PROFILING="1"
export CORECLR_PROFILER="{A6C28362-6F75-472A-B36C-50C1644DA40A}"
export CORECLR_PROFILER_PATH="<extracted directory>/libatatus_profiler.so"
export ATATUS_PROFILER_HOME="<extracted directory>"
export ATATUS_PROFILER_INTEGRATIONS="<extracted directory>/integrations.yml"
export ATATUS_LICENSE_KEY="YOUR_LICENSE_KEY"
export ATATUS_APP_NAME="YOUR_APP_NAME"
# For setting up API Analytics
export ATATUS_ANALYTICS="true"
export ATATUS_CAPTURE_BODY="all"
- Restart your applications.
Internet Information Services (IIS)
Follow the steps below to install and configure the Atatus monitoring agent for applications hosted on IIS.
- For IIS versions prior to IIS 10, environment variables cannot be scoped to a specific application pool. In such cases, environment variables must be set globally.
- Replace
application-pool
with the name of the Application Pool your app uses. For example:IIS APPPOOL\DefaultAppPool
1. Set Environment Variables
Before proceeding, note that environment variables must be configured globally on the IIS server.
2. Download the Profiler Agent
Download the Atatus .NET Profiler Agent from source
Extract the contents to a suitable directory and use the extracted path in the steps below.
3. Instrumentation for .NET Framework Applications
Use the following PowerShell script to configure environment variables and link them to your application pools:
1. .NET Framework
$appcmd = "$($env:systemroot)\system32\inetsrv\AppCmd.exe"
# Define your application pools and their corresponding Atatus app names
$appPools = @{
"<IISAppPoolName>" = "<AtatusAppName>"
"<IISAppPoolName>" = "<AtatusAppName>"
}
# Base environment variables (common to all pools)
$environment = @{
COR_ENABLE_PROFILING = "1"
COR_PROFILER = "{A6C28362-6F75-472A-B36C-50C1644DA40A}"
COR_PROFILER_PATH = "<extracted directory>\atatus_profiler.dll"
ATATUS_PROFILER_HOME = "<extracted directory>"
ATATUS_PROFILER_INTEGRATIONS = "<extracted directory>\integrations.yml"
COMPlus_LoaderOptimization = "1"
ATATUS_LICENSE_KEY = "YOUR_LICENSE_KEY"
ATATUS_ANALYTICS = "true"
ATATUS_CAPTURE_BODY = "all"
}
# Apply environment variables per app pool
$appPools.GetEnumerator() | ForEach-Object {
$appPool = $_.Key
$atatusAppName = $_.Value
$envVars = $environment.Clone()
$envVars["ATATUS_APP_NAME"] = $atatusAppName
$envVars.Keys | ForEach-Object {
& $appcmd set config -section:system.applicationHost/applicationPools /+"[name='$appPool'].environmentVariables.[name='$_',value='$($envVars[$_])']"
}
}
2. .NET Core
$appcmd = "$($env:systemroot)\system32\inetsrv\AppCmd.exe"
# Define your application pools and their corresponding Atatus app names
$appPools = @{
"<IISAppPoolName>" = "<AtatusAppName>"
"<IISAppPoolName>" = "<AtatusAppName>"
}
# Base environment variables (common to all pools)
$environment = @{
CORECLR_ENABLE_PROFILING = "1"
CORECLR_PROFILER = "{A6C28362-6F75-472A-B36C-50C1644DA40A}"
CORECLR_PROFILER_PATH = "<extracted directory>\atatus_profiler.dll"
ATATUS_PROFILER_HOME = "<extracted directory>"
ATATUS_PROFILER_INTEGRATIONS = "<extracted directory>\integrations.yml"
COMPlus_LoaderOptimization = "1"
ATATUS_LICENSE_KEY = "YOUR_LICENSE_KEY"
ATATUS_ANALYTICS = "true"
ATATUS_CAPTURE_BODY = "all"
}
# Apply environment variables per app pool
$appPools.GetEnumerator() | ForEach-Object {
$appPool = $_.Key
$atatusAppName = $_.Value
$envVars = $environment.Clone()
$envVars["ATATUS_APP_NAME"] = $atatusAppName
$envVars.Keys | ForEach-Object {
& $appcmd set config -section:system.applicationHost/applicationPools /+"[name='$appPool'].environmentVariables.[name='$_',value='$($envVars[$_])']"
}
}