Documentation forAppOptics

Installation on Linux (legacy agent)

The following content pertains to installation on Linux for the legacy AppOptics NET Agent.

AppOptics agents are no long receiving updates. The new SolarWinds Observability libraries can send APM data in AppOptics and are regularly updated with new features and improvements. If you are still relying on the AppOptics agents and your components are supported by the new libraries, consider transitioning to the SolarWinds Observability libraries for your APM needs. For more information about the benefits of migrating to the SolarWinds Observability libraries. Alternatively, you can use SolarWinds Observability as your primary APM solution.

If you have already transitioned to the new SolarWinds Observability NET Library, see the SolarWinds NET Library documentation for installation on Linux information.

SolarWinds Observability libraries are not compatible with AppOptics agents. Do not use a mix of SolarWinds Observability libraries and AppOptics agents to instrument applications that are part of a distributed trace.

Get the agent

The agent is distributed as a compressed archive that can be downloaded from https://files.appoptics.com/dotnet/dotnet-agent-package.tgz.

We recommend extracting it to a directory named $HOME/appoptics. All the examples below assume this as the install directory.

First, download and extract the agent:

mkdir -p ${HOME}/appoptics
pushd ${HOME}/appoptics
curl -sSO https://files.appoptics.com/dotnet/dotnet-agent-package.tgz
tar -xvf dotnet-agent-package.tgz
popd

Then designate the agent as a CLR profiler by setting the following environment variables:

export APPOPTICS_HOME_APM_DOTNET=${HOME}/appoptics
export CORECLR_PROFILER={824293AD-22E2-4DAA-BC28-166C140543BE}
export CORECLR_PROFILER_PATH=${APPOPTICS_HOME_APM_DOTNET}/AppOpticsProfiler.so

To enable the agent for a process, set the following environment variable for the process:

export CORECLR_ENABLE_PROFILING=1

If the above 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 in a bash shell:

CORECLR_ENABLE_PROFILING=0 dotnet --info
CORECLR_ENABLE_PROFILING=0 dotnet publish ...

The agent also requires a service key, which can be set either in the configuration file ${APPOPTICS_HOME_APM_DOTNET}/agent.config or as the APPOPTICS_SERVICE_KEY environment variable, for example:

export APPOPTICS_SERVICE_KEY=<appoptics-api-token>:<service-name>

Finally, restart the .NET Core application for these changes to take effect.

Troubleshooting

After installing the agent if traces and metric data do not appear in the AppOptics dashboard, a diagnostic tool is available to help troubleshoot the problem. Review the Troubleshooting page for information on how to use the diagnostic tool and for help resolving the issue.

Instrumenting non-dotnet processes

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 ran directly such as a self-contained executable, you’ll need to 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/appoptics directory.

Uninstalling the Agent

Unset all the environment variables exported during the Get the agent section and (optional) remove the agent install directory.

The agent can also be disabled via the <AppOptics> 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.