支持的监控指标

本页面列出了 Memorystore for Redis 可用的指标,并介绍了每个指标所衡量的内容。

如需了解如何查看这些指标,请参阅监控实例

Cloud Monitoring 指标

本部分列出并介绍了适用于 Memorystore for Redis 的 Cloud Monitoring 指标。

指标名称 说明
redis.googleapis.com/keyspace/avg_ttl 此指标用于衡量 Redis 数据库中所有设置了过期时间的键的平均存留时间 (TTL),以毫秒为单位。您可以使用此指标来了解缓存数据的生命周期,并确定实例中的键是否比预期更早或更晚过期。
redis.googleapis.com/clients/blocked

此指标用于跟踪因实例中正在运行阻塞命令而等待数据可用的客户端连接数。这些屏蔽命令包括 BLPOPBRPOPBRPOPLPUSH。被阻塞的客户端数量较多可能表明您的应用正在等待填充某些事件或键。

您可以监控此指标,了解应用的运行情况,尤其是在发现延迟时间意外增加时,这可能与客户端等待阻塞操作有关。

redis.googleapis.com/replication/master/slaves/lag

此指标用于衡量副本滞后于主实例的秒数。Memorystore for Redis 通过以下方式计算相应指标的值:获取当前时间,然后减去副本确认收到传入字节的消息的时间。

您可以使用此指标来确定副本是否落后于主实例。

redis.googleapis.com/replication/offset_diff

此指标用于跟踪未复制到副本的字节数。该指标表示主实例的复制字节偏移量与副本的复制字节偏移量之间的差值。如果这两个偏移量之间没有差异,则表示副本与主实例完全同步。

在故障切换过程中,当主实例将数据复制到副本时,您可能会注意到这些待处理字节数有所增加。

redis.googleapis.com/stats/cache_hit_ratio

此指标表示成功的 Redis 数据库调用与失败调用的比率。当 Redis 数据库返回调用者请求的值时,调用会成功。

缓存命中率越高,表示缓存被充分利用。这有助于提升应用的性能。

redis.googleapis.com/commands/calls

此指标用于衡量主实例上每分钟运行的 Redis 命令数量。其中包括所有开源 Redis 命令,例如 SET GETHSET 。此指标不会计算 Memorystore for Redis 命令(例如 createupdate)的数量。

redis.googleapis.com/clients/connected 此指标显示已连接到实例的客户端数量。您可以监控该指标,以确定实例上的负载。 如果连接的客户端数量接近 maxclients 限制,服务器可能会拒绝新的连接尝试。
redis.googleapis.com/stats/cpu_utilization

此指标用于衡量 Redis 服务器每分钟使用的 CPU 时间。此时间按系统用户空间和父级-子级关系细分。

CPU 秒数的值显示的是 Redis 服务器主进程的所有线程的总 CPU 秒数。如果您只想查看主线程的 CPU 使用情况,请查看“主线程 CPU 秒数”指标 (cpu_utilization_main_thread)。

高 CPU 利用率是导致 Redis 实例延迟时间增加的常见原因,因为它可能会导致命令处理延迟。通过监控此指标,您可以确定大量客户端的高负载是否导致 CPU 使用率过高。

redis.googleapis.com/stats/evicted_keys

此指标显示了 Memorystore for Redis 因实例达到 maxmemory 限制而从实例中逐出的键数。

通过监控此指标,您可以确定实例的内存大小是否足以满足工作负载需求。如果经常访问的数据从缓存中移除,则密钥逐出可能会影响应用的性能。

redis.googleapis.com/keyspace/keys_with_expiration 此指标会跟踪实例中配置了过期时间的键的数量。如果没有密钥具有到期时间,则相应指标的图表中会显示“无数据”。
redis.googleapis.com/keyspace/keys 此指标显示了数据库中存储的键的总数。如果未存储任何密钥,则相应指标的图表中会显示“无数据”。
redis.googleapis.com/stats/cpu_utilization_main_thread 此指标用于衡量 Redis 服务器主线程使用的 CPU 秒数。此指标按系统用户空间和父级-子级关系细分。您可以监控该指标,以识别主线程上发生的 CPU 使用率峰值。
redis.googleapis.com/stats/memory/maxmemory 此指标表示实例中密钥可以使用的最大内存量 (maxmemory)。达到此限制后,Memorystore for Redis 会从实例中逐出键。此逐出过程会根据为实例配置的逐出政策进行。
redis.googleapis.com/stats/memory/usage_ratio 此指标显示了实例的当前内存使用量,以其最大内存限制的比率表示。您可以监控该指标,以确定实例距离其容量上限还有多远。根据实例的配置,达到此限制会触发键逐出流程。
redis.googleapis.com/stats/keyspace_misses

此指标用于跟踪主字典中键查找失败的次数。每次客户端尝试访问数据库中不存在的键时,该指标都会递增。

该指标用于计算缓存命中率,以衡量应用使用缓存的效率。如果键空间未命中次数较多,通常表示应用请求的数据不在缓存中。如果应用必须从速度较慢的后端数据存储区提取该数据,则可能会导致延迟时间增加。

redis.googleapis.com/replication/role

此指标返回一个值,用于标识复制组中节点的角色。值 1 表示节点是主节点;值 0 表示节点是副本。

您可以使用此指标监控节点的状态,尤其是在角色可能会切换的故障切换事件期间。此外,您还可以跟踪标准层级实例的健康状况和拓扑,这些实例通过复制支持高可用性。

redis.googleapis.com/persistence/rdb/bgsave_in_progress

此指标会返回一个值,用于标识 Redis 数据库 (RDB) 的后台保存 (BGSAVE) 操作是否处于活动状态。值为 1 表示后台 RDB 保存处于活动状态;值为 0 表示没有后台保存正在运行。

您可以使用此指标跟踪自动 RDB 快照或手动导出。此外,通过监控该指标,您可以将内存用量或延迟时间的短暂峰值与正在进行的持久性任务相关联。

redis.googleapis.com/stats/pubsub/channels 此指标用于跟踪实例中具有有效客户端订阅的 Pub/Sub 渠道的全球数量。该指标用于衡量客户通过使用 SUBSCRIBEPSUBSCRIBE 命令订阅的唯一频道的总数。
redis.googleapis.com/stats/pubsub/patterns 此指标用于跟踪实例中具有有效客户端订阅的 Pub/Sub 模式的全局数量。此指标衡量的是客户订阅的唯一模式的总数。客户端通常使用 PSUBSCRIBE 命令创建这些订阅。
redis.googleapis.com/stats/reject_connections_count

此指标用于跟踪实例因以下原因而拒绝的连接尝试次数:

  • maxclients 限制:服务器达到允许的并发客户端连接数上限。
  • 内存压力:实例因内存利用率过高而拒绝新连接。
  • TLS 连接无效:启用了 传输加密的实例存在与 TLS 相关的问题。

通过监控该指标,您可以发现容量问题。如果被拒绝的连接数增加,您可能需要扩缩实例以处理更多连接,或者增加实例的内存容量。此外,在强制执行加密时,您可以使用该指标来帮助调试客户端连接问题。

redis.googleapis.com/replication/master_repl_offset 此指标表示主实例生成并发送到副本的总字节数。通过从该偏移量中减去副本的复制字节偏移量,您可以计算出复制延迟的大小。如果这两个偏移量值之间没有差异,则表示副本与主实例完全同步。
redis.googleapis.com/replication/master/slaves/offset 此指标表示副本从主实例接收的字节总数。通过从主实例的复制字节偏移量中减去此偏移量,您可以计算出复制延迟的大小。如果这两个偏移量值之间没有差异,则表示副本与主实例完全同步。
redis.googleapis.com/stats/memory/system_memory_usage_ratio 此指标表示正在使用的内存量,以占系统可用总内存的比率表示。可用系统总内存是指您为实例预配的内存,以及 Memorystore for Redis 为管理开销进程提供的额外内存。
redis.googleapis.com/stats/memory/system_memory_overload_duration

此指标用于衡量实例处于系统内存过载模式的总时长(以微秒为单位)。

您可以使用此指标跟踪实例的内存用量超出系统安全运行阈值的时段。如果指标中的值持续偏高,可能表示实例因开销进程的内存不足而面临性能下降或不稳定的风险。

redis.googleapis.com/commands/usec_per_call

此指标表示每次 Redis 命令调用超过 1 分钟的平均时间。此时间以微秒为单位。

该指标按各个命令细分。这样,您就可以监控特定操作(例如 GETSETHSET)的性能。

您还可以使用该指标来衡量实例延迟时间。通过比较不同时间点的每次调用时间,您可以发现性能变化并调查延迟时间差异的原因。

redis.googleapis.com/stats/connections/total 此指标表示服务器接受的连接总数。
redis.googleapis.com/commands/total_time 此指标用于衡量在过去一秒内,每个开源 Redis 命令(例如 SET GET HSET)所花费的总时间(以微秒为单位)。例如,如果 SET 命令使用 80 万微秒,则意味着一个 CPU 核心的 80% 需要处理该命令的所有实例。
redis.googleapis.com/stats/network_traffic 此指标表示发送到 Redis 或从 Redis 发送的字节总数。此计数包括命令、载荷数据和任何分隔符的字节数。
redis.googleapis.com/server/uptime 此指标表示正在运行的 Redis 服务器进程的正常运行时间。
redis.googleapis.com/stats/memory/usage 此指标表示 Redis 服务器进程分配的字节总数。

实例详情指标

本部分列出并介绍了 Google Cloud 控制台的实例详情页面上可用的实例指标。

指标名称 说明
待复制的字节数

此指标显示写入主节点但未复制到副本节点的数据量。表示主实例的复制字节偏移量与副本的偏移量之间的差值。

如果相应指标的值为零,则表示副本已与主实例完全同步。高值通常出现在写入活动频繁的时期或故障切换过程中,因为此时正在同步数据。

缓存命中率

此指标显示成功的 Redis 数据库调用(命中)与总调用次数(命中次数加未命中次数)的比率。该指标表示应用使用缓存的效率。

缓存命中率越高,表示有更多请求直接从缓存中得到满足。这有助于提高应用的性能,因为它可以缩短延迟时间。

较低或不断下降的比率通常表示您的应用请求的数据不在缓存中。这可能需要您增加实例的大小或调整数据填充逻辑。

通话

此指标显示了主实例上每分钟运行的 Redis 命令数量。该指标会统计所有开源 Redis 命令,例如 SETGETHSET。不过,该指标不包括 Memorystore for Redis 特有的命令,例如 createupdate

您可以使用该指标来衡量和分析实例的延迟时间。 通过比较通话量与通话时长,您可以发现效果变化,并调查可能导致延迟高峰的原因。

已连接的客户端 / 已阻止的客户端

此指标显示以下信息:

  • 已连接的客户端:已连接到实例的客户端总数。您可以使用此信息来确定实例的总体负载。如果连接的客户端数量接近 maxclients 限制,服务器可能会开始拒绝新的连接尝试。

    跟踪已连接的客户端数量有助于您确定是否接近需要进行伸缩或连接池化的连接限制。

  • 被阻塞的客户端:因运行阻塞命令(例如 BLPOPBRPOPBRPOPLPUSH)而等待数据的客户端连接数。

    被阻止的客户端数量较多可能表明您的应用在等待特定事件或等待填充键。这可能会导致应用延迟时间增加。

CPU 秒

此指标显示实例在特定时间段内使用的总 CPU 时间(以秒为单位)。

通过监控此指标,您可以确定实例的 CPU 使用率是否较高。这是导致延迟时间增加的常见原因,因为 CPU 利用率过高可能会延迟命令的处理。您还可以使用此指标来确定大量客户端的高负载是否会提高 CPU 使用率。

逐出的密钥数 / 过期的密钥数

此指标显示以下信息:

  • 逐出的键:Memorystore for Redis 因实例达到最大内存 (maxmemory) 限制而从实例中移除(逐出)的键的数量
  • 过期键:达到过期时间限制并被删除的键的数量
实例正常运行时间

此指标表示 Redis 服务器进程持续运行的总时长。如果实例因故障切换、维护或意外崩溃而重启,相应指标的值会降至零,然后从新的开始时间再次增加。

您可以使用此指标来识别意外的服务中断、故障切换事件或维护窗口,并将其与其他性能变化相关联。

数据库中的键

此指标显示了实例中每个 Redis 数据库中存储的键的总数。该指标会跟踪数据库中的所有键,无论这些键是否设置了失效时间。 如果数据库中未存储任何密钥,则相应指标的图表中会显示“无数据”,而不是零值。

您可以监控该指标,以验证实例是否接收流量并存储数据。指标突然下降可能表示数据丢失、大规模逐出或实例重启。

内存使用量 / 最大内存 此指标显示了实例的内存使用量与最大内存 (maxmemory) 限制的比较情况。此限制表示密钥在实例中可以使用的最大内存量。达到此限制后,Memorystore for Redis 会根据为实例配置的逐出政策开始逐出键。
网络输入/输出字节数

此指标显示实例在给定时间段内发送和接收的字节数。此网络流量包括来自命令、载荷数据和分隔符的数据。

您可以使用此指标来了解应用的网路负载、识别带宽瓶颈,并将网络峰值与延迟时间变化或应用性能相关联。

已接收的连接数/已拒绝的连接数 此指标显示在给定时间段内成功的(已接收)网络连接尝试次数和被拒绝的连接尝试次数。您可以使用此指标来了解传入连接速率、检测连接风暴,以及诊断客户端连接或容量问题。

RDB 快照指标

本部分列出并介绍了可帮助您管理 Memorystore for Redis 的 RDB 快照的指标。

快照监控指标

本部分列出并介绍了 Memorystore for Redis 的快照监控指标。

指标名称 说明
redis.googleapis.com/rdb/enabled 此指标用于指示实例是否启用了 RDB 快照模式。
redis.googleapis.com/rdb/snapshot/time_until_next_run 此指标表示距离下一次计划快照开始运行的时间(以秒为单位)。

快照状态指标

本部分列出并介绍了 Memorystore for Redis 的快照状态指标。

指标名称 说明
redis.googleapis.com/rdb/snapshot/in_progress 此指标用于指示 RDB 快照是否正在进行。如果该指标的值为 true,则表示正在进行快照。
redis.googleapis.com/rdb/snapshot/elapsed_time 此指标用于衡量创建当前快照所用的时间。
redis.googleapis.com/rdb/snapshot/attempt_count 此指标表示每分钟的快照尝试次数。
redis.googleapis.com/rdb/snapshot/last_status 此指标表示最近一次快照尝试的状态。
redis.googleapis.com/rdb/snapshot/last_success_duration 此指标表示写入上一个成功快照所需的总时间。此时间不包括失败的尝试。
redis.googleapis.com/rdb/snapshot/last_success_age 此指标表示自上一个成功快照开始以来经过的时间。

快照恢复指标

本部分列出并介绍了 Memorystore for Redis 的快照恢复指标。

指标名称 说明
redis.googleapis.com/rdb/recovery/in_progress 此指标用于指示是否正在从 RDB 快照进行恢复。如果此指标的值为 true,则表示恢复正在进行中。
redis.googleapis.com/rdb/recovery/elapsed_time 此指标表示从 RDB 快照正在进行的恢复所用的时间增加。
redis.googleapis.com/rdb/recovery/estimated_recovery_time 此指标表示使用上一个成功的 RDB 快照进行恢复时所需的预计时间。
redis.googleapis.com/rdb/recovery/estimated_remaining_time 此指标表示完成从 RDB 快照恢复的剩余时间。
redis.googleapis.com/rdb/recovery/attempts_since_last_success 此指标表示自上次成功从 RDB 快照恢复以来的恢复尝试次数。
redis.googleapis.com/rdb/recovery/last_status 此指标表示最近一次从 RDB 快照恢复的状态。
redis.googleapis.com/rdb/recovery/last_duration 此指标表示恢复上一个 RDB 快照所用的时间。
redis.googleapis.com/rdb/recovery/total_bytes_count 此指标表示 RDB 快照的大小。
redis.googleapis.com/rdb/recovery/loaded_bytes_count 此指标表示从 RDB 快照恢复期间加载的字节数。如果恢复处于非活跃状态,则字节数为 0