Documentation forAppOptics

Troubleshooting

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

Is the APM agent connected to the AppOptics server?

If firewall is enabled for your host, you might want to whitelist our AppOptics server endpoints.

If the firewall policy is configured properly, check the agent logs and see if the agent is up and running. When the agent is started it prints the following logs:

2018/10/02 14:36:40 WARN [AO] env found - APPOPTICS_SERVICE_KEY: "cd71********************************************************7b58:hello"
2018/10/02 14:36:40 WARN [AO] AppOptics reporter v1.4.0 is initialized. id: 0xc000092540 Go version: 1.11.
2018/10/02 14:36:41 WARN [AO] AppOptics agent (0xc000092540) is ready.

Nothing showing up in my.appoptics.com

The most likely cause is that your service key is not correct. There should be a message in the log saying rsp=INVALID_API_KEY (Note that for older versions (<= v1.3.0), the keyword is Server responded: Invalid API key)

You can find the API Token for your Organization at https://my.appoptics.com/organization/tokens.

Another common cause is connectivity problems between the agent and the AppOptics server. If your server is behind a firewall, please see the FAQ: My application is behind a firewall. What IP address(es) do I need to whitelist?.

Where can the agent logs be found?

The AppOptics logs are written to stderr, which is usually redirected to a file or other destination in a production environment.

How can the log level be changed?

The log level can be set via the environment variable APPOPTICS_DEBUG_LEVEL before the user program is started. The AppOptics agent also offers the ability to change the log level dynamically when it is running. You may need to integrate the API into your log management facility (e.g., through a console or an HTTP endpoint) to change it on-the-fly.

The API to change the log level is ao.SetLogLevel().

The default log level is WARN. It is ususally safe to change it to INFO temporarily for diagnosing purpose. Refer to the Golang agent’s github README page for details on valid log levels.

Is there a keyword/prefix to identify agent log messages?

All the AppOptics logs are prefixed with a keyword [AO]. For example:

2018/10/02 14:21:40 WARN  [AO] AppOptics reporter v1.4.0 is initialized. id: 0xc00002e600 Go version: 1.11.

You can search on this keyword to narrow down to agent logs.

Is the service key valid?

If you see the errors below, it may mean the service key you are using is incorrect. Go to the AppOptics dashboard to confirm the token and also confirm the service name is valid.

  **No valid service key (defined as token:service_name) is found.**
Please check AppOptics dashboard for your token and use a valid service name.
A valid service name should be shorter than 256 characters and contain only
valid characters: [a-z0-9.:_-].
Also note that the agent may convert the service name by removing invalid
characters and replacing spaces with hyphens, so the finalized service key
may be different from your setting.

The format of the API token recently changed. The new token format which is 71 characters long, may not work with previous versions of the agent (before v1.6.1). Try updating to the latest version of the agent which supports the new format.

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.