• /
  • Log in

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 3.0 or higher.

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.

A screenshot of the guided install CLI.

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:

Configure the integration

An integration's YAML-format configuration is where you can place required login credentials and configure how data is collected. Which options you change depend on your setup and preference.

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

Config commands include:

Activate remote monitoring

The remote_monitoring parameter enables remote monitoring and multi-tenancy for this integration.

Activating remote_monitoring may change some attributes and/or affect your configured alerts. For more information, see remote monitoring in on-host integrations.

Important

Infrastructure agent version 1.2.25 or higher is required to use remote_monitoring.

Environment variable passthroughs

Environment variables can be used to control config settings, and are then passed through to the infrastructure agent. For instructions on how to use this feature, see Configure the infrastructure agent.

Important

With secrets management, you can configure on-host integrations with New Relic infrastructure's agent to use sensitive data (such as passwords) without having to write them as plain text into the integration's configuration file. For more information, see Secrets management.

For more about the general structure of on-host integration configuration, see Configuration.

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.

For more help

If you need more help, check out these support and learning resources:

Create issueEdit page
Copyright © 2021 New Relic Inc.