Monitoring Redise Cloud Performance
Redise Cloud (RC) provides a straightforward dashboard that gives you good visibility into each Redis database. This can be reached by selecting the database you would like to view metrics for, then make sure you are on the Metrics tab. As you scroll down, you can see the various metrics available to you, but also the scroll bar at the top to change the detail level of the view over time. You can see the metrics over the last minute, 5 minutes, hour, day, week, month, and year.
For a quick tour of what you get, watch this video.
Definition of Each Metric
For each database, there are 14 different metrics you can see on the page:
|Ops/sec||The number of overall operations per sec for all Redis commands|
|Reads/sec||The number of read operations per second|
|Writes/sec||The number of write operations per second|
|Other cmds/sec||The number of other Redis commands per second|
|Latency (in milliseconds)||Latency per write operation|
|Reads Latency (in milliseconds)||The average, min, max and last values are also shown|
|Writes Latency (in milliseconds)||Latency per write operation|
|Other Latency (in milliseconds)||Latency per other commands|
|Used Memory||The amount of memory used by the database|
|Total Keys||The total number of keys in the database|
|Connections||The total number of connections to the end point|
|Evicted Objects/sec||Number of objects evicted from the database per second|
|Expired Objects/sec||Number of expired objects per sec. An expired object is an object with expired TTL that was deleted from the database.|
|Hit Ratio (percentage)||The number of operations on existing keys divided by total database operations.|
Alerting on Metrics
There are five metrics you can and should alert on for each database.
These are located on the Configuration tab for each database. If you want to edit the values or enable/disable an alert, you must first click on the pencil icon to edit the configuration. While there are default values, each database’s alerting needs are usually different, so there are no best practices per se around what to set these to.
Note: The “Total size of datasets under this plan” metric is at the subscription plan level even though they are shown for convenience at the database level. If you set this alert in one database you will see the value has changed in the other database configurations too. For “Number of connections reached”, each database can have its own percentage it has to reach. If you have multiple databases on the same subscription, you need to set this percentage appropriately on your own. For example, if you have two databases, alerting on when each database gets to 80% can surpass your number of subscriptions.
Changing Alert Email Recipients
Any member of the account team can receive alert emails.
To change the alert email recipients please do the following:
- Click the ‘Team’ button in the top right of the main UI page to access the Team
- Click ‘Edit’.
- Check the ‘Receive Email Alerts’ checkbox of the users who should receive alerts.
- Save your changes by clicking ‘Save’.
NOTE: PaaS users, such as Heroku users, don’t have the option to create a team. When creating a Team of users, the users have an option to define which users receive email alerts and which user receives billing emails regardless of what email is set in Account -> Account Info. For PaaS users, on the other hand, the email alerts and billings are sent to the email that is set in Account -> Account Info.
Why is my hit rate so low?
A low hit rate indicates a high ratio of number of evictions relative to the number of keys. To resolve this issue, you need to upgrade your current subscription in order to reduce eviction.
The following example shows how to calculate the ratio of number of evictions to the number of evicted objects:
Go to Databases > Dashboard, and look at your dashboard in the ‘Day’ resolution. Suppose the stats for your Redis DB are:
Total Keys: 300,121
Hit Ratio: 71.53%
Evicted Objects/Sec: 9
A rate of 9 evictions per second means that you have 9*3600*24=777,600 evictions in 24 hours, which is 2.5 times your current number of keys.
Can you enable us to output our Redis stats and logs out to our own tools?
We do not expose the Redis logs, but you can get the Redis stats by periodically executing the INFO command and/or by using the New Relic plugin.
I am hitting the connection limit and receiving alerts, what should I do?
To avoid reaching the connection limit, please consider the following options:
- Upgrade to a plan with more connections.
- Use a connection pool. Without connection pooling, each request opens a new connection. This exposes you to many possible momentary problems that could prevent the opening of the connection. In addition, if you make many requests, you will be frequently opening and closing connections, operations which might fail from time to time. Using connection pooling, you will be opening a few connections that will serve all requests, and will not close after each request. This eliminates the problems above and will also give you better performance because no time will be wasted on opening and closing connections.