Monitoring AWS ElastiCache

Note: Learn about the other supported AWS services with our AWS documentation.

Metrics collection

Configuration data

  • ElastiCache Details

    • Cache Cluster Id
    • Cache Node Id
    • Cache Engine
    • Cache Engine Version
    • Cache Number Of Nodes
    • Cache Node Type
    • Create Time
    • Node Endpoint Address
    • Node Endpoint Port
    • Node ARN
    • Grouping Zone

Performance metrics

Host data

Available regardless of the cache engine used.

Name Description
CPU utilization The percentage of CPU utilization for the entire host.
Freeable memory The amount of free memory available on the host (RAM, buffers and cache).
Network bytes in The number of bytes the host has read from the network.
Network bytes out The number of bytes sent out on all network interfaces by the instance.
Swap usage The amount of swap used on the host.

Engine agnostic data

Name Description
Current connections The number of client connections, excluding connections from read replicas.
New connections The total number of connections that have been accepted by the server.
Evictions The number of keys that have been evicted due to the max memory limit.
Reclaimed The total number of key expiration events.
Current items The number of items in the cache.

Redis

Name Description
Bytes used for cache The total number of bytes allocated by Redis for all purposes, including the dataset, buffers, etc.
Cache hits The number of successful read-only key lookups in the main dictionary.
Cache misses The number of unsuccessful read-only key lookups in the main dictionary.
Replication bytes The number of bytes that the primary is sending to all of its replicas.
Replication lag The number of seconds that the the replica is behind in applying changes from the primary node.
HyperLog log-based commands The total number of HyperLog Log-based commands.
Save in progress This binary metric returns 1 whenever a background save (forked or forkless) is in progress, and 0 otherwise.
Get type commands The total number of read-only type commands.
Hash-based commands The total number of commands that are hash-based.
Key-based commands The total number of commands that are key-based.
List-based Commands The total number of commands that are list-based.
Set-based commands The total number of commands that are set-based.
Set type commands The total number of write types of commands.
Sorted set-based commands The total number of commands that are sorted set-based.
String-based commands The total number of commands that are string-based.

Memcached

Name Description
Bytes read into The number of bytes that have been read from the network by the cache node.
Bytes used for cache items The number of bytes used to store cache items.
Bytes written out The number of bytes that have been written to the network by the cache node.
CAS bad value The number of CAS requests the cache has received where the Cas value did not match the Cas value stored.
CAS hits The number of CAS requests the cache has received where the requested key was found and the Cas value matched.
CAS misses The number of Cas requests the cache has received where the key requested was not found.
Command flush The number of flush commands the cache has received.
Command get The number of get commands the cache has received.
Command set The number of set commands the cache has received.
Decrement request hits The number of decrement requests the cache has received where the requested key was found.
Decrement request misses The number of decrement requests the cache has received where the requested key was not found.
Delete request hits The number of delete requests the cache has received where the requested key was found.
Delete request misses The number of delete requests the cache has received where the requested key was not found.
Get requests hits The number of get requests the cache has received where the key requested was found.
Get request misses The number of get requests the cache has received where the key requested was not found.
Increment request hits The number of increment requests the cache has received where the key requested was found.
Increment request misses The number of increment requests the cache has received where the key requested was not found.
New items The number of new items the cache has stored.
Unused Memory The amount of memory not used by data.

Memcached (new version)

Name Description
Bytes used for hash The number of bytes currently used by hash tables.
Config get request The cumulative number of config get requests.
Config set request The cumulative number of config set requests.
Config touch request The cumulative number of touch requests.
Config number The current number of configurations stored.
Evicted unfetched The number of valid items evicted from the least recently used cache (LRU) which were never touched after being set.
Expired unfetched The number of expired items reclaimed from the LRU which were never touched after being set.
Slabs moved The total number of slab pages that have been moved.
Touch hits The number of keys that have been touched and were given a new expiration time.
Touch misses The number of items that have been touched, but were not found.

Required Permissions

  • cloudwatch:GetMetricData
  • elasticache:ListTagsForResource
  • elasticache:DescribeCacheClusters
  • elasticache:DescribeEvents

Configuration

Metrics for ElastiCache are pulled every 60 seconds, this can be changed via agent configuration in <agent_install_dir>/etc/instana/configuration.yml:

com.instana.plugin.aws.ec:
  cloudwatch_period: 60

To disable monitoring of ElastiCache instances use the following configuration:

com.instana.plugin.aws.ec:
  enabled: false

Monitoring multiple AWS accounts

Refer to the Monitoring multiple AWS accounts documentation to set up monitoring of multiple AWS accounts with one AWS agent in the same region.

To override which profiles should be used to monitor Elasticache, use the following configuration:

com.instana.plugin.aws.ec:
  profile_names:
    - 'profile2'
    - 'profile3'

Note: Defining profiles on service level will override global AWS configuration.

Filtering

Multiple tags can be defined, separated by a comma. Tags should be provided as a key-value pair separated by :. In order to make configuration easier, it is possible to define which tags you want to include in discovery or exclude from discovery. In case of defining tag in both lists (include and exclude), exclude list has higher priority. If there is no need for services filtering, the configuration should not be defined. It’s not mandatory to define all values in order to enable filtering.

Users are able to specify how often sensors will poll the AWS tagged resources using the tagged-services-poll-rate configuration property (default 300 seconds).

To define how often sensors will poll the tagged resources use following configuration:

com.instana.plugin.aws:
  tagged-services-poll-rate: 60 #default 300

To include services by tags into discovery use following configuration:

com.instana.plugin.aws.ec:
  include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)

To exclude services by tags from discovery use following configuration:

com.instana.plugin.aws.ec:
  exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

Instana Agent Tags

Please note that tags are only available in conjunction with the AWS Agent. More details on using tags are described here.