• /
  • EnglishEspañol日本語한국어Português
  • Log inStart now

Redis monitoring integration

Our Redis integration reports critical performance data from your Redis server to New Relic products. You can view this metric data and inventory data in pre-built dashboards, create alert policies, and create custom queries and charts. You can also specify keys that are important to your application and get information about their length.

Read on to install the integration, and to see what data we collect.

Compatibility and requirements

Our integration is compatible with Redis versions from 3.0 to 7.0.

Before installing the integration, make sure that you meet the following requirements:

The integration obtains data by executing Redis commands:

  • INFO command: Data from the INFO command populates metric data and some inventory data.
  • CONFIG GET command: Most inventory data comes from this command.
    • In managed Redis installations without permissions to execute the CONFIG command (for example, AWS ElastiCache), the execution of this command can be disabled with the config_inventory: false configuration option.
  • Key length acquisition: Depending on the type of key, these commands are used:

For key length data collection, the agent uses pipelining to minimize the impact on your Redis performance. However, if you are collecting the length of many keys, your Redis performance may be affected. For this reason, the agent includes a default key limit (but this limit can be overwritten).

Important

If you edited the names of the Redis commands mentioned above, the integration will not be able to retrieve the Redis data.

Quick start

Instrument your Redis server quickly and send your telemetry data with guided install. Our guided install creates a customized CLI command for your environment that downloads and installs the New Relic CLI and the infrastructure agent.

Ready to get started? Click one of these buttons to try it out.

Guided install

Install and activate

To install the Redis integration, follow the instructions for your environment:

Additional notes:

Did this doc help with your installation?

Create a New Relic user for your Redis server

If you're using Redis 6+ and using access control lists (ACLs) to control access to your instance, you may want to create a newrelic user for the integration. Use this command to create and grant the required permissions to your user:

bash
$
ACL SETUSER newrelic on >'YOUR_SELECTED_PASSWORD' ~* +INFO +CONFIG|GET +SELECT +TYPE +LLEN +SCARD +ZCOUNT +HLEN

Configure the integration

There are several ways to configure the integration, depending on how it was installed:

Use the YAML configuration to place required login credentials and configure how your data is collected, depending on your setup and preference.

The configuration file has common settings applicable to all integrations, like interval, timeout, inventory_source. To learn more about these common settings, see our YAML configuration format.

Important

If you're still using our legacy configuration/definition files, use our older, standard configuration foramt.

Specific settings related to Redis are defined using the env section of the configuration file. These settings control the connection to your Redis instance as well as other security settings and features.

Redis instance settings

The Redis integration collects both Metrics(M) and Inventory(I) information. In the table, use the Applies To column for the settings available to each collection:

Setting

Description

Default

Applies To

HOSTNAME

Redis server hostname.

localhost

M/I

PORT

Port where Redis server is listening.

6379

M/I

USERNAME

Username to use when connecting to the Redis server. Use only with Redis 6+ if ACL is enabled.

N/A

M/I

PASSWORD

Password to use when connecting to the Redis server. Use only with Redis servers if REQUIREPASS or ACL is enabled.

N/A

M/I

UNIX_SOCKET_PATH

Path to Unix socket file on which Redis server is listening. Use this instead of Hostname/Port.

N/A

M/I

USE_UNIX_SOCKET

Set to true to uniquely identify the monitored entities when using Unix sockets.

false

M/I

USE_TLS

Use TLS when communicating with the Redis server.

false

M/I

TLS_INSECURE_SKIP_VERIFY

Disable server name verification when connecting over TLS.

false

M/I

KEYS

List of the keys for retrieving their lengths.

N/A

M

KEYS_LIMIT

Max number of keys to retrieve their lengths.

30

M

CONFIG_INVENTORY

Set to 'false' in environments where the Redis CONFIG command is not allowed (for example, AWS or ElastiCache).

true

I

RENAMED_COMMANDS

Map default Redis commands to their renamed form.

N/A

M/I

REMOTE_MONITORING

Enable multi-tenancy monitoring.

true

M/I

METRICS

Set to true to enable metrics-only collection.

false

INVENTORY

Set to true to enable inventory-only collection.

false

The values for these settings can be defined in several ways:

  • Add the value directly to the configuration file. This is the most common way.
  • Replace the values from environment variables using the {{}} notation. This requires infrastructure agent 1.14.0+. For more on this, see more on infrastructure agent passthrough environment variables.
  • Use secrets management to protect sensible information, such as passwords, so that it's not exposed in plain text on the configuration file. For more information, see secrets management.

Labels and custom attributes

You can also decorate your metrics with labels. Labels allow you to add key/value pair attributes to your metrics so that you can query, filter, or group your metrics.

Even though our default sample configuration file includes examples of labels, they're optional. You can remove, modify, or add new ones.

labels:
env: production
role: load_balancer

Example configurations

Find and use data

Data from this service is reported to an integration dashboard.

Metrics are attached to the RedisSample and RedisKeyspaceSample event types. You can query this data for troubleshooting purposes or to create custom charts and dashboards.

For more on how to find and use your data, see Understand integration data.

Metric data

The Redis integration collects the following metric data attributes:

Redis sample metrics

These attributes are attached to the RedisSample event type:

Name

Description

cluster.connectedSlaves

Number of connected slaves.

db.aofLastRewriteTimeInMilliseconds

Duration of the last AOF rewrite operation in milliseconds.

db.aofLastBgrewriteStatus

Boolean representing status of the last AOF background rewrite operation.

db.aofLastWriteStatus

Boolean representing status of the last AOF write operation.

db.evictedKeysPerSecond

Number of evicted keys due to maxmemory limit per second.

db.expiredKeysPerSecond

Number of key expiration events per second.

db.keyspaceHitsPerSecond

Number of successful lookups of keys in the main dictionary per second.

db.keyspaceMissesPerSecond

Number of failed lookup of keys in the main dictionary per second.

db.latestForkUsecMilliseconds

Duration of the latest fork operation in milliseconds.

db.rdbBgsaveInProgress

Boolean. A flag indicating a RDB save is ongoing.

db.rdbChangesSinceLastSave

Number of changes since the last dump.

db.rdbLastBgsaveStatus

Boolean representing the status of the last RDB save operation.

db.rdbLastBgsaveTimeMilliseconds

Duration of the last RDB save operation in milliseconds.

db.rdbLastSaveTime

Epoch-based timestamp of last successful RDB save in seconds.

db.syncFull

Count of the number times slaves have fully synchronized with this master.

db.syncPartialErr

Count of the number of times partial syncs have failed to complete.

db.syncPartialOk

Count of the number of times partial syncs have completed.

net.blockedClients

Number of clients pending on a blocking call (BLPOP, BRPOP, BRPOPLPUSH).

net.clientBiggestInputBufBytes

The biggest input buffer among current client connections.

net.clientLongestOutputList

The longest output list among current client connections.

net.commandsProcessedPerSecond

Number of commands processed by the server per second.

net.connectedClients

Number of client connections (excluding connections from slaves).

net.connectionsReceivedPerSecond

Number of connections accepted by the server per second.

net.inputBytesPerSecond

Total number of bytes input per second.

net.outputBytesPerSecond

Total number of bytes output per second.

net.pubsubChannels

Global number of pub/sub channels with client subscriptions.

net.pubsubPatterns

Global number of pub/sub pattern with client subscriptions.

net.rejectedConnectionsPerSecond

Number of connections per second rejected because of maxclients limit.

software.uptimeMilliseconds

Number of milliseconds since Redis server start.

system.memFragmentationRatio

Ratio between used_memory_rss and used_memory.

system.totalSystemMemoryBytes

The amount of memory in bytes available in the instance where Redis is running.

system.usedCpuSysMilliseconds

System CPU consumed by the Redis server in milliseconds.

system.usedCpuSysChildrenMilliseconds

System CPU consumed by the background processes in milliseconds.

system.usedCpuUserMilliseconds

User CPU consumed by the Redis server in milliseconds.

system.usedCpuUserChildrenMilliseconds

User CPU consumed by the background processes in milliseconds.

system.usedMemoryBytes

The total number of bytes allocated by Redis using its allocator (either standard libc, jemalloc, or an alternative allocator such as tcmalloc).

system.usedMemoryLuaBytes

Number of bytes used by the Lua engine.

system.usedMemoryPeakBytes

The peak memory consumed by Redis in bytes.

system.usedMemoryRssBytes

Number of bytes that Redis allocated as seen by the operating system (also known as resident set size). This is the number reported by tools such as top(1) and ps(1).

Keyspace metrics

The Redis integration collects the following keyspace metadata and metrics. These attributes are attached to the RedisKeyspaceSample event type:

Name

Description

db.avgTtl

The average time to live (TTL) in milliseconds of keys that have an expiration set in the database being reported on.

db.keys

Number of keys in the database being reported on.

db.keyspace

Redis database index, which is the integer number (usually a number between 0 and 15). Format: db followed by the database index. For example: db0, db1, db2, etc.

db.expires

Number of keys with an expiration in the database being reported on.

Inventory data

Inventory data includes everything reported by the Redis CONFIG GET command, with the exception of requirepass, which stores the password to the Redis server. For more on inventory data, see Understand inventory data.

Other system data

The Redis integration collects these additional attributes about your Redis service:

Name

Description

software.version

The version of the Redis server. Example: 3.2.3.

cluster.role

Either master or slave, depending on the role of the Redis node being monitored.

Check the source code

This integration is open source software. That means you can browse its source code and send improvements, or create your own fork and build it.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.