Installation on Linux (legacy agent)
The following content pertains to
AppOptics agents are no long receiving updates. The new SolarWinds Observability libraries 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 migrating to SolarWinds Observability.
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.