Monitoring Redis
The Remote Dictionary Server (Redis) is an open source, in-memory, NoSQL key-value store that is used primarily as an application cache or quick-response database. Instana uses the Redis sensor to monitor Redis.
After you install the Instana host agent, the Redis sensor is automatically installed. You can view metrics that are related to Redis in the Instana UI after you complete the configuration as outlined in the Configuring section.
Supported information
Supported operating systems
The operating systems that are supported for the Redis sensor are consistent with the host agent requirements. To find the supported operating systems for every host agent, see the "Supported operating systems section" of each host agent, such as Supported operating systems for Unix.
Supported versions
Instana supports the following versions of Redis:
- Redis 3.0.x
- Redis 3.2.x
- Redis 4.0.x
- Redis 5.0.x
- Redis 6.0.x
- Redis 7.0.x
Supported client-side tracing
For this technology, Instana supports client-side tracing for the following languages and runtimes:
Configuring
To enable in-depth metric monitoring, provide the credentials to access monitoring information in the Instana agent.
Update the Instana agent configuration file <agent_install_dir>/etc/instana/configuration.yaml
as shown in the following example:
com.instana.plugin.redis:
username: '' # Used when Redis 6 ACL applied
password: ''
# Instana requires the CONFIG command and it must not be disabled on the Redis side.
# If it was renamed using 'rename-command', eg: rename-command CONFIG NEWCONFIG
# this setting can be used to tell Instana the new command name
config-command: 'NEWCONFIG'
# Monitor certain values in Redis
monitor:
- db: 0 # db number - defaults to 0 if absent
key: 'logstash' # key of value, given as string
If process environment is used to configure the Redis plug-in, set the set-proc-title
flag to no
in the
redis.conf
file as shown in the following example:
# By default, Redis modifies the process title (as seen in 'top' and 'ps') to
# provide some runtime information. It is possible to disable this and leave
# the process name as executed by setting the following to no.
set-proc-title no
Metrics collection
To view the metrics, complete the following steps:
- In the navigation menu, click Infrastructure.
- In the Map tab, click a Redis host that is monitored.
- Click Open Dashboard. The dashboard displays the metrics and processes.
Node-Level
The monitoring of Redis Sentinel and Redis with TLS/SSL enabled is not supported.
Configuration data
The following are the configuration data collected at the Redis node level:
- Port
- Started At
- Role
- Cluster Enabled
- Slaves
Performance metrics
The following are the performance metrics collected at the Redis node level:
Throughput
Metric | Description | Granularity |
---|---|---|
Throughput | Number of operations per second. | 1 second |
Keys
Metric | Description | Granularity |
---|---|---|
Hits | Number of key hits, which are aggregated from all databases. | 1 second |
Misses | Number of key misses, which are aggregated from all databases. | 1 second |
Hit Rate | Percentage of key rates, which are aggregated from all databases. | 1 second |
Expired | Number of expired keys, which are aggregated from all databases. | 1 second |
Evicted | Number of evicted keys, which are aggregated from all databases. | 1 second |
Database
Metric | Description | Granularity |
---|---|---|
Keys | Database keys of Redis. | 1 second |
Expires | Expired keys of Redis. | 1 second |
Memory
Metric | Description | Granularity |
---|---|---|
Used | Used memory, which is aggregated from all databases. | 1 second |
User RSS | Used memory RSS, which is aggregated from all databases. | 1 second |
Lua Heap Size | Lua scripting heap size, which is aggregated from all databases. | 1 second |
Fragmentation ratio | Memory fragmentation ratio, which is aggregated from all databases. | 1 second |
Connections
Metric | Description | Granularity |
---|---|---|
Connections | The number of clients that are connected to endpoints on the node conns . |
1 second |
Pub / Sub Subscribed patterns
Metric | Description | Granularity |
---|---|---|
Subscribed patterns | Messaging paradigm where senders (publishers) are not programmed to send their messages to specific receivers (subscribers). | 1 second |
Persistence
Metric | Description | Granularity |
---|---|---|
Rdb current bgsave | Duration of the current rdb save. | 1 second |
Aof current rewrite time | Duration of the current aof log rewrite. | 1 second |
- Slow Log
In the Slow Log, you can search through the history of snapshots. The snapshots are retained for one month.
Health signatures
Each sensor has a curated knowledge base of health signatures that are evaluated continuously against the incoming metrics and are used to raise issues or incidents depending on user impact.
Built-in events trigger issues or incidents based on the failing health signatures on entities, and custom events trigger issues or incidents based on the thresholds of an individual metric of any given entity.
For more information about built-in events for the Redis Node, see Built-in events reference.
Cluster-Level
Cluster level information is available for Redis version 3.0.0
or higher.
Configuration data
The following configuration data are collected at the Redis cluster level:
- ID
- Cluster status
- Total number of nodes
- Number of master nodes
Performance metrics
The following performance metrics are collected at the Redis cluster level:
Throughput
Metric | Description | Granularity |
---|---|---|
Throughput | Number of operations per second (sum for all nodes in the cluster). | 1 second |
Keys
Metric | Description | Granularity |
---|---|---|
Hits | Number of key hits, which are aggregated from all nodes in the cluster. | 1 second |
Misses | Number of key misses, which are aggregated from all nodes in the cluster. | 1 second |
Hit Rate | Percentage of key rates, which are aggregated from all nodes in the cluster. | 1 second |
Expired | Number of expired keys, which are aggregated from all nodes in the cluster. | 1 second |
Evicted | Number of evicted keys, which are aggregated from all nodes in the cluster. | 1 second |
Memory
Metric | Description | Granularity |
---|---|---|
Used | Used memory, which is aggregated from all nodes in the cluster. | 1 second |
User RSS | Used memory RSS, which is aggregated from all nodes in the cluster. . | 1 second |
Lua Heap Size | Lua scripting heap size, which is aggregated from all nodes in the cluster. | 1 second |
Connections
Metric | Description | Granularity |
---|---|---|
Connected | Number of connections. | 1 second |
Blocked | Number of blocked connections. | 1 second |
Rejected | Number of rejected connections. | 1 second |
Messages
Metric | Description | Granularity |
---|---|---|
Sent | Number of messages that are sent through the node-to-node binary bus of the cluster. | 1 second |
Received | Number of messages that are received through the node-to-node binary bus of the cluster. | 1 second |
Troubleshooting
Redis CONFIG command name that is not enabled and configured
Monitoring issue type: redis_config_command_name_not_configured
The Redis configuration is in the redis.conf
file. For the Instana agent to read metrics from the Redis server, ensure that the CONFIG
command is not disabled in the Redis configuration file using:
rename-command CONFIG ''
For example, if the CONFIG command is renamed as b840fc02d524045429941cc15f59e41cb7be6c52
in the redis.conf
file using:
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
Update the same CONFIG command name b840fc02d524045429941cc15f59e41cb7be6c52
in the agent configuration file as shown in the following configuration:
com.instana.plugin.redis:
config-command: 'b840fc02d524045429941cc15f59e41cb7be6c52'