Redis 的指标 - Amazon ElastiCache for Redis
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Redis 的指标

Amazon/ElastiCache 命名空间包括以下 Redis 指标。

ReplicationLagEngineCPUUtilization 之外,这些指标均源自 Redis info 命令。每项指标均是按照缓存节点级计算的。

如需 Redis info 命令的完整文档,请参阅 http://redis.io/commands/info

另请参见

指标 描述 单位
ActiveDefragHits 活动碎片整理进程每分钟执行的值重新分配数。这是从 Redis INFOactive_defrag_hits 统计数据中得出的。 Number
AuthenticationFailures 使用 AUTH 命令向 Redis 进行身份验证的失败尝试总次数。您可以使用 ACL LOG 命令查找有关个人身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。 计数
BytesUsedForCache Redis 为所有目的(包括数据集、缓冲区等)分配的字节的总数。这是从 Redis INFOused_memory 统计数据中得出的。 字节
Dimension: Tier=Memory(对于使用数据分层功能的 Redis 集群):内存中用于缓存的总字节数。 字节
Dimension: Tier=SSD(对于使用数据分层功能的 Redis 集群):SSD 中用于缓存的总字节数。 字节
BytesReadFromDisk 每分钟从磁盘读取的总字节数。仅支持使用数据分层功能的集群。 字节
BytesWrittenToDisk 每分钟写入磁盘的总字节数。仅支持使用数据分层功能的集群。 字节
CacheHits 主字典中成功的只读键查找次数。这是从 Redis INFOkeyspace_hits 统计数据中得出的。 计数
CacheMisses 主字典中失败的只读键查找次数。这是从 Redis INFOkeyspace_misses 统计数据中得出的。 计数
CommandAuthorizationFailures 用户运行其无权限调用的命令的失败尝试次数。您可以使用 ACL LOG 命令查找有关个人身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。 计数
CacheHitRate 指示 Redis 实例的使用效率。如果缓存比率低于 0.8 左右,则意味着大量的密钥被移出、过期或不存在。这是使用 cache_hitscache_misses 统计数据按以下方式计算的:cache_hits /(cache_hits + cache_misses) 百分比
CurrConnections 客户端连接数,不包括来自只读副本的连接。ElastiCache 使用两到四个连接来监控各种情况下的集群。这是根据 Redis INFO 中的 connected_clients 统计数据得出的。 计数
CurrItems 缓存中的项目数。此值根据以下方法获得的 Redis keyspace 统计数据得出:计算整个密钥空间中所有密钥的总和。 计数
Dimension: Tier=Memory(对于使用数据分层功能的 Redis 集群)。内存中的项目数。 计数
Dimension: Tier=SSD(固态硬盘)(对于使用数据分层功能的 Redis 集群)。SSD 中的项目数。 计数
DatabaseMemoryUsagePercentage 正在使用的集群的可用内存的百分比。这是使用 used_memory/maxmemoryRedis INFO 计算得来的。 百分比
DatabaseMemoryUsageCountedForEvictPercentage 正在使用的集群中可用内存的百分比(不含用于开销和 COB 的内存)。这是使用 used_memory-mem_not_counted_for_evict/maxmemoryRedis INFO 计算得来的。 百分比
DB0AverageTTL 根据 Redis INFO 命令中的 keyspace 统计数据中公开 DBO 的 avg_ttl 毫秒
EngineCPUUtilization

提供 Redis 引擎线程的 CPU 使用率。由于 Redis 是单线程的,您可以使用该指标来分析 Redis 进程本身的负载。EngineCPUUtilization 指标更精确地呈现了 Redis 流程。您可以将其与 CPUUtilization 指标配合使用。CPUUtilization 公开服务器实例整体的 CPU 使用率,包括其他操作系统和管理流程。对于有四个或更多 vCPU 的较大节点类型,可使用 EngineCPUUtilization 指标来监控和设置扩展阈值。

注意

在 ElastiCache 主机上,后台进程将监控主机以提供托管式数据库体验。这些后台进程可能会占用很大一部分 CPU 工作负载。这在具有两个以上 vCPU 的大型主机上影响不大,但在 vCPU 个数不超过 2 个的小型主机上影响较大。如果仅监控 EngineCPUUtilization 指标,您将无法发现因 Redis 或后台监控进程的 CPU 使用率过高而导致主机过载情况。因此,我们建议对于具有不超过两个 vCPU 的主机,还需要监控 CPUUtilization 指标。

百分比
Evictions 由于 maxmemory 限制而被驱逐的密钥数。这是根据 Redis INFO 中的 evicted_keys 统计数据得出的。 计数
GlobalDatastoreReplicationLag 此为辅助区域的主节点与主区域的主节点之间的滞后。对于已启用集群模式的 Redis,滞后表示分片之间的最大延迟。
IsPrimary 指示节点是否为当前分区/集群的主节点。指标可以是 0(非主节点)或 1(主节点)。 计数
KeyAuthorizationFailures 用户访问其无权限访问的密钥的失败尝试次数。您可以使用 ACL LOG 命令查找有关个人身份验证失败的更多信息。我们建议为此设置告警以检测未经授权的访问尝试。 计数
KeysTracked Redis 密钥跟踪所跟踪的密钥数所占 tracking-table-max-keys 的百分比。密钥跟踪用于帮助客户端侧缓存,并在修改密钥时通知客户端。 计数
MemoryFragmentationRatio 指示 Redis 引擎的内存分配的效率。某些阈值将表示不同的行为。建议的值是让碎片化大于 1.0。这是根据 Redis INFO 中的 mem_fragmentation_ratio statistic 计算得来的。 Number
NewConnections 在此期间,服务器接受的连接总数。这是根据 Redis INFO 中的 total_connections_received 统计数据得出的。 计数
NumItemsReadFromDisk 每分钟从磁盘检索的项目总数。仅支持使用数据分层功能的集群。 计数
NumItemsWrittenToDisk 每分钟写入磁盘的项目总数。仅支持使用数据分层功能的集群。 计数
PrimaryLinkHealthStatus 此状态有两个值:0 或 1。值为 0 表示 Elasticache 主节点中的数据未与 EC2 上的 Redis 同步。值为 1 表示数据已同步。如需完成迁移,请使用 CompleteMigration API 操作。 Boolean
Reclaimed 密钥过期事件的总数。这是根据 Redis INFO 中的 expired_keys 统计数据得出的。 计数
ReplicationBytes 对于重复配置中的节点,ReplicationBytes 报告主项向其所有副本发送的字节数。此指标代表复制组上的写入负载。这是根据 Redis INFO 中的 master_repl_offset 统计数据得出的。 字节
ReplicationLag 该指标仅适用于作为只读副本运行的节点。它代表副本在应用主节点的改动方面滞后的时间(以秒为单位)。对于 Redis 引擎版本 5.0.6 和更高版本,滞后以毫秒计。
SaveInProgress 只要背景保存(forked 或 forkless)在进行中,此二进制指标均返回 1,否则会返回 0。在快照和同步期间,通常使用背景保存进程。这些操作会导致性能下降。使用 SaveInProgress 指标,您可以诊断性能下降是否由背景保存进程造成。这是根据 Redis INFO 中的 rdb_bgsave_in_progress 统计数据得出的。 计数

EngineCPUUtilization 可用性

Amazon下面列出的 区域适用于所有支持的节点类型。

区域 区域名称
us-east-2 美国东部(俄亥俄)
us-east-1 美国东部(弗吉尼亚北部)
us-west-1 美国西部(加利福尼亚北部)
us-west-2 美国西部(俄勒冈)
ap-northeast-1 亚太区域(东京)
ap-northeast-2 亚太地区(首尔)
ap-northeast-3 亚太地区(大阪)
ap-east-1 亚太地区(香港)
ap-south-1 亚太地区(孟买)
ap-southeast-1 亚太地区(新加坡)
ap-southeast-2 亚太地区(悉尼)
ca-central-1 加拿大(中部)
cn-north-1 中国(北京)
cn-northwest-2 中国(宁夏)
me-south-1 Middle East (Bahrain)
eu-central-1 欧洲(法兰克福)
eu-west-1 欧洲(爱尔兰)
eu-west-2 欧洲(伦敦)
eu-west-3 欧洲 (巴黎)
eu-south-1 欧洲(米兰)
af-south-1 非洲(开普敦)
eu-north-1 欧洲(斯德哥尔摩)
sa-east-1 南美洲(圣保罗)

以下是一些类型的命令的集合,派生自 info commandstats。commandstats 部分提供基于命令类型的统计数据,包括调用次数、这些命令消耗的总 CPU 时间以及每个命令执行所消耗的平均 CPU 时间。对于每种命令类型,都会添加以下行:cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX

下面列出的延迟指标是使用 Redis INFO 中的 commandstats 统计数据计算得出的。计算方式如下:delta(usec)/delta(calls)delta 计算为一分钟内的差异。延迟是指 ElastiCache 处理命令所花费的 CPU 时间。请注意,对于使用数据分层的集群,这些测量值并未包含从 SSD 提取项目所需的时间。

有关可用命令的完整列表,请参阅 Redis 文档中的 Redis 命令

指标 描述 单位
EvalBasedCmds 基于 eval 的命令的命令总数。这是根据 Redis commandstats 统计数据通过计算 evalevalsha 的总和得出的。 计数
EvalBasedCmdsLatency 基于 Eval 的命令的延迟。 微秒
GeoSpatialBasedCmds 基于地理空间的命令的命令总数。这是从 Redis commandstats 统计数据派生的。它是通过汇总所有地理类型的命令的总和得出的:geoaddgeodistgeohashgeoposgeoradiusgeoradiusbymember 计数
GeoSpatialBasedCmdsLatency 基于地理空间的命令的延迟。 微秒
GetTypeCmds read-only 类型命令的总数。这是根据 Redis commandstats 统计数据得出的,方式是计算所有 read-only 类型的命令(gethgetscardlrange 等)的总和。 计数
GetTypeCmdsLatency 读取命令的延迟。 微秒
HashBasedCmds 基于哈希的命令总数。此值是根据 Redis commandstats 统计数据得出的,方式是计算所有作用于一个或多个哈希的命令(hgethkeyshvalshdel 等)的总和。 计数
HashBasedCmdsLatency 基于哈希的命令的延迟。 微秒
HyperLogLogBasedCmds 基于 HyperLogLog 的命令的总数。这是根据 Redis commandstats 统计数据得出的,方式是计算所有 pf 类型的命令(pfaddpfcountpfmerge 等)的总和。 计数
HyperLogLogBasedCmdsLatency HyperLogLog-based 命令的延迟。 微秒
KeyBasedCmds 基于密钥的命令总数。这是根据 Redis commandstats 统计数据得出的,方式是计算作用于多个数据结构中的一个或多个键的所有命令(delexpirerename 等)的总和。 计数
KeyBasedCmdsLatency 基于键的命令的延迟。 微秒
ListBasedCmds 基于列表的命令总数。此值根据 Redis commandstats 统计数据得出,方式是计算所有作用于一个或多个列表的命令(lindexlrangelpushltrim 等)的总和。 计数
ListBasedCmdsLatency 基于列表的命令的延迟。 微秒
PubSubBasedCmds 用于发布/订阅功能的命令总数。这是从 Redis commandstats 统计数据得出的,方法是对以下用于发布/订阅功能的所有命令进行求和:psubscribepublishpubsubpunsubscribesubscribeunsubscribe 计数
PubSubBasedCmdsLatency PubSub-based 命令的延迟。 微秒
SetBasedCmds 基于设置的命令总数。此值根据 Redis commandstats 统计数据得出,方式是计算所有作用于一个或多个设置的命令(scardsdiffsaddsunion 等)的总和。 计数
SetBasedCmdsLatency 基于集合的命令的延迟。 微秒
SetTypeCmds write 类型命令的总数。这是根据 Redis commandstats 统计数据得出的,方式是计算对数据执行操作的所有 mutative 类型的命令(sethsetsaddlpop 等)的总和。 计数
SetTypeCmdsLatency 写入命令的延迟。 微秒
SortedSetBasedCmds 基于设置的已排序命令总数。此值根据 Redis commandstats 统计数据得出,方式是计算所有作用于一个或多个已排序设置的命令(zcountzrangezrankzadd 等)的总和。 计数
SortedSetBasedCmdsLatency 基于排序的命令的延迟。 微秒
StringBasedCmds 基于字符串的命令总数。此值根据 Redis commandstats 统计数据得出,方式是计算所有作用于一个或多个字符串的命令(strlensetexsetrange 等)的总和。 计数
StringBasedCmdsLatency 基于字符串的命令的延迟。 微秒
StreamBasedCmds 基于流的命令总数。这是根据 Redis commandstats 统计数据得出的,方式是计算所有作用于一个或多个流数据类型的命令(xrangexlenxaddxdel 等)的总和。 计数
StreamBasedCmdsLatency 基于流的命令的延迟。 微秒