Documentation forAppOptics

Troubleshooting

If you are not receiving traces and metrics in your AppOptics dashboard these are some options to troubleshoot.

Tracing disabled

The message Missing AppOpticsAPM libraries.  Tracing disabled. means that the appoptics_apm gem couldn’t load the core c-extension that is built on gem install. This c extension is only available for Linux platforms (see supported_platforms).

Another cause could be that gem install appoptics_apm or bundle install was run as root and the application is run by a non-root user.

Despite this message, your application will run normally, but no metrics or traces will be collected.

Nothing showing up in my.appoptics.com

A likely cause is, that your service key is not configured correctly. There should be a message in the log saying APPOPTICS_SERVICE_KEY not set. Cannot submit data. or Server responded: Invalid API key

You can find the API Token for your Organization at https://my.appoptics.com/organization/tokens. The service key is a combination of your token and the name you would like to see on the dashboard for your service: <token>:<service name>.

If that is not the problem, please take a look at the response headers in your app.

If they don't contain a X-Trace header, then the instrumentation is in noop mode. Please make sure gem 'appoptics_apm' is the last entry in your Gemfile and, if not running a Rails app, appoptics_apm is required after any gems that need instrumentation.

If there is an X-Trace header, then it's value should be similar to 2B9000C789406646F4EFE825D9240D46C46B95C29CBEBD615BA2951E2F01. If this header ends with 1, the request is traced, if it ends with a 0 only metrics are sent. If it always ends with a 0, then there may be a problem with the sampling rate, either the local one or the one reflected by the collector.

Running behind a proxy or firewall

The agent currently can't send data using a proxy. A workaround is to create a rule in your router or firewall to allow connections to collector.appoptics.com. Please see the FAQ: My application is behind a firewall. What IP address(es) do I need to whitelist?.

Where are the agent logs?

For Rails and Padrino, the agent uses the respective applications logger, otherwise the appoptics_apm gem logs to STDERR. This behavior can be changed by assigning the AppOpticsAPM.logger to a different logger, e.g, AppOpticsAPM.logger = MyApp.logger during initialization.

More verbose logs

Use export APPOPTICS_DEBUG_LEVEL=6 to set the logging to maximum verbosity level. The levels are:

  • 6 debug high
  • 5 debug medium
  • 4 debug low
  • 3 info (default)
  • 2 warn
  • 1 error
  • 0 fatal
  • -1 disabled

Simple test of setup

If everything seems setup correctly the following sequence can be tried:

Copy
bundle exec irb
require 'appoptics_apm'
target = {}
AppOpticsAPM::SDK.start_trace_with_target(:test, nil, target) {}
target

It should return something like {"X-Trace"=>"2B3669083F409E053615860A12EE0D5BAA4B8F8975D3015AEAD723FC9B01"}. If the string ends with ‘01’, the trace will show up in the dashboard. If it ends with ‘00’, it means that it wasn’t sampled.

Please use the newest version

The appoptics_apm gem is under development; new features are added and bugs squashed. Please use the newest version. See Release Notes for changes.

When the APM Integrated Experience is enabled, AppOptics shares a common navigation and settings with the other integrated experiences' products. How you navigate AppOptics and access its features may vary from these instructions. For more information, go to the APM Integrated Experience documentation.

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.