The Atatus .NET agent monitors your .NET 5+ and ASP.NET Core applications on Linux and Windows. Install it using the Profiler or the NuGet package.

Supported versions

  • .NET 5.0, 6.0, 7.0, 8.0, 9.0 — Profiler or NuGet package
  • .NET Core 3.1 — NuGet package only (the profiler does not support it)

Profiler

The profiler attaches at runtime through environment variables. See the Profiler overview for prerequisites and the full list of variables.

Linux

  1. Download and extract the profiler into a directory your application can read, such as ~/atatus:

    copy
    icon/buttons/copy
    wget https://atatus-artifacts.s3.amazonaws.com/atatus-dotnet/downloads/atatus-dotnet-agent-profiler-3.2.2-linux-x64.zip
    mkdir -p "$HOME/atatus"
    unzip atatus-dotnet-agent-profiler-3.2.2-linux-x64.zip -d "$HOME/atatus"
    
  2. Set these environment variables before starting the application:

    copy
    icon/buttons/copy
    export CORECLR_ENABLE_PROFILING="1"
    export CORECLR_PROFILER="{A6C28362-6F75-472A-B36C-50C1644DA40A}"
    export CORECLR_PROFILER_PATH="$HOME/atatus/libatatus_profiler.so"
    export ATATUS_PROFILER_HOME="$HOME/atatus"
    export ATATUS_PROFILER_INTEGRATIONS="$HOME/atatus/integrations.yml"
    export ATATUS_LICENSE_KEY="YOUR_LICENSE_KEY"
    export ATATUS_APP_NAME="YOUR_APP_NAME"
    export ATATUS_ANALYTICS="true"
    export ATATUS_TRACING="true"
    export ATATUS_CAPTURE_BODY="all"
    
  3. Restart the application.

Windows

  1. Download the Windows profiler ZIP in your browser.

  2. Extract All… and choose a folder such as C:\atatus.

  3. Set these environment variables in PowerShell before starting the application:

    copy
    icon/buttons/copy
    $env:CORECLR_ENABLE_PROFILING="1"
    $env:CORECLR_PROFILER="{A6C28362-6F75-472A-B36C-50C1644DA40A}"
    $env:CORECLR_PROFILER_PATH="C:\atatus\atatus_profiler.dll"
    $env:ATATUS_PROFILER_HOME="C:\atatus"
    $env:ATATUS_PROFILER_INTEGRATIONS="C:\atatus\integrations.yml"
    $env:ATATUS_LICENSE_KEY="YOUR_LICENSE_KEY"
    $env:ATATUS_APP_NAME="YOUR_APP_NAME"
    $env:ATATUS_ANALYTICS="true"
    $env:ATATUS_TRACING="true"
    $env:ATATUS_CAPTURE_BODY="all"
    
  4. Restart the application.

NuGet package

.NET 7.0 and above

  1. Install the package:

    copy
    icon/buttons/copy
    dotnet add package Atatus.NetCoreAll
    
  2. Call AddAllAtatus() in Program.cs before building the app:

    copy
    icon/buttons/copy
    using Atatus.NetCoreAll;
    
    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddAllAtatus();
    var app = builder.Build();
    app.Run();
    
  3. Add your app name and license key to appsettings.json:

    copy
    icon/buttons/copy
    "Atatus": {
        "AppName": "YOUR_APP_NAME",
        "LicenseKey": "YOUR_LICENSE_KEY"
    }
    
  4. Restart the application.

.NET Core 3.1 to .NET 6.0

  1. Install the package:

    copy
    icon/buttons/copy
    dotnet add package Atatus.NetCoreAll
    
  2. Call UseAllAtatus(Configuration) as the first line of Configure in Startup.cs:

    copy
    icon/buttons/copy
    using Atatus.NetCoreAll;
    
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseAllAtatus(Configuration);
        // Your code here
    }
    
  3. Add your app name and license key to appsettings.json (as shown above).

  4. Restart the application.

Deploying on IIS

ASP.NET Core runs behind the ASP.NET Core Module on IIS, so the same code works. Publish the application, copy the output (including the generated web.config) to the IIS site folder, and recycle the application pool. For profiler-based IIS setup, see the IIS guide.

Next steps