Documentation forSolarWinds Observability

Install the .NET Library on Linux

Get the library

The library is distributed as a compressed archive that can be downloaded from https://agent-binaries.cloud.solarwinds.com/apm/dotnet/latest/solarwinds-apm-dotnet-agent-package.tgz.

The archive can be extracted to any location, but SolarWinds recommends extracting it to a directory named $HOME/solarwinds. All the examples below assume this as the installation directory.

  1. Copy the command below or click Copy in step 1 of the Add Data dialog. Run the copied command in the command line to download and extract the library.

    mkdir -p ${HOME}/solarwinds
    pushd ${HOME}/solarwinds
    curl -sSO https://agent-binaries.cloud.solarwinds.com/apm/dotnet/latest/solarwinds-apm-dotnet-agent-package.tgz
    tar -xvf dotnet-agent-package.tgz
    popd
  2. Copy the command below or click Copy in step 2 of the Add Data dialog. Run the copied command in the command line to designate the library as a CLR profiler.

    export SW_APM_HOME_DOTNET=${HOME}/solarwinds
    export CORECLR_PROFILER={AAAA7777-11FE-4F94-8EDA-312C0EDF4141}
    export CORECLR_PROFILER_PATH=${SW_APM_HOME_DOTNET}/solarwinds_apm_profiler.so
  3. Copy the command below or click Copy in step 3 of the Add Data dialog. Run the copied command in the command line to enable the library for a process.

    export CORECLR_ENABLE_PROFILING=1

    If this environment is set at the system level, you may selectively disable a process from instrumentation by setting CORECLR_ENABLE_PROFILING=0 for the process. For example, to exempt the dotnet SDK commands, run the following commands in a bash shell:

    CORECLR_ENABLE_PROFILING=0 dotnet --info
    CORECLR_ENABLE_PROFILING=0 dotnet publish ...
  4. Copy the command below or click Copy in step 4 of the Add Data dialog. Run the copied command to define the Service key for the library using an environment variable. To set the Service key in the config file instead, see Configure the .NET Library.

    export SW_APM_SERVICE_KEY=YourServiceKey

    Replace YourServiceKey with the Service key you are using to identify your account and the service being instrumented.

    The Service key should be in the form of YourApiToken:YourServiceName. Replace YourApiToken with the SolarWinds Observability API token (ingestion type) generated for this service, and replace YourServiceName with your chosen name for this service. See API Tokens.

  5. Restart the .NET Core application for these changes to take effect.

Troubleshooting

After you install the library, if traces and metric data do not appear in the Traces Explorer and Metrics Explorer, a diagnostic tool is available to help troubleshoot the problem. See Troubleshoot the .NET Library for information on how to use the diagnostic tool and for help resolving the issue.

Instrumenting .NET Core/5+ executables

Any application that starts with the dotnet command (runs under the dotnet process), is automatically considered for instrumentation. An example:

dotnet dotnet-core-application.dll

To instrument an application that is run directly such as a self-contained executable, add it in the <applications> section in the agent.config configuration file. An example:

<applications>
  <application name="dotnet-core-executable" />
</applications>

Log file location

Agent log files are located under the /var/tmp/solarwinds directory.

Uninstall the library

Unset all the environment variables exported during the Get the library section and (optionally) remove the library installation directory.

The library can also be disabled via the ApmAgent configuration setting.

The scripts are not supported under any SolarWinds support program or service. The scripts are provided AS IS without warranty of any kind. SolarWinds further disclaims all warranties including, without limitation, any implied warranties of merchantability or of fitness for a particular purpose. The risk arising out of the use or performance of the scripts and documentation stays with you. In no event shall SolarWinds or anyone else involved in the creation, production, or delivery of the scripts be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the scripts or documentation.