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

  1. Download Atatus profiler.

    # For Windows
    https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-2.0.1-win-x64.zip
    
  2. 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.

  1. Atatus Profiler Agent supports .NET Core 5 and above."

  2. Download Atatus profiler.

    # For Windows
    https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-2.0.1-win-x64.zip
    
  3. 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
    
  4. 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.

  1. Atatus Profiler Agent supports .NET Core 5 and above."

  2. Download Atatus profiler.

    # For Linux
    wget https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-2.0.1-linux-x64.zip
    
    unzip atatus-dotnet-agent-profiler-2.0.1-linux-x64.zip
    
  3. 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"
    
  4. Restart your applications.

Internet Information Services (IIS)

Follow the instructions for installing and configuring the Atatus monitoring agent on IIS servers.

Note:
  1. For IIS versions before IIS 10, it is not possible to set environment variables scoped to a specific application pool, so environment variables need to set globally.
  2. application-pool is the name of the Application Pool your application uses. For example, IIS APPPOOL\DefaultAppPool
  • Environment variables need to be set globally.

  • Set environment variables using AppCmd.exe through PowerShell.

  • Download profiler agent from source

  1. .NET Framework

    $appcmd = "$($env:systemroot)\system32\inetsrv\AppCmd.exe"
    $appPool = "<application-pool>"
    $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_APP_NAME = "YOUR_APP_NAME"
    }
    
    $environment.Keys | ForEach-Object {
      & $appcmd set config -section:system.applicationHost/applicationPools /+"[name='$appPool'].environmentVariables.[name='$_',value='$($environment[$_])']"
    }
    
  2. .NET Core

    $appcmd = "$($env:systemroot)\system32\inetsrv\AppCmd.exe"
    $appPool = "<application-pool>"
    $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_APP_NAME = "YOUR_APP_NAME"
    }
    
    $environment.Keys | ForEach-Object {
      & $appcmd set config -section:system.applicationHost/applicationPools /+"[name='$appPool'].environmentVariables.[name='$_',value='$($environment[$_])']"
    }