Troubleshooting Instances
Warning: Redis v2.2 is no longer supported because it has reached the End of General Support (EOGS) phase as defined by the Support Lifecycle Policy. To stay up to date with the latest software and security updates, upgrade to a supported version.
Page last updated:
This topic provides basic instructions for app developers troubleshooting Redis On-Demand for Pivotal Cloud Foundry (PCF).
Troubleshooting Errors
Start here if you are responding to a specific error or error messages.
Common Service Errors
The following errors occur in multiple services:
Apps Fail to Connect to the Service Instance |
|
---|---|
Symptom | Apps fail to connect to the Redis service instance. |
Cause | The Redis on-demand service broker now binds apps to service instances using BOSH DNS. Service bindings return the DNS address instead of the IP address. If an operator enables the BOSH HotSwaps feature, any apps with service bindings that do not use BOSH DNS will fail to connect to the Redis service instance. For more information, see Enable BOSH HotSwaps to Reduce Downtime. For more information about service bindings, see Service Bindings in the Cloud Foundry documentation. |
Solution | Convert service instance bindings to use BOSH DNS. To do so, unbind, rebind, and restage all apps that were bound to a service instance using an IP address as follows:
|
No Metrics from Log Cache |
|
---|---|
Symptom | You receive no metrics when running the cf tail command. |
Cause | This might be because the Firehose is disabled in the PAS tile. |
Solution | Ask your operator to ensure that the V2 Firehose checkbox is enabled, and the Enable Log Cache syslog ingestion checkbox is disabled in the PAS tile. For more information about configuring these checkboxes, see Enable Syslog Forwarding. |
Redis for PCF Specific Errors
The following troubleshooting errors are specific to Redis for PCF:
- Maximum Number of Clients Reached
- Maxmemory Limit Reached
- Error When Running the Save Command
- Unknown Command Error
Note:
Certain errors are returned to the Redis
client instead of being recorded in the logs. The Redis protocol represents
errors as simple strings beginning with a -
character.
Maximum Number of Clients Reached |
|
---|---|
Symptom | You receive the following error: -ERR max number of clients reached |
Cause | This is usually caused by apps opening multiple client connections to Redis. |
Solution | Share or pool Redis connections within an app. Redis for PCF configures Redis to accept 10000 client connections. This can be confirmed by running the `INFO` command using the Redis CLI. |
Maxmemory Limit Reached |
|
---|---|
Symptom | You receive the following error: -OOM command not allowed when used memory > 'maxmemory'. |
Cause | This occurs when the Redis server has reached its maxmemory limit. |
Solution | Consider changing your maxmemory-policy.
You can update this using the |
Error When Running the Save Command |
|
---|---|
Symptom | You receive the following error message when running
-ERR |
Cause | This might occur when the Redis server’s disk is full. |
Solution | A more informative message might be logged in the syslog. For more information, see Syslog Errors. |
Unknown Command Error |
|
---|---|
Symptom | You receive the following error message when running `redis-cli COMMAND` or issuing a command using another Redis client: -ERR unknown command |
Cause | For security reasons, certain commands such as CONFIG ,
SAVE , and BGSAVE
are not available by default. |
Solution | Talk to your operator about the availability of the command. |
Techniques for Troubleshooting
See the following sections for troubleshooting techniques when using the Cloud Foundry Command-Line Interface (cf CLI) to perform basic operations on a Redis for PCF service instance.
Basic cf CLI operations include create
, update
, bind
, unbind
, and delete
.
Debug Using the CF CLI
See the table below for Cloud Foundry Command Line Interface (cf CLI) commands commonly used while debugging:
To view the… | Command |
---|---|
API endpoint, org, and space | cf target |
Service offerings available in the targeted org and space | cf marketplace |
Apps deployed to the targeted org and space | cf apps |
Service instances deployed to the targeted org and space | cf services |
GUID for a given service instance | cf service SERVICE-INSTANCE --guid |
Service instance or application logs | cf tail SERVICE-INSTANCE/APP |
Parse a Cloud Foundry (CF) Error Message
Failed operations (create, update, bind, unbind, delete) result in an error message.
You can retrieve the error message later by running the cf CLI command cf service INSTANCE-NAME
.
$ cf service myservice Service instance: myservice Service: super-db Bound apps: Tags: Plan: dedicated-vm Description: Dedicated Instance Documentation url: Dashboard: Last Operation Status: create failed Message: Instance provisioning failed: There was a problem completing your request. Please contact your operations team providing the following information: service: redis-acceptance, service-instance-guid: ae9e232c-0bd5-4684-af27-1b08b0c70089, broker-request-id: 63da3a35-24aa-4183-aec6-db8294506bac, task-id: 442, operation: create Started: 2017-03-13T10:16:55Z Updated: 2017-03-13T10:17:58Z
Use the information in the Message
field to debug further.
Provide this information to Support when filing a ticket.
The task-id
field maps to the BOSH task ID.
For more information on a failed BOSH task, use the bosh task TASK-ID
.
The broker-request-guid
maps to the portion of the On-Demand Broker log
containing the failed step.
Access the broker log through your syslog aggregator, or access BOSH logs for
the broker by typing bosh logs broker 0
.
If you have more than one broker instance, repeat this process for each instance.
Retrieve Service Instance Information
Log into the space containing the instance or failed instance.
$ cf login
If you do not know the name of the service instance, run
cf services
to see a listing of all service instances in the space. The service instances are listed in thename
column.$ cf services Getting services in org my-org / space my-space as user@example.com... OK name service plan bound apps last operation my-instance p.redis cache-small create succeeded
Run
cf service SERVICE-INSTANCE-NAME
to retrieve more information about a specific instance.Run
cf service SERVICE-INSTANCE-NAME --guid
to retrieve the GUID of the instance, which is useful for debugging.Run
cf tail SERVICE-INSTANCE-NAME/APP-NAME
to retrieve the service instance of the app logs if the Log Cache CLI plugin is enabled. See Log Cache CLI plugin.
Retrieve the Password for a Redis Service Instance
If you want to access the Redis server for troubleshooting, you can find a Redis service instance password by creating a new service key.
Note: Pivotal recommends that you use this key for troubleshooting only, and that you
delete the key after troubleshooting by using the command cf delete-service-key SERVICE-INSTANCE KEY-NAME
.
For instructions on how to retrieve the password, see Retrieve the Password for a Redis Service Instance.
Temporary Outages
Redis for PCF service instances can become temporarily inaccessible during upgrades and VM or network failures.
Knowledge Base (Community)
Find the answer to your question and browse product discussions and solutions by searching the VMware Tanzu Knowledge Base.
File a Support Ticket
You can file a support ticket here.
Be sure to provide the error message from cf service YOUR-SERVICE-INSTANCE
.
To expedite troubleshooting, if possible, provide your service broker logs, service instance logs, and BOSH task output. Your cloud operator should be able to obtain these from your error message.