Collect important additional data for your Redis instances.
Use Redis to collect additional metrics to improve your monitoring capabilities.
Redis is an open-source, in-memory, key-value database with optional durability commonly used as a database, cache, queue, and message broker. Out of the box, Dynatrace monitors the standard Redis process level metrics.
You can use Redis to collect additional metrics including response time, memory fragmentation, cache hit ratio, cache usage, number of connections, hits, misses, and more.
The extension supports multiple Redis instances on a single OneAgent monitored host. You are able to supply a password and configuration file location (for use in identifying renamed commands) for an entire monitoring configuration as well as provide overrides in case individual instances need specific configurations. All of the Redis instances on the host will be discovered automatically, so you only need to provide overrides if they are different from the defaults.
The extension uses the listening port to map your configuration overrides to the proper Redis instance. For standard processes this will be the identified listening port. For Dockerized Redis instances, the extension will use mapped or bound port exposed on the host if available. If not available, it will use the internal port within the Docker container.
Metrics collected will be reported one the Redis process group instance. To view these metrics navigate to the process group instance screen for the relevant Redis process select the three dot button (...) and select "Metrics and logs analysis." Metrics are organized into several feature sets (see descriptions in the feature sets section below) based on:
2 metric events are defined within the extension:
They're disabled by default and must be enabled before they are active. If you want to make changes to these you should clone them and modify the copy because any changes can be overwritten in future updates.
Use this extension to:
localhost. Binding between localhost and the Redis port is required.For connecting to Dockerized instances the user that runs extensions (dtuser by default) also needs the following:
read and write to the Docker socket (/var/run/docker.sock).
The extension supports:
2.8+5.0.0+The extension ingests metrics and events. The details of license consumption will depend on which licensing model you are using. For more information about licensing costs, see Dynatrace classic licensing or the Dynatrace Platform Subscription (DPS) depending on your license model.
License consumption is based on the number of metric data points ingested. The following formula will provide approximate annual data points ingested assuming all feature sets are enabled.
(19 + (3 * <number_of_databases)) * 60 minutes * 24 hours * 365 days data points per year
In the classic licensing model, metric ingestion will consume Davis Data Units (DDUs) at the rate of .001 DDUs per metric data point.
Multiply the above formula for annual data points by .001 to estimate annual DDU usage.
When activating your extension using monitoring configuration, you can limit monitoring to one of the feature sets. To work properly the extension has to collect at least one metric after the activation.
In highly segmented networks, feature sets can reflect the segments of your environment. Then, when you create a monitoring configuration, you can select a feature set and a corresponding ActiveGate group that can connect to this particular segment.
All metrics that aren't categorized into any feature set are considered to be the default and are always reported.
A metric inherits the feature set of a subgroup, which in turn inherits the feature set of a group. Also, the feature set defined on the metric level overrides the feature set defined on the subgroup level, which in turn overrides the feature set defined on the group level.
| Metric name | Metric key | Description |
|---|---|---|
| Keys | redis.keys | The number of keys in the selected database. |
| Expires | redis.expires | The number of keys that have the TTL parameter. |
| Average time-to-live | redis.avg_ttl | The estimated average TTL of keys on the server. |
| Metric name | Metric key | Description |
|---|---|---|
| Connected replicas | redis.connected_replicas | Number of connected replicas. This metric is visible for the master and those replicas that are connected to other replicas. |
| Last master interaction time | redis.master_last_io_seconds_ago | Time since interaction with the master |
| Metric name | Metric key | Description |
|---|---|---|
| Used memory | redis.used_memory | The amount of memory in-use |
| Max memory | redis.maxmemory | The maximum memory allowed in Redis cache. |
| Memory fragmentation ratio | redis.mem_fragmentation_ratio | The ratio of memory used by the operating system compared to the amount of memory allocated by Redis. |
| Memory usage | redis.memory_usage | The percentage of utilized Redis memory. This metric is visible only when the Redis maxmemory parameter is configured. |
| Metric name | Metric key | Description |
|---|---|---|
| Connected clients | redis.connected_clients | Number of client connections (excluding connections from replicas). |
| Blocked clients | redis.blocked_clients | The number of blocked clients |
| Connections received | redis.total_connections_received.count | Number of connections accepted by the server. |
| Rejected connections | redis.rejected_connections.count | The number of connections rejected because of the maxclients limit. |
| Metric name | Metric key | Description |
|---|---|---|
| Keyspace hits | redis.keyspace_hits.count | Number of successful key lookups in the main dictionary. |
| Keyspace misses | redis.keyspace_misses.count | Number of failed key lookups. |
| Evicted keys | redis.evicted_keys.count | Number of keys removed from cache to free up memory for new items |
| Expired keys | redis.expired_keys.count | Number of key expiration events. |
| Commands processed | redis.total_commands_processed.count | Number of commands processed by Redis. |
| Cache hit ratio | redis.hit_ratio | The percentage of key lookups in the main dictionary that were successful. |
| Metric name | Metric key | Description |
|---|---|---|
| Slow queries | redis.slowlog_len.count | The number of queries added in the Redis slow log. |
| Metric name | Metric key | Description |
|---|---|---|
| Role | redis.role | The role of the Redis instance (e.g. master, slave, or sentinel) |
| Responsiveness | redis.responsiveness | The time elapsed while the Redis server responds to INFO requests. Redis typically responds within milliseconds. |