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

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

Redis 的指标

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

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

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

另请参阅

指标 Description Unit
ActiveDefragHits 活动碎片整理进程每分钟执行的值重新分配数。这是从 Redis INFO 上的 active_defrag_hits 统计数据派生的。 Number
BytesUsedForCache Redis 为所有目的(包括数据集、缓冲区等)分配的字节的总数。这是从 Redis INFO 上的 used_memory 统计数据派生的。 字节
CacheHits 主字典中成功的只读键查找次数。这是从 Redis INFO 上的 keyspace_hits 统计数据派生的。 Count
CacheMisses 主字典中失败的只读键查找次数。这是从 Redis INFO 上的 keyspace_misses 统计数据派生的。 Count
CacheHitRate 指示 Redis 实例的使用效率。如果缓存比率低于 ~0.8,则意味着大量的密钥被逐出、过期或不存在。这是使用 cache_hitscache_misses 统计量的方式如下: cache_hits /(cache_hits + cache_misses) . 百分比
CurrConnections 客户端连接数,不包括只读副本的连接。在每个案例中,ElastiCache 使用两到四个连接监控集群。这是从 Redis INFO 上的 connected_clients 统计数据派生的。 Count
DatabaseMemoryUsagePercentage 正在使用的集群的可用内存的百分比。这是使用 used_memory/maxmemoryRedis INFO 计算得来的。 百分比
DB0AverageTTL Redis INFO 命令的 keyspace 统计数据中公开 DBO 的 avg_ttl 毫秒
EngineCPUUtilization

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

注意

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

百分比
Evictions 由于 maxmemory 限制而被驱逐的密钥数。这是从 Redis INFO 上的 evicted_keys 统计数据派生的。 Count
MasterLinkHealthStatus 此状态有两个值:0 或 1。值为 0 表示 Elasticache 主节点中的数据未与 EC2 上的 Redis 同步。值为 1 表示数据已同步。如需完成迁移,请使用 CompleteMigration API。 布尔型
MemoryFragmentationRatio 指示 Redis 引擎的内存分配的效率。某些阈值将表示不同的行为。建议的值是让碎片化大于 1.0。这是从 Redis INFOmemory_frag_ratio statistic 计算得出的。 Number
NewConnections 在此期间,服务器接受的连接总数。这是从 Redis INFO 上的 total_connections_received 统计数据派生的。 Count
Reclaimed 密钥过期事件的总数。这是从 Redis INFO 上的 expired_keys 统计数据派生的。 Count
ReplicationBytes 对于复制配置的节点, ReplicationBytes 报告主发送到其所有副本的字节数。此指标代表复制组上的写入负载。这是从 Redis INFO 上的 master_repl_offset 统计数据派生的。 字节
ReplicationLag 该指标仅适用于作为只读副本运行的节点。它代表副本在应用主节点的改动方面滞后的时间(以秒为单位)。 对于 Redis 引擎版本 5.0.6,为毫秒。对于所有其他支持的引擎版本,为秒
SaveInProgress 只要背景保存(forked 或 forkless)在进行中,此二进制指标均返回 1,否则会返回 0。在快照和同步期间,通常使用背景保存进程。这些操作会导致性能下降。使用 SaveInProgress 指标,您可以诊断性能下降是否由背景保存进程造成。这是从 Redis INFO 上的 rdb_bgsave_in_progress 统计数据派生的。 Count

EngineCPUUtilization 可用性

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

Region 区域名称
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 中东(巴林)
eu-central-1 欧洲(法兰克福)
eu-west-1 欧洲(爱尔兰)
eu-west-2 欧洲(伦敦)
eu-west-3 欧洲 (巴黎)
eu-south-1 欧洲(米兰)
af-south-1 非洲(开普敦)
eu-north-1 欧洲(斯德哥尔摩)
sa-east-1 南美洲(圣保罗)
us-gov-west-1 AWS GovCloud (US-West)
us-gov-east-1 AWS GovCloud(美国东部)

以下是某些类型命令的聚合,派生自 info commandstats。命令统计信息部分根据命令类型提供统计数据,包括呼叫数、这些命令所消耗的总CPU时间以及每个命令执行所消耗的平均CPU。对于每种命令类型,将添加以下行: cmdstat_XXX: calls=XXX,usec=XXX,usec_per_call=XXX.

下面列出的延迟指标是使用来自 Redis INFO 中的 commandstats 统计数据计算的。它们按以下方式计算: delta(usec)/delta(calls)delta 计算为一分钟内的差异。

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

指标 Description Unit
CurrItems 缓存中的项目数。此值根据以下方法获得的 Redis keyspace 统计数据得出:计算整个密钥空间中所有密钥的总和。 Count
EvalBasedCmds 基于 eval 的命令的命令总数。这是从 Redis commandstats 统计数据派生的。这是从 Redis commandstats 统计数据通过汇总 evalevalsha 得出的。 Count
EvalBasedCmdsLatency 基于 Eval 的命令的延迟。 微秒
GeoSpatialBasedCmds 的命令总数 GeoSpatial基于-的命令。这是从 Redis commandstats 统计数据派生的。这是从 Redis commandstats 统计数据派生的,方式是计算所有 geo 类型的命令(geoaddgeodistgeohashgeoposgeoradiusgeoradiusbymember)的总和。 Count
GeoSpatialBasedCmdsLatency 延迟 GeoSpatial基于-的命令。 微秒
GetTypeCmds read-only 类型命令的总数。这是从 Redis commandstats 统计数据派生的,方式是计算所有 read-only 类型的命令(gethgetscardlrange 等)的总和。 Count
GetTypeCmdsLatency 读取命令的延迟。 微秒
HashBasedCmds 基于哈希的命令总数。此值根据以下方法获得的 Redis commandstats 统计数据得出:计算所有作用于一个或多个哈希的命令(hgethkeyshvalshdel 等)的总和。 Count
HashBasedCmdsLatency 基于哈希的命令的延迟。 微秒
HyperLogLogBasedCmds 基于 HyperLogLog 的命令的总数。这是从 Redis commandstats 统计数据派生的,方式是计算所有 pf 类型的命令(pfaddpfcountpfmerge 等)的总和。 Count
HyperLogLogBasedCmdsLatency 延迟 HyperLogLogBased 命令。 微秒
KeyBasedCmds 基于密钥的命令总数。这是从 Redis commandstats 统计数据派生的,方式是计算对多个数据结构中的一个或多个键执行的所有命令(delexpirerename 等)的总和。 Count
KeyBasedCmdsLatency 基于键的命令的延迟。 微秒
ListBasedCmds 基于列表的命令总数。此值根据以下方法获得的 Redis commandstats 统计数据得出:计算所有作用于一个或多个列表的命令(lindexlrangelpushltrim 等)的总和。 Count
ListBasedCmdsLatency 基于列表的命令的延迟。 微秒
PubSubBasedCmds 用于发布/订阅功能的命令总数。这源自Redis commandstats统计:对用于pub/sub功能的所有命令求和: psubscribe, publish, pubsub, punsubscribe, subscribe, unsubscribe. Count
PubSubBasedCmdsLatency 延迟 PubSubBased 命令。 微秒
SetBasedCmds 基于设置的命令总数。此值根据以下方法获得的 Redis commandstats 统计数据得出:计算所有作用于一个或多个设置的命令(scard sdiff saddsunion 等)的总和。 Count
SetBasedCmdsLatency 基于集合的命令的延迟。 微秒
SetTypeCmds write 类型命令的总数。这是从 Redis commandstats 统计数据派生的,方式是计算对数据执行的所有 mutative 类型的命令(sethsetsaddlpop 等)的总和。 Count
SetTypeCmdsLatency 写入命令的延迟。 微秒
SortedSetBasedCmds 基于设置的已排序命令总数。此值根据以下方法获得的 Redis commandstats 统计数据得出:计算所有作用于一个或多个已排序设置的命令(zcountzrangezrankzadd 等)的总和。 Count
SortedSetBasedCmdsLatency 基于排序的命令的延迟。 微秒
StringBasedCmds 基于字符串的命令总数。此值根据以下方法获得的 Redis commandstats 统计数据得出:计算所有作用于一个或多个字符串的命令(strlensetexsetrange 等)的总和。 Count
StringBasedCmdsLatency 基于字符串的命令的延迟。 微秒
StreamBasedCmds 基于流的命令总数。这是从 Redis commandstats 统计数据派生的,方式是计算所有作用于一个或多个流数据类型的命令(xrangexlenxaddxdel 等)的总和。 Count
StreamBasedCmdsLatency 基于流的命令的延迟。 微秒