The Redis integration collects metrics related to performance and usage. Performance metrics focus on CPU, memory, and network throughput, and usage metrics focus on keys, commands, and replication. The integration also collects Redis logs and parses them into a JSON payload. During this process, the symbols for role and level are transformed into a human readable format.
For more information about Redis, see redis.io.
Prerequisites
To collect and ingest Redis telemetry, you must install Ops Agent version 2.7.0 or higher.
This receiver supports Redis version 6.2.
Configure the Ops Agent for Redis
Following the guide for Configuring the Ops Agent, add the required elements to collect logs from your Redis instances, and restart the agent.
Example configuration
The following command creates the configuration file to collect and ingest logs for Redis and restarts the Ops Agent on Linux.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
receivers:
redis:
type: redis
service:
pipelines:
redis:
receivers:
- redis
metrics:
receivers:
redis:
type: redis
password: Strong_Password123
service:
pipelines:
redis:
receivers:
- redis
EOF
sudo service google-cloud-ops-agent restart
Configure logs collection
To ingest logs from Redis, you must create receivers for the logs Redis produces
and then create a pipeline for the new receivers. To configure a receiver for
your redis
logs, specify the following fields:
Field | Default | Description |
---|---|---|
type |
This value must be redis . |
|
include_paths |
[/var/log/redis/redis-server.log, /var/log/redis_6379.log, /var/log/redis/redis.log, /var/log/redis/default.log, /var/log/redis/redis_6379.log] |
A list of filesystem paths to read by tailing each file. A wild card (* ) can be used in the paths; for example, /var/log/redis/*.log . |
exclude_paths |
[] |
A list of filesystem path patterns to exclude from the set matched by include_paths . |
wildcard_refresh_interval |
60s |
The interval at which wildcard file paths in include_paths are refreshed. Given as a time duration, for example 30s or 2m . This property might be useful under high logging throughputs where log files are rotated faster than the default interval. |
What is logged
Redis logs contain the following fields in the
LogEntry
:
Field | Type | Description |
---|---|---|
jsonPayload.roleChar |
string | Redis role character (X, C, S, M) |
jsonPayload.role |
string | Translated from Redis role character (sentinel, RDB/AOF_writing_child, slave, master) |
jsonPayload.level |
string | Log entry level |
jsonPayload.pid |
number | Process ID |
jsonPayload.message |
string | Log message |
severity |
string (LogSeverity ) |
Log entry level (translated) |
timestamp |
string (Timestamp ) |
Time the entry was logged |
Configure metrics collection
To collect metrics from Redis, you must create a receiver for Redis metrics and then create a pipeline for the new receiver. To configure a receiver for your Redis metrics, specify the following fields:
Field | Default | Description |
---|---|---|
type |
This value must be redis . |
|
address |
localhost:6379 |
The URL exposed by Redis. |
collection_interval |
60s |
A time.Duration value, such as 30s or 5m . |
password |
The password used to connect to the server. | |
insecure |
true |
Sets whether or not to use a secure TLS connection. If set to false , then TLS is enabled. |
insecure_skip_verify |
false |
Sets whether or not to skip verifying the certificate. If insecure is set to true , then the insecure_skip_verify value is not used. |
cert_file |
Path to the TLS certificate to use for TLS-required connections. | |
key_file |
Path to the TLS key to use for TLS-required connections. | |
ca_file |
Path to the CA certificate. As a client, this verifies the server certificate. If empty, the receiver uses the system root CA. |
What is monitored
The following table provides the list of metrics that the Ops Agent collects from the Redis instance.
Metric type | |
---|---|
Kind, Type Monitored resources |
Labels |
workload.googleapis.com/redis.clients.blocked
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.clients.connected
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.clients.max_input_buffer
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.clients.max_output_buffer
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.commands.processed
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.connections.received
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.connections.rejected
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.cpu.time
|
|
CUMULATIVE , DOUBLE gce_instance |
state
|
workload.googleapis.com/redis.keys.evicted
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.keys.expired
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.keyspace.hits
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.keyspace.misses
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.latest_fork
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.memory.fragmentation_ratio
|
|
GAUGE , DOUBLE gce_instance |
|
workload.googleapis.com/redis.memory.lua
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.memory.peak
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.memory.rss
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.memory.used
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.net.input
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.net.output
|
|
CUMULATIVE , INT64 gce_instance |
|
workload.googleapis.com/redis.rdb.changes_since_last_save
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.replication.backlog_first_byte_offset
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.replication.offset
|
|
GAUGE , INT64 gce_instance |
|
workload.googleapis.com/redis.slaves.connected
|
|
GAUGE , INT64 gce_instance |
Sample dashboard
You can view the metrics from this integration using a sample Cloud Monitoring dashboard. Complete the Installing sample dashboards procedures to import the Redis GCE Overview dashboard from the Sample library and view charts that display your Redis metrics.Verify the configuration
You can use the Logs Explorer and Metrics Explorer to verify that you correctly configured the Redis receiver. It might take one or two minutes for the Ops Agent to begin collecting logs and metrics.
To verify the logs are ingested, go to the Logs Explorer and run the following query to view the Redis logs:
resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/redis")
To verify the metrics are ingested, go to
Metrics Explorer
and run the following query in the MQL tab.
fetch gce_instance
| metric 'workload.googleapis.com/redis.connections.received'
| align rate(1m)
| every 1m