Redis Enterprise Software is from Redis Labs which enhances the open-source Redis with multiple deployment choices (public and private clouds, on-premises, hybrid, RAM-Flash combination), topology and support for very large data-set sizes. The AppDynamics Monitoring Extension for Redis Enterprise will collect metrics from Redis Enterprise clusters and send them to AppDynamics Controller.
Java 8
to build the extension artifact from source. You can check the java version used in maven using command mvn -v
or mvn --version
. If your maven is using some other java version then please download java 8 for your platform and set JAVA_HOME parameter before starting maven.git clone <repoUrl>
command.Please place the extension in the "monitors" directory of your Machine Agent installation directory. Do not place the extension in the "extensions" directory of your Machine Agent installation directory.
In order to use this extension, the following files need to be configured - config.yml and metrics.xml. Here's how to configure those files.
<MACHINE_AGENT_HOME>/monitors/RedisEnterprise/
servers
section of the config.yml. This can be configured to collect metrics from the cluster along with all nodes, databases, and shards in the cluster.connection
section.servers:
- uri: "http://localhost:9443"
username: "admin" # user should have privileges in RedisEnterprise
password: "admin"
encryptedPassword: ""
useSSL: "false"
displayName: "cluster1"
servers:
- uri: "http://redis.enterprise.one:5984"
username: "admin" # user should have privileges in RedisEnterprise
password: "admin"
encryptedPassword: ""
useSSL: "false"
displayName: "cluster1" # cluster 1 endpoint
- uri: "http://redis.enterprise.two:5984"
username: "admin" # user should have privileges in RedisEnterprise
password: "admin"
encryptedPassword: ""
useSSL: "false"
displayName: "cluster2" # cluster 2 endpoint
<<To add more clusters, simply add each cluster here>>
Metric Property | Default value | Possible values | Description |
---|---|---|---|
alias | metric name | Any string | The substitute name to be used in the metric browser instead of metric name. |
aggregationType | "AVERAGE" | "AVERAGE", "SUM", "OBSERVATION" | Aggregation qualifier |
timeRollUpType | "AVERAGE" | "AVERAGE", "SUM", "CURRENT" | Time roll-up qualifier |
clusterRollUpType | "INDIVIDUAL" | "INDIVIDUAL", "COLLECTIVE" | Cluster roll-up qualifier |
multiplier | 1 | Any number | Value with which the metric needs to be multiplied. |
convert | null | Any key value map | Set of key value pairs that indicates the value to which the metrics need to be transformed. eg: UP:0, DOWN:1 |
delta | false | true, false | If enabled, gives the delta values of metrics instead of actual values. |
The following metrics are reported under each cluster
name:
Free Memory
Available Memory
Provisional Memory
Available Flash
Provisional Flash
Cpu Time - User
Cpu Time - System
Cpu Idle Time
Available Ephemeral Disk Space
Available Persistent Storage
Ephemeral Storage - Free
Persistent Storage - Free
Request Rate
Average Node Latency
Number of Client Connections
Ingress Rate
Egress Rate
BigRedis Key Access Per Sec
BigRedis IO ops
BigRedis Throughput
BigRedis Memory - Free
The following metrics are reported under database
section:
Number of Keys
Evicted Objects
Expired Objects
Instantaneous Ops/sec
Read Hits
Read Misses
Write Hits
Write Misses
PubSub Channels
PubSub Patterns
RAM Frag Ratio
Disk Frag Ratio
Bigstore KV Ops
Bigstore IO ops
Bigstore throughput
BigRedis RAM Hits
BigRedis Flash Hits
BigRedis RAM Writes
BigRedis Flash Writes
BigRedis Deletes - RAM
BigRedis Deletes - Flash
BigRedis IO ops
BigRedis Flash IO ops
BigRedis Flash IO Reads
BigRedis Flash IO Writes
BigRedis Flash IO Deletes
BigRedis Flash IO Read Throughput
BigRedis Flash IO Write Throughput
BigRedis RAM Overhead
BigRedis RAM Value Count
BigRedis Flash Value Count
BigRedis Used Memory
Redis Lua Scripting Heap Size
BigRedis RAM Used
BigRedis Flash Used
Client Connection Count
New Connections Per Sec
Ingress Bytes
Egress Bytes
DB Request Rate - Read
DB Response Rate - Read
DB Request Rate - Write
DB Response Rate - Write
DB Request Rate - Non Read/Write
DB Response Rate - Non Read/Write
Total Request Rate
Total Response Rate
Number of Monitor Sessions
Average Read latency
Average Write Latency
Average Latency - Other
Average Latency
BigRedis Flash Used
BigRedis Flash Used
BigRedis Flash Used
BigRedis Flash Used
BigRedis Flash Used
BigRedis Flash Used
BigRedis Flash Used
The following metrics are reported under node
section:
Free Memory
Available Memory
Provisional Memory
Available Flash
Provisional Flash
Cpu Time - User
Cpu Time - System
Cpu Idle Time
Available Ephemeral Disk Space
Available Persistent Storage
Ephemeral Storage - Free
Persistent Storage - Free
Request Rate
Average Node Latency
Number of Client Connections
Ingress Rate
Egress Rate
BigRedis Read/Write ops
BigRedis IO ops
BigRedis Throughput
BigRedis Memory - Free
aof rewrites
The following metrics are reported under shard
section:
AOF Rewrites In Progress
Avg TTL
BigStore IO
BigStore Throughput
BigStore Key Access Per Sec
BigStore Key Count - Flash
BigStore Key Count - RAM
BigRedis Fetch - RAM
BigRedis Fetch - Flash
BigRedis Writes - RAM
BigRedis Writes - Flash
available_flash
BigRedis Deletes - Flash
BigRedis IO Ratio - RAM
BigRedis IO Ratio - Flash
BigStore IO Reads
BigStore IO Writes
BigStore IO Deletes
BigStore Read Throughput
BIgStore Write Throughput
Clients Blocked
Clients Connected
Evicted Objects
Expired Objects
Last RDB Save Time
Memory Used
Redis Lua Heap Size
Peak Memory Used
RSS
Number of Keys
PubSub Channels
PubSub Patterns
RDB Changes
Read Hits
Read Misses
Total Requests
Write Hits
Write Misses
Memory Frag Ratio
Disk Frag Ratio
Number of Expires
Percent cores - User mode
Percent cores - System mode
Main Thread - User mode
Main Thread - System mode
Fork Process - User mode
Fork Process - System mode
objects
section in config.yml will help you filter out metrics from specific nodes/shard/db in your cluster(s). objects:
database: ['test1','test2', 'db.*']
node: ['172.*']
shard: ['3']
### This matches all names
- database: ['.*']
### This matches all database names that start with dev and database names that start with test
- database: ["dev.*", "test.*" ]
### This matches nothing, no metrics will be fetched
- nodes: []
### This matches nothing, no metrics will be fetched
- nodes: [""]
Please visit this page to get detailed instructions on password encryption. The steps in this document will guide you through the whole process.
Workbench is an in-built feature provided with each extension in order to assist you to fine tune the extension setup before you actually deploy it on the controller. Please review this document for how to use the Extensions WorkBench.
curl -u "youremail@example.com:yourRedisEnterprisePassword" https://your.redis.cluster.endpoint/v1/cluster
If your cluster is set-up over SSL, please use the --cacert
option to specify your keys.
Usually the endpoint is of the format:
https://localhost:9443/v1/cluster # port 9443 is the default SSL port to fetch metrics from Redis Enterprise cluster
or http://localhost:8080/v1/cluster # port 8080 is the default non-SSL port to fetch metrics from Redis Enterprise cluster
If the curl command gives a 200 OK
response, your cluster is reachable from Machine Agent. If not, please ensure connectivity from your machine agent host every Redis Enterprise cluster.
Always feel free to fork and contribute any changes directly via GitHub.
Name | Version |
---|---|
Extension Version: | 1.0.2 |
Tested On: | Redis Enterprise Software v5.4.x |
Operating System Tested On: | Mac OS, Linux |
Last updated On: | March 12, 2021 |
Change List | ChangeLog |
Note: While extensions are maintained and supported by customers under the open-source licensing model, they interact with agents and Controllers that are subject to AppDynamics’ maintenance and support policy. Some extensions have been tested with AppDynamics 4.5.13+ artifacts, but you are strongly recommended against using versions that are no longer supported.
Owner
Contributors
Categories
Products
AppDynamicsProgramming Languages
JavaLicense
Code Exchange Community
Get help, share code, and collaborate with other developers in the Code Exchange community.View Community